/******/ (function() { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ 3827:
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
  Copyright (c) 2018 Jed Watson.
  Licensed under the MIT License (MIT), see
  http://jedwatson.github.io/classnames
*/
/* global define */

(function () {
	'use strict';

	var classNames = (function () {
		// don't inherit from Object so we can skip hasOwnProperty check later
		// http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232
		function StorageObject() {}
		StorageObject.prototype = Object.create(null);

		function _parseArray (resultSet, array) {
			var length = array.length;

			for (var i = 0; i < length; ++i) {
				_parse(resultSet, array[i]);
			}
		}

		var hasOwn = {}.hasOwnProperty;

		function _parseNumber (resultSet, num) {
			resultSet[num] = true;
		}

		function _parseObject (resultSet, object) {
			if (object.toString === Object.prototype.toString) {
				for (var k in object) {
					if (hasOwn.call(object, k)) {
						// set value to false instead of deleting it to avoid changing object structure
						// https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions
						resultSet[k] = !!object[k];
					}
				}
			} else {
				resultSet[object.toString()] = true;
			}
		}

		var SPACE = /\s+/;
		function _parseString (resultSet, str) {
			var array = str.split(SPACE);
			var length = array.length;

			for (var i = 0; i < length; ++i) {
				resultSet[array[i]] = true;
			}
		}

		function _parse (resultSet, arg) {
			if (!arg) return;
			var argType = typeof arg;

			// 'foo bar'
			if (argType === 'string') {
				_parseString(resultSet, arg);

			// ['foo', 'bar', ...]
			} else if (Array.isArray(arg)) {
				_parseArray(resultSet, arg);

			// { 'foo': true, ... }
			} else if (argType === 'object') {
				_parseObject(resultSet, arg);

			// '130'
			} else if (argType === 'number') {
				_parseNumber(resultSet, arg);
			}
		}

		function _classNames () {
			// don't leak arguments
			// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments
			var len = arguments.length;
			var args = Array(len);
			for (var i = 0; i < len; i++) {
				args[i] = arguments[i];
			}

			var classSet = new StorageObject();
			_parseArray(classSet, args);

			var list = [];

			for (var k in classSet) {
				if (classSet[k]) {
					list.push(k)
				}
			}

			return list.join(' ');
		}

		return _classNames;
	})();

	if ( true && module.exports) {
		classNames.default = classNames;
		module.exports = classNames;
	} else if (true) {
		// register as 'classnames', consistent with npm package name
		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
			return classNames;
		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	} else {}
}());


/***/ }),

/***/ 4403:
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
  Copyright (c) 2018 Jed Watson.
  Licensed under the MIT License (MIT), see
  http://jedwatson.github.io/classnames
*/
/* global define */

(function () {
	'use strict';

	var hasOwn = {}.hasOwnProperty;

	function classNames() {
		var classes = [];

		for (var i = 0; i < arguments.length; i++) {
			var arg = arguments[i];
			if (!arg) continue;

			var argType = typeof arg;

			if (argType === 'string' || argType === 'number') {
				classes.push(arg);
			} else if (Array.isArray(arg)) {
				if (arg.length) {
					var inner = classNames.apply(null, arg);
					if (inner) {
						classes.push(inner);
					}
				}
			} else if (argType === 'object') {
				if (arg.toString === Object.prototype.toString) {
					for (var key in arg) {
						if (hasOwn.call(arg, key) && arg[key]) {
							classes.push(key);
						}
					}
				} else {
					classes.push(arg.toString());
				}
			}
		}

		return classes.join(' ');
	}

	if ( true && module.exports) {
		classNames.default = classNames;
		module.exports = classNames;
	} else if (true) {
		// register as 'classnames', consistent with npm package name
		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
			return classNames;
		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	} else {}
}());


/***/ }),

/***/ 5027:
/***/ (function(module) {

/*! Fast Average Color | © 2019 Denis Seleznev | MIT License | https://github.com/hcodes/fast-average-color/ */
(function (global, factory) {
	 true ? module.exports = factory() :
	0;
}(this, (function () { 'use strict';

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

function _slicedToArray(arr, i) {
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
}

function _arrayWithHoles(arr) {
  if (Array.isArray(arr)) return arr;
}

function _iterableToArrayLimit(arr, i) {
  var _arr = [];
  var _n = true;
  var _d = false;
  var _e = undefined;

  try {
    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}

var FastAverageColor =
/*#__PURE__*/
function () {
  function FastAverageColor() {
    _classCallCheck(this, FastAverageColor);
  }

  _createClass(FastAverageColor, [{
    key: "getColorAsync",

    /**
     * Get asynchronously the average color from not loaded image.
     *
     * @param {HTMLImageElement} resource
     * @param {Function} callback
     * @param {Object|null} [options]
     * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]
     * @param {*}      [options.data]
     * @param {string} [options.mode="speed"] "precision" or "speed"
     * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant"
     * @param {number} [options.step=1]
     * @param {number} [options.left=0]
     * @param {number} [options.top=0]
     * @param {number} [options.width=width of resource]
     * @param {number} [options.height=height of resource]
     */
    value: function getColorAsync(resource, callback, options) {
      if (resource.complete) {
        callback.call(resource, this.getColor(resource, options), options && options.data);
      } else {
        this._bindImageEvents(resource, callback, options);
      }
    }
    /**
     * Get the average color from images, videos and canvas.
     *
     * @param {HTMLImageElement|HTMLVideoElement|HTMLCanvasElement} resource
     * @param {Object|null} [options]
     * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]
     * @param {*}      [options.data]
     * @param {string} [options.mode="speed"] "precision" or "speed"
     * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant"
     * @param {number} [options.step=1]
     * @param {number} [options.left=0]
     * @param {number} [options.top=0]
     * @param {number} [options.width=width of resource]
     * @param {number} [options.height=height of resource]
     *
     * @returns {Object}
     */

  }, {
    key: "getColor",
    value: function getColor(resource, options) {
      options = options || {};

      var defaultColor = this._getDefaultColor(options),
          originalSize = this._getOriginalSize(resource),
          size = this._prepareSizeAndPosition(originalSize, options);

      var error = null,
          value = defaultColor;

      if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) {
        return this._prepareResult(defaultColor, new Error('FastAverageColor: Incorrect sizes.'));
      }

      if (!this._ctx) {
        this._canvas = this._makeCanvas();
        this._ctx = this._canvas.getContext && this._canvas.getContext('2d');

        if (!this._ctx) {
          return this._prepareResult(defaultColor, new Error('FastAverageColor: Canvas Context 2D is not supported in this browser.'));
        }
      }

      this._canvas.width = size.destWidth;
      this._canvas.height = size.destHeight;

      try {
        this._ctx.clearRect(0, 0, size.destWidth, size.destHeight);

        this._ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight);

        var bitmapData = this._ctx.getImageData(0, 0, size.destWidth, size.destHeight).data;

        value = this.getColorFromArray4(bitmapData, options);
      } catch (e) {
        // Security error, CORS
        // https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image
        error = e;
      }

      return this._prepareResult(value, error);
    }
    /**
     * Get the average color from a array when 1 pixel is 4 bytes.
     *
     * @param {Array|Uint8Array} arr
     * @param {Object} [options]
     * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant"
     * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]
     * @param {number} [options.step=1]
     *
     * @returns {Array} [red (0-255), green (0-255), blue (0-255), alpha (0-255)]
     */

  }, {
    key: "getColorFromArray4",
    value: function getColorFromArray4(arr, options) {
      options = options || {};
      var bytesPerPixel = 4,
          arrLength = arr.length;

      if (arrLength < bytesPerPixel) {
        return this._getDefaultColor(options);
      }

      var len = arrLength - arrLength % bytesPerPixel,
          preparedStep = (options.step || 1) * bytesPerPixel,
          algorithm = '_' + (options.algorithm || 'sqrt') + 'Algorithm';

      if (typeof this[algorithm] !== 'function') {
        throw new Error("FastAverageColor: ".concat(options.algorithm, " is unknown algorithm."));
      }

      return this[algorithm](arr, len, preparedStep);
    }
    /**
     * Destroy the instance.
     */

  }, {
    key: "destroy",
    value: function destroy() {
      delete this._canvas;
      delete this._ctx;
    }
  }, {
    key: "_getDefaultColor",
    value: function _getDefaultColor(options) {
      return this._getOption(options, 'defaultColor', [255, 255, 255, 255]);
    }
  }, {
    key: "_getOption",
    value: function _getOption(options, name, defaultValue) {
      return typeof options[name] === 'undefined' ? defaultValue : options[name];
    }
  }, {
    key: "_prepareSizeAndPosition",
    value: function _prepareSizeAndPosition(originalSize, options) {
      var srcLeft = this._getOption(options, 'left', 0),
          srcTop = this._getOption(options, 'top', 0),
          srcWidth = this._getOption(options, 'width', originalSize.width),
          srcHeight = this._getOption(options, 'height', originalSize.height),
          destWidth = srcWidth,
          destHeight = srcHeight;

      if (options.mode === 'precision') {
        return {
          srcLeft: srcLeft,
          srcTop: srcTop,
          srcWidth: srcWidth,
          srcHeight: srcHeight,
          destWidth: destWidth,
          destHeight: destHeight
        };
      }

      var maxSize = 100,
          minSize = 10;
      var factor;

      if (srcWidth > srcHeight) {
        factor = srcWidth / srcHeight;
        destWidth = maxSize;
        destHeight = Math.round(destWidth / factor);
      } else {
        factor = srcHeight / srcWidth;
        destHeight = maxSize;
        destWidth = Math.round(destHeight / factor);
      }

      if (destWidth > srcWidth || destHeight > srcHeight || destWidth < minSize || destHeight < minSize) {
        destWidth = srcWidth;
        destHeight = srcHeight;
      }

      return {
        srcLeft: srcLeft,
        srcTop: srcTop,
        srcWidth: srcWidth,
        srcHeight: srcHeight,
        destWidth: destWidth,
        destHeight: destHeight
      };
    }
  }, {
    key: "_simpleAlgorithm",
    value: function _simpleAlgorithm(arr, len, preparedStep) {
      var redTotal = 0,
          greenTotal = 0,
          blueTotal = 0,
          alphaTotal = 0,
          count = 0;

      for (var i = 0; i < len; i += preparedStep) {
        var alpha = arr[i + 3],
            red = arr[i] * alpha,
            green = arr[i + 1] * alpha,
            blue = arr[i + 2] * alpha;
        redTotal += red;
        greenTotal += green;
        blueTotal += blue;
        alphaTotal += alpha;
        count++;
      }

      return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0];
    }
  }, {
    key: "_sqrtAlgorithm",
    value: function _sqrtAlgorithm(arr, len, preparedStep) {
      var redTotal = 0,
          greenTotal = 0,
          blueTotal = 0,
          alphaTotal = 0,
          count = 0;

      for (var i = 0; i < len; i += preparedStep) {
        var red = arr[i],
            green = arr[i + 1],
            blue = arr[i + 2],
            alpha = arr[i + 3];
        redTotal += red * red * alpha;
        greenTotal += green * green * alpha;
        blueTotal += blue * blue * alpha;
        alphaTotal += alpha;
        count++;
      }

      return alphaTotal ? [Math.round(Math.sqrt(redTotal / alphaTotal)), Math.round(Math.sqrt(greenTotal / alphaTotal)), Math.round(Math.sqrt(blueTotal / alphaTotal)), Math.round(alphaTotal / count)] : [0, 0, 0, 0];
    }
  }, {
    key: "_dominantAlgorithm",
    value: function _dominantAlgorithm(arr, len, preparedStep) {
      var colorHash = {},
          divider = 24;

      for (var i = 0; i < len; i += preparedStep) {
        var red = arr[i],
            green = arr[i + 1],
            blue = arr[i + 2],
            alpha = arr[i + 3],
            key = Math.round(red / divider) + ',' + Math.round(green / divider) + ',' + Math.round(blue / divider);

        if (colorHash[key]) {
          colorHash[key] = [colorHash[key][0] + red * alpha, colorHash[key][1] + green * alpha, colorHash[key][2] + blue * alpha, colorHash[key][3] + alpha, colorHash[key][4] + 1];
        } else {
          colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1];
        }
      }

      var buffer = Object.keys(colorHash).map(function (key) {
        return colorHash[key];
      }).sort(function (a, b) {
        var countA = a[4],
            countB = b[4];
        return countA > countB ? -1 : countA === countB ? 0 : 1;
      });

      var _buffer$ = _slicedToArray(buffer[0], 5),
          redTotal = _buffer$[0],
          greenTotal = _buffer$[1],
          blueTotal = _buffer$[2],
          alphaTotal = _buffer$[3],
          count = _buffer$[4];

      return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0];
    }
  }, {
    key: "_bindImageEvents",
    value: function _bindImageEvents(resource, callback, options) {
      var _this = this;

      options = options || {};

      var data = options && options.data,
          defaultColor = this._getDefaultColor(options),
          onload = function onload() {
        unbindEvents();
        callback.call(resource, _this.getColor(resource, options), data);
      },
          onerror = function onerror() {
        unbindEvents();
        callback.call(resource, _this._prepareResult(defaultColor, new Error('Image error')), data);
      },
          onabort = function onabort() {
        unbindEvents();
        callback.call(resource, _this._prepareResult(defaultColor, new Error('Image abort')), data);
      },
          unbindEvents = function unbindEvents() {
        resource.removeEventListener('load', onload);
        resource.removeEventListener('error', onerror);
        resource.removeEventListener('abort', onabort);
      };

      resource.addEventListener('load', onload);
      resource.addEventListener('error', onerror);
      resource.addEventListener('abort', onabort);
    }
  }, {
    key: "_prepareResult",
    value: function _prepareResult(value, error) {
      var rgb = value.slice(0, 3),
          rgba = [].concat(rgb, value[3] / 255),
          isDark = this._isDark(value);

      return {
        error: error,
        value: value,
        rgb: 'rgb(' + rgb.join(',') + ')',
        rgba: 'rgba(' + rgba.join(',') + ')',
        hex: this._arrayToHex(rgb),
        hexa: this._arrayToHex(value),
        isDark: isDark,
        isLight: !isDark
      };
    }
  }, {
    key: "_getOriginalSize",
    value: function _getOriginalSize(resource) {
      if (resource instanceof HTMLImageElement) {
        return {
          width: resource.naturalWidth,
          height: resource.naturalHeight
        };
      }

      if (resource instanceof HTMLVideoElement) {
        return {
          width: resource.videoWidth,
          height: resource.videoHeight
        };
      }

      return {
        width: resource.width,
        height: resource.height
      };
    }
  }, {
    key: "_toHex",
    value: function _toHex(num) {
      var str = num.toString(16);
      return str.length === 1 ? '0' + str : str;
    }
  }, {
    key: "_arrayToHex",
    value: function _arrayToHex(arr) {
      return '#' + arr.map(this._toHex).join('');
    }
  }, {
    key: "_isDark",
    value: function _isDark(color) {
      // http://www.w3.org/TR/AERT#color-contrast
      var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000;
      return result < 128;
    }
  }, {
    key: "_makeCanvas",
    value: function _makeCanvas() {
      return typeof window === 'undefined' ? new OffscreenCanvas(1, 1) : document.createElement('canvas');
    }
  }]);

  return FastAverageColor;
}();

return FastAverageColor;

})));


/***/ }),

/***/ 9756:
/***/ (function(module) {

/**
 * Memize options object.
 *
 * @typedef MemizeOptions
 *
 * @property {number} [maxSize] Maximum size of the cache.
 */

/**
 * Internal cache entry.
 *
 * @typedef MemizeCacheNode
 *
 * @property {?MemizeCacheNode|undefined} [prev] Previous node.
 * @property {?MemizeCacheNode|undefined} [next] Next node.
 * @property {Array<*>}                   args   Function arguments for cache
 *                                               entry.
 * @property {*}                          val    Function result.
 */

/**
 * Properties of the enhanced function for controlling cache.
 *
 * @typedef MemizeMemoizedFunction
 *
 * @property {()=>void} clear Clear the cache.
 */

/**
 * Accepts a function to be memoized, and returns a new memoized function, with
 * optional options.
 *
 * @template {Function} F
 *
 * @param {F}             fn        Function to memoize.
 * @param {MemizeOptions} [options] Options object.
 *
 * @return {F & MemizeMemoizedFunction} Memoized function.
 */
function memize( fn, options ) {
	var size = 0;

	/** @type {?MemizeCacheNode|undefined} */
	var head;

	/** @type {?MemizeCacheNode|undefined} */
	var tail;

	options = options || {};

	function memoized( /* ...args */ ) {
		var node = head,
			len = arguments.length,
			args, i;

		searchCache: while ( node ) {
			// Perform a shallow equality test to confirm that whether the node
			// under test is a candidate for the arguments passed. Two arrays
			// are shallowly equal if their length matches and each entry is
			// strictly equal between the two sets. Avoid abstracting to a
			// function which could incur an arguments leaking deoptimization.

			// Check whether node arguments match arguments length
			if ( node.args.length !== arguments.length ) {
				node = node.next;
				continue;
			}

			// Check whether node arguments match arguments values
			for ( i = 0; i < len; i++ ) {
				if ( node.args[ i ] !== arguments[ i ] ) {
					node = node.next;
					continue searchCache;
				}
			}

			// At this point we can assume we've found a match

			// Surface matched node to head if not already
			if ( node !== head ) {
				// As tail, shift to previous. Must only shift if not also
				// head, since if both head and tail, there is no previous.
				if ( node === tail ) {
					tail = node.prev;
				}

				// Adjust siblings to point to each other. If node was tail,
				// this also handles new tail's empty `next` assignment.
				/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
				if ( node.next ) {
					node.next.prev = node.prev;
				}

				node.next = head;
				node.prev = null;
				/** @type {MemizeCacheNode} */ ( head ).prev = node;
				head = node;
			}

			// Return immediately
			return node.val;
		}

		// No cached value found. Continue to insertion phase:

		// Create a copy of arguments (avoid leaking deoptimization)
		args = new Array( len );
		for ( i = 0; i < len; i++ ) {
			args[ i ] = arguments[ i ];
		}

		node = {
			args: args,

			// Generate the result from original function
			val: fn.apply( null, args ),
		};

		// Don't need to check whether node is already head, since it would
		// have been returned above already if it was

		// Shift existing head down list
		if ( head ) {
			head.prev = node;
			node.next = head;
		} else {
			// If no head, follows that there's no tail (at initial or reset)
			tail = node;
		}

		// Trim tail if we're reached max size and are pending cache insertion
		if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
			tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
			/** @type {MemizeCacheNode} */ ( tail ).next = null;
		} else {
			size++;
		}

		head = node;

		return node.val;
	}

	memoized.clear = function() {
		head = null;
		tail = null;
		size = 0;
	};

	if ( false ) {}

	// Ignore reason: There's not a clear solution to create an intersection of
	// the function with additional properties, where the goal is to retain the
	// function signature of the incoming argument and add control properties
	// on the return value.

	// @ts-ignore
	return memoized;
}

module.exports = memize;


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	!function() {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = function(module) {
/******/ 			var getter = module && module.__esModule ?
/******/ 				function() { return module['default']; } :
/******/ 				function() { return module; };
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	!function() {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = function(exports, definition) {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	!function() {
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	!function() {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = function(exports) {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	}();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
!function() {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "__experimentalGetCoreBlocks": function() { return /* binding */ __experimentalGetCoreBlocks; },
  "__experimentalRegisterExperimentalCoreBlocks": function() { return /* binding */ __experimentalRegisterExperimentalCoreBlocks; },
  "registerCoreBlocks": function() { return /* binding */ registerCoreBlocks; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/archives/index.js
var archives_namespaceObject = {};
__webpack_require__.r(archives_namespaceObject);
__webpack_require__.d(archives_namespaceObject, {
  "metadata": function() { return metadata; },
  "name": function() { return archives_name; },
  "settings": function() { return settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/avatar/index.js
var avatar_namespaceObject = {};
__webpack_require__.r(avatar_namespaceObject);
__webpack_require__.d(avatar_namespaceObject, {
  "metadata": function() { return avatar_metadata; },
  "name": function() { return avatar_name; },
  "settings": function() { return avatar_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/audio/index.js
var build_module_audio_namespaceObject = {};
__webpack_require__.r(build_module_audio_namespaceObject);
__webpack_require__.d(build_module_audio_namespaceObject, {
  "metadata": function() { return audio_metadata; },
  "name": function() { return audio_name; },
  "settings": function() { return audio_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/button/index.js
var build_module_button_namespaceObject = {};
__webpack_require__.r(build_module_button_namespaceObject);
__webpack_require__.d(build_module_button_namespaceObject, {
  "metadata": function() { return button_metadata; },
  "name": function() { return button_name; },
  "settings": function() { return button_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/buttons/index.js
var build_module_buttons_namespaceObject = {};
__webpack_require__.r(build_module_buttons_namespaceObject);
__webpack_require__.d(build_module_buttons_namespaceObject, {
  "metadata": function() { return buttons_metadata; },
  "name": function() { return buttons_name; },
  "settings": function() { return buttons_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/calendar/index.js
var build_module_calendar_namespaceObject = {};
__webpack_require__.r(build_module_calendar_namespaceObject);
__webpack_require__.d(build_module_calendar_namespaceObject, {
  "metadata": function() { return calendar_metadata; },
  "name": function() { return calendar_name; },
  "settings": function() { return calendar_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/categories/index.js
var categories_namespaceObject = {};
__webpack_require__.r(categories_namespaceObject);
__webpack_require__.d(categories_namespaceObject, {
  "metadata": function() { return categories_metadata; },
  "name": function() { return categories_name; },
  "settings": function() { return categories_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/freeform/index.js
var freeform_namespaceObject = {};
__webpack_require__.r(freeform_namespaceObject);
__webpack_require__.d(freeform_namespaceObject, {
  "metadata": function() { return freeform_metadata; },
  "name": function() { return freeform_name; },
  "settings": function() { return freeform_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/code/index.js
var build_module_code_namespaceObject = {};
__webpack_require__.r(build_module_code_namespaceObject);
__webpack_require__.d(build_module_code_namespaceObject, {
  "metadata": function() { return code_metadata; },
  "name": function() { return code_name; },
  "settings": function() { return code_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/column/index.js
var build_module_column_namespaceObject = {};
__webpack_require__.r(build_module_column_namespaceObject);
__webpack_require__.d(build_module_column_namespaceObject, {
  "metadata": function() { return column_metadata; },
  "name": function() { return column_name; },
  "settings": function() { return column_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/columns/index.js
var build_module_columns_namespaceObject = {};
__webpack_require__.r(build_module_columns_namespaceObject);
__webpack_require__.d(build_module_columns_namespaceObject, {
  "metadata": function() { return columns_metadata; },
  "name": function() { return columns_name; },
  "settings": function() { return columns_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
var build_module_comment_author_name_namespaceObject = {};
__webpack_require__.r(build_module_comment_author_name_namespaceObject);
__webpack_require__.d(build_module_comment_author_name_namespaceObject, {
  "metadata": function() { return comment_author_name_metadata; },
  "name": function() { return comment_author_name_name; },
  "settings": function() { return comment_author_name_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
var build_module_comment_content_namespaceObject = {};
__webpack_require__.r(build_module_comment_content_namespaceObject);
__webpack_require__.d(build_module_comment_content_namespaceObject, {
  "metadata": function() { return comment_content_metadata; },
  "name": function() { return comment_content_name; },
  "settings": function() { return comment_content_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
var comment_date_namespaceObject = {};
__webpack_require__.r(comment_date_namespaceObject);
__webpack_require__.d(comment_date_namespaceObject, {
  "metadata": function() { return comment_date_metadata; },
  "name": function() { return comment_date_name; },
  "settings": function() { return comment_date_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
var build_module_comment_edit_link_namespaceObject = {};
__webpack_require__.r(build_module_comment_edit_link_namespaceObject);
__webpack_require__.d(build_module_comment_edit_link_namespaceObject, {
  "metadata": function() { return comment_edit_link_metadata; },
  "name": function() { return comment_edit_link_name; },
  "settings": function() { return comment_edit_link_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
var build_module_comment_reply_link_namespaceObject = {};
__webpack_require__.r(build_module_comment_reply_link_namespaceObject);
__webpack_require__.d(build_module_comment_reply_link_namespaceObject, {
  "metadata": function() { return comment_reply_link_metadata; },
  "name": function() { return comment_reply_link_name; },
  "settings": function() { return comment_reply_link_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
var comment_template_namespaceObject = {};
__webpack_require__.r(comment_template_namespaceObject);
__webpack_require__.d(comment_template_namespaceObject, {
  "metadata": function() { return comment_template_metadata; },
  "name": function() { return comment_template_name; },
  "settings": function() { return comment_template_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
var comments_pagination_previous_namespaceObject = {};
__webpack_require__.r(comments_pagination_previous_namespaceObject);
__webpack_require__.d(comments_pagination_previous_namespaceObject, {
  "metadata": function() { return comments_pagination_previous_metadata; },
  "name": function() { return comments_pagination_previous_name; },
  "settings": function() { return comments_pagination_previous_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/index.js
var comments_query_loop_namespaceObject = {};
__webpack_require__.r(comments_query_loop_namespaceObject);
__webpack_require__.d(comments_query_loop_namespaceObject, {
  "metadata": function() { return comments_query_loop_metadata; },
  "name": function() { return comments_query_loop_name; },
  "settings": function() { return comments_query_loop_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
var comments_pagination_namespaceObject = {};
__webpack_require__.r(comments_pagination_namespaceObject);
__webpack_require__.d(comments_pagination_namespaceObject, {
  "metadata": function() { return comments_pagination_metadata; },
  "name": function() { return comments_pagination_name; },
  "settings": function() { return comments_pagination_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
var comments_pagination_next_namespaceObject = {};
__webpack_require__.r(comments_pagination_next_namespaceObject);
__webpack_require__.d(comments_pagination_next_namespaceObject, {
  "metadata": function() { return comments_pagination_next_metadata; },
  "name": function() { return comments_pagination_next_name; },
  "settings": function() { return comments_pagination_next_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
var comments_pagination_numbers_namespaceObject = {};
__webpack_require__.r(comments_pagination_numbers_namespaceObject);
__webpack_require__.d(comments_pagination_numbers_namespaceObject, {
  "metadata": function() { return comments_pagination_numbers_metadata; },
  "name": function() { return comments_pagination_numbers_name; },
  "settings": function() { return comments_pagination_numbers_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
var comments_title_namespaceObject = {};
__webpack_require__.r(comments_title_namespaceObject);
__webpack_require__.d(comments_title_namespaceObject, {
  "metadata": function() { return comments_title_metadata; },
  "name": function() { return comments_title_name; },
  "settings": function() { return comments_title_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/cover/index.js
var build_module_cover_namespaceObject = {};
__webpack_require__.r(build_module_cover_namespaceObject);
__webpack_require__.d(build_module_cover_namespaceObject, {
  "metadata": function() { return cover_metadata; },
  "name": function() { return cover_name; },
  "settings": function() { return cover_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/embed/index.js
var embed_namespaceObject = {};
__webpack_require__.r(embed_namespaceObject);
__webpack_require__.d(embed_namespaceObject, {
  "metadata": function() { return embed_metadata; },
  "name": function() { return embed_name; },
  "settings": function() { return embed_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/file/index.js
var build_module_file_namespaceObject = {};
__webpack_require__.r(build_module_file_namespaceObject);
__webpack_require__.d(build_module_file_namespaceObject, {
  "metadata": function() { return file_metadata; },
  "name": function() { return file_name; },
  "settings": function() { return file_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/gallery/index.js
var build_module_gallery_namespaceObject = {};
__webpack_require__.r(build_module_gallery_namespaceObject);
__webpack_require__.d(build_module_gallery_namespaceObject, {
  "metadata": function() { return gallery_metadata; },
  "name": function() { return gallery_name; },
  "settings": function() { return gallery_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/group/index.js
var build_module_group_namespaceObject = {};
__webpack_require__.r(build_module_group_namespaceObject);
__webpack_require__.d(build_module_group_namespaceObject, {
  "metadata": function() { return group_metadata; },
  "name": function() { return group_name; },
  "settings": function() { return group_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/heading/index.js
var build_module_heading_namespaceObject = {};
__webpack_require__.r(build_module_heading_namespaceObject);
__webpack_require__.d(build_module_heading_namespaceObject, {
  "metadata": function() { return heading_metadata; },
  "name": function() { return heading_name; },
  "settings": function() { return heading_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/home-link/index.js
var home_link_namespaceObject = {};
__webpack_require__.r(home_link_namespaceObject);
__webpack_require__.d(home_link_namespaceObject, {
  "metadata": function() { return home_link_metadata; },
  "name": function() { return home_link_name; },
  "settings": function() { return home_link_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/html/index.js
var build_module_html_namespaceObject = {};
__webpack_require__.r(build_module_html_namespaceObject);
__webpack_require__.d(build_module_html_namespaceObject, {
  "metadata": function() { return html_metadata; },
  "name": function() { return html_name; },
  "settings": function() { return html_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/image/index.js
var build_module_image_namespaceObject = {};
__webpack_require__.r(build_module_image_namespaceObject);
__webpack_require__.d(build_module_image_namespaceObject, {
  "metadata": function() { return image_metadata; },
  "name": function() { return image_name; },
  "settings": function() { return image_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
var latest_comments_namespaceObject = {};
__webpack_require__.r(latest_comments_namespaceObject);
__webpack_require__.d(latest_comments_namespaceObject, {
  "metadata": function() { return latest_comments_metadata; },
  "name": function() { return latest_comments_name; },
  "settings": function() { return latest_comments_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
var latest_posts_namespaceObject = {};
__webpack_require__.r(latest_posts_namespaceObject);
__webpack_require__.d(latest_posts_namespaceObject, {
  "metadata": function() { return latest_posts_metadata; },
  "name": function() { return latest_posts_name; },
  "settings": function() { return latest_posts_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/list/index.js
var build_module_list_namespaceObject = {};
__webpack_require__.r(build_module_list_namespaceObject);
__webpack_require__.d(build_module_list_namespaceObject, {
  "metadata": function() { return list_metadata; },
  "name": function() { return list_name; },
  "settings": function() { return list_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/loginout/index.js
var loginout_namespaceObject = {};
__webpack_require__.r(loginout_namespaceObject);
__webpack_require__.d(loginout_namespaceObject, {
  "metadata": function() { return loginout_metadata; },
  "name": function() { return loginout_name; },
  "settings": function() { return loginout_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/media-text/index.js
var media_text_namespaceObject = {};
__webpack_require__.r(media_text_namespaceObject);
__webpack_require__.d(media_text_namespaceObject, {
  "metadata": function() { return media_text_metadata; },
  "name": function() { return media_text_name; },
  "settings": function() { return media_text_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/missing/index.js
var missing_namespaceObject = {};
__webpack_require__.r(missing_namespaceObject);
__webpack_require__.d(missing_namespaceObject, {
  "metadata": function() { return missing_metadata; },
  "name": function() { return missing_name; },
  "settings": function() { return missing_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/more/index.js
var build_module_more_namespaceObject = {};
__webpack_require__.r(build_module_more_namespaceObject);
__webpack_require__.d(build_module_more_namespaceObject, {
  "metadata": function() { return more_metadata; },
  "name": function() { return more_name; },
  "settings": function() { return more_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation/index.js
var build_module_navigation_namespaceObject = {};
__webpack_require__.r(build_module_navigation_namespaceObject);
__webpack_require__.d(build_module_navigation_namespaceObject, {
  "metadata": function() { return navigation_metadata; },
  "name": function() { return navigation_name; },
  "settings": function() { return navigation_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
var navigation_link_namespaceObject = {};
__webpack_require__.r(navigation_link_namespaceObject);
__webpack_require__.d(navigation_link_namespaceObject, {
  "metadata": function() { return navigation_link_metadata; },
  "name": function() { return navigation_link_name; },
  "settings": function() { return navigation_link_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
var navigation_submenu_namespaceObject = {};
__webpack_require__.r(navigation_submenu_namespaceObject);
__webpack_require__.d(navigation_submenu_namespaceObject, {
  "metadata": function() { return navigation_submenu_metadata; },
  "name": function() { return navigation_submenu_name; },
  "settings": function() { return navigation_submenu_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
var nextpage_namespaceObject = {};
__webpack_require__.r(nextpage_namespaceObject);
__webpack_require__.d(nextpage_namespaceObject, {
  "metadata": function() { return nextpage_metadata; },
  "name": function() { return nextpage_name; },
  "settings": function() { return nextpage_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pattern/index.js
var pattern_namespaceObject = {};
__webpack_require__.r(pattern_namespaceObject);
__webpack_require__.d(pattern_namespaceObject, {
  "metadata": function() { return pattern_metadata; },
  "name": function() { return pattern_name; },
  "settings": function() { return pattern_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/page-list/index.js
var page_list_namespaceObject = {};
__webpack_require__.r(page_list_namespaceObject);
__webpack_require__.d(page_list_namespaceObject, {
  "metadata": function() { return page_list_metadata; },
  "name": function() { return page_list_name; },
  "settings": function() { return page_list_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
var build_module_paragraph_namespaceObject = {};
__webpack_require__.r(build_module_paragraph_namespaceObject);
__webpack_require__.d(build_module_paragraph_namespaceObject, {
  "metadata": function() { return paragraph_metadata; },
  "name": function() { return paragraph_name; },
  "settings": function() { return paragraph_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author/index.js
var build_module_post_author_namespaceObject = {};
__webpack_require__.r(build_module_post_author_namespaceObject);
__webpack_require__.d(build_module_post_author_namespaceObject, {
  "metadata": function() { return post_author_metadata; },
  "name": function() { return post_author_name; },
  "settings": function() { return post_author_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
var post_author_biography_namespaceObject = {};
__webpack_require__.r(post_author_biography_namespaceObject);
__webpack_require__.d(post_author_biography_namespaceObject, {
  "metadata": function() { return post_author_biography_metadata; },
  "name": function() { return post_author_biography_name; },
  "settings": function() { return post_author_biography_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments/index.js
var build_module_post_comments_namespaceObject = {};
__webpack_require__.r(build_module_post_comments_namespaceObject);
__webpack_require__.d(build_module_post_comments_namespaceObject, {
  "metadata": function() { return post_comments_metadata; },
  "name": function() { return post_comments_name; },
  "settings": function() { return post_comments_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
var build_module_post_comments_form_namespaceObject = {};
__webpack_require__.r(build_module_post_comments_form_namespaceObject);
__webpack_require__.d(build_module_post_comments_form_namespaceObject, {
  "metadata": function() { return post_comments_form_metadata; },
  "name": function() { return post_comments_form_name; },
  "settings": function() { return post_comments_form_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-content/index.js
var build_module_post_content_namespaceObject = {};
__webpack_require__.r(build_module_post_content_namespaceObject);
__webpack_require__.d(build_module_post_content_namespaceObject, {
  "metadata": function() { return post_content_metadata; },
  "name": function() { return post_content_name; },
  "settings": function() { return post_content_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-date/index.js
var build_module_post_date_namespaceObject = {};
__webpack_require__.r(build_module_post_date_namespaceObject);
__webpack_require__.d(build_module_post_date_namespaceObject, {
  "metadata": function() { return post_date_metadata; },
  "name": function() { return post_date_name; },
  "settings": function() { return post_date_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
var build_module_post_excerpt_namespaceObject = {};
__webpack_require__.r(build_module_post_excerpt_namespaceObject);
__webpack_require__.d(build_module_post_excerpt_namespaceObject, {
  "metadata": function() { return post_excerpt_metadata; },
  "name": function() { return post_excerpt_name; },
  "settings": function() { return post_excerpt_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
var build_module_post_featured_image_namespaceObject = {};
__webpack_require__.r(build_module_post_featured_image_namespaceObject);
__webpack_require__.d(build_module_post_featured_image_namespaceObject, {
  "metadata": function() { return post_featured_image_metadata; },
  "name": function() { return post_featured_image_name; },
  "settings": function() { return post_featured_image_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
var post_navigation_link_namespaceObject = {};
__webpack_require__.r(post_navigation_link_namespaceObject);
__webpack_require__.d(post_navigation_link_namespaceObject, {
  "metadata": function() { return post_navigation_link_metadata; },
  "name": function() { return post_navigation_link_name; },
  "settings": function() { return post_navigation_link_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-template/index.js
var post_template_namespaceObject = {};
__webpack_require__.r(post_template_namespaceObject);
__webpack_require__.d(post_template_namespaceObject, {
  "metadata": function() { return post_template_metadata; },
  "name": function() { return post_template_name; },
  "settings": function() { return post_template_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
var build_module_post_terms_namespaceObject = {};
__webpack_require__.r(build_module_post_terms_namespaceObject);
__webpack_require__.d(build_module_post_terms_namespaceObject, {
  "metadata": function() { return post_terms_metadata; },
  "name": function() { return post_terms_name; },
  "settings": function() { return post_terms_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-title/index.js
var build_module_post_title_namespaceObject = {};
__webpack_require__.r(build_module_post_title_namespaceObject);
__webpack_require__.d(build_module_post_title_namespaceObject, {
  "metadata": function() { return post_title_metadata; },
  "name": function() { return post_title_name; },
  "settings": function() { return post_title_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
var build_module_preformatted_namespaceObject = {};
__webpack_require__.r(build_module_preformatted_namespaceObject);
__webpack_require__.d(build_module_preformatted_namespaceObject, {
  "metadata": function() { return preformatted_metadata; },
  "name": function() { return preformatted_name; },
  "settings": function() { return preformatted_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
var build_module_pullquote_namespaceObject = {};
__webpack_require__.r(build_module_pullquote_namespaceObject);
__webpack_require__.d(build_module_pullquote_namespaceObject, {
  "metadata": function() { return pullquote_metadata; },
  "name": function() { return pullquote_name; },
  "settings": function() { return pullquote_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query/index.js
var query_namespaceObject = {};
__webpack_require__.r(query_namespaceObject);
__webpack_require__.d(query_namespaceObject, {
  "metadata": function() { return query_metadata; },
  "name": function() { return query_name; },
  "settings": function() { return query_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
var query_no_results_namespaceObject = {};
__webpack_require__.r(query_no_results_namespaceObject);
__webpack_require__.d(query_no_results_namespaceObject, {
  "metadata": function() { return query_no_results_metadata; },
  "name": function() { return query_no_results_name; },
  "settings": function() { return query_no_results_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
var build_module_query_pagination_namespaceObject = {};
__webpack_require__.r(build_module_query_pagination_namespaceObject);
__webpack_require__.d(build_module_query_pagination_namespaceObject, {
  "metadata": function() { return query_pagination_metadata; },
  "name": function() { return query_pagination_name; },
  "settings": function() { return query_pagination_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
var build_module_query_pagination_next_namespaceObject = {};
__webpack_require__.r(build_module_query_pagination_next_namespaceObject);
__webpack_require__.d(build_module_query_pagination_next_namespaceObject, {
  "metadata": function() { return query_pagination_next_metadata; },
  "name": function() { return query_pagination_next_name; },
  "settings": function() { return query_pagination_next_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
var build_module_query_pagination_numbers_namespaceObject = {};
__webpack_require__.r(build_module_query_pagination_numbers_namespaceObject);
__webpack_require__.d(build_module_query_pagination_numbers_namespaceObject, {
  "metadata": function() { return query_pagination_numbers_metadata; },
  "name": function() { return query_pagination_numbers_name; },
  "settings": function() { return query_pagination_numbers_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
var build_module_query_pagination_previous_namespaceObject = {};
__webpack_require__.r(build_module_query_pagination_previous_namespaceObject);
__webpack_require__.d(build_module_query_pagination_previous_namespaceObject, {
  "metadata": function() { return query_pagination_previous_metadata; },
  "name": function() { return query_pagination_previous_name; },
  "settings": function() { return query_pagination_previous_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-title/index.js
var build_module_query_title_namespaceObject = {};
__webpack_require__.r(build_module_query_title_namespaceObject);
__webpack_require__.d(build_module_query_title_namespaceObject, {
  "metadata": function() { return query_title_metadata; },
  "name": function() { return query_title_name; },
  "settings": function() { return query_title_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/quote/index.js
var build_module_quote_namespaceObject = {};
__webpack_require__.r(build_module_quote_namespaceObject);
__webpack_require__.d(build_module_quote_namespaceObject, {
  "metadata": function() { return quote_metadata; },
  "name": function() { return quote_name; },
  "settings": function() { return quote_settings; },
  "settingsV1": function() { return quote_settingsV1; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/block/index.js
var block_namespaceObject = {};
__webpack_require__.r(block_namespaceObject);
__webpack_require__.d(block_namespaceObject, {
  "metadata": function() { return block_metadata; },
  "name": function() { return block_name; },
  "settings": function() { return block_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
var read_more_namespaceObject = {};
__webpack_require__.r(read_more_namespaceObject);
__webpack_require__.d(read_more_namespaceObject, {
  "metadata": function() { return read_more_metadata; },
  "name": function() { return read_more_name; },
  "settings": function() { return read_more_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/rss/index.js
var build_module_rss_namespaceObject = {};
__webpack_require__.r(build_module_rss_namespaceObject);
__webpack_require__.d(build_module_rss_namespaceObject, {
  "metadata": function() { return rss_metadata; },
  "name": function() { return rss_name; },
  "settings": function() { return rss_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/search/index.js
var build_module_search_namespaceObject = {};
__webpack_require__.r(build_module_search_namespaceObject);
__webpack_require__.d(build_module_search_namespaceObject, {
  "metadata": function() { return search_metadata; },
  "name": function() { return search_name; },
  "settings": function() { return search_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/separator/index.js
var build_module_separator_namespaceObject = {};
__webpack_require__.r(build_module_separator_namespaceObject);
__webpack_require__.d(build_module_separator_namespaceObject, {
  "metadata": function() { return separator_metadata; },
  "name": function() { return separator_name; },
  "settings": function() { return separator_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
var build_module_shortcode_namespaceObject = {};
__webpack_require__.r(build_module_shortcode_namespaceObject);
__webpack_require__.d(build_module_shortcode_namespaceObject, {
  "metadata": function() { return shortcode_metadata; },
  "name": function() { return shortcode_name; },
  "settings": function() { return shortcode_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
var build_module_site_logo_namespaceObject = {};
__webpack_require__.r(build_module_site_logo_namespaceObject);
__webpack_require__.d(build_module_site_logo_namespaceObject, {
  "metadata": function() { return site_logo_metadata; },
  "name": function() { return site_logo_name; },
  "settings": function() { return site_logo_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
var site_tagline_namespaceObject = {};
__webpack_require__.r(site_tagline_namespaceObject);
__webpack_require__.d(site_tagline_namespaceObject, {
  "metadata": function() { return site_tagline_metadata; },
  "name": function() { return site_tagline_name; },
  "settings": function() { return site_tagline_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
var site_title_namespaceObject = {};
__webpack_require__.r(site_title_namespaceObject);
__webpack_require__.d(site_title_namespaceObject, {
  "metadata": function() { return site_title_metadata; },
  "name": function() { return site_title_name; },
  "settings": function() { return site_title_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
var social_link_namespaceObject = {};
__webpack_require__.r(social_link_namespaceObject);
__webpack_require__.d(social_link_namespaceObject, {
  "metadata": function() { return social_link_metadata; },
  "name": function() { return social_link_name; },
  "settings": function() { return social_link_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
var social_links_namespaceObject = {};
__webpack_require__.r(social_links_namespaceObject);
__webpack_require__.d(social_links_namespaceObject, {
  "metadata": function() { return social_links_metadata; },
  "name": function() { return social_links_name; },
  "settings": function() { return social_links_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
var spacer_namespaceObject = {};
__webpack_require__.r(spacer_namespaceObject);
__webpack_require__.d(spacer_namespaceObject, {
  "metadata": function() { return spacer_metadata; },
  "name": function() { return spacer_name; },
  "settings": function() { return spacer_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table/index.js
var build_module_table_namespaceObject = {};
__webpack_require__.r(build_module_table_namespaceObject);
__webpack_require__.d(build_module_table_namespaceObject, {
  "metadata": function() { return table_metadata; },
  "name": function() { return table_name; },
  "settings": function() { return table_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
var tag_cloud_namespaceObject = {};
__webpack_require__.r(tag_cloud_namespaceObject);
__webpack_require__.d(tag_cloud_namespaceObject, {
  "metadata": function() { return tag_cloud_metadata; },
  "name": function() { return tag_cloud_name; },
  "settings": function() { return tag_cloud_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
var template_part_namespaceObject = {};
__webpack_require__.r(template_part_namespaceObject);
__webpack_require__.d(template_part_namespaceObject, {
  "metadata": function() { return template_part_metadata; },
  "name": function() { return template_part_name; },
  "settings": function() { return template_part_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
var build_module_term_description_namespaceObject = {};
__webpack_require__.r(build_module_term_description_namespaceObject);
__webpack_require__.d(build_module_term_description_namespaceObject, {
  "metadata": function() { return term_description_metadata; },
  "name": function() { return term_description_name; },
  "settings": function() { return term_description_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
var text_columns_namespaceObject = {};
__webpack_require__.r(text_columns_namespaceObject);
__webpack_require__.d(text_columns_namespaceObject, {
  "metadata": function() { return text_columns_metadata; },
  "name": function() { return text_columns_name; },
  "settings": function() { return text_columns_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/verse/index.js
var build_module_verse_namespaceObject = {};
__webpack_require__.r(build_module_verse_namespaceObject);
__webpack_require__.d(build_module_verse_namespaceObject, {
  "metadata": function() { return verse_metadata; },
  "name": function() { return verse_name; },
  "settings": function() { return verse_settings; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/video/index.js
var build_module_video_namespaceObject = {};
__webpack_require__.r(build_module_video_namespaceObject);
__webpack_require__.d(build_module_video_namespaceObject, {
  "metadata": function() { return video_metadata; },
  "name": function() { return video_name; },
  "settings": function() { return video_settings; }
});

;// CONCATENATED MODULE: external ["wp","blocks"]
var external_wp_blocks_namespaceObject = window["wp"]["blocks"];
;// CONCATENATED MODULE: external ["wp","element"]
var external_wp_element_namespaceObject = window["wp"]["element"];
;// CONCATENATED MODULE: external ["wp","primitives"]
var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive.js


/**
 * WordPress dependencies
 */

const archive = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5zM8 12.8h8v-1.5H8v1.5zm0 3h8v-1.5H8v1.5z"
}));
/* harmony default export */ var library_archive = (archive);

;// CONCATENATED MODULE: external ["wp","components"]
var external_wp_components_namespaceObject = window["wp"]["components"];
;// CONCATENATED MODULE: external ["wp","i18n"]
var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
;// CONCATENATED MODULE: external ["wp","blockEditor"]
var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
;// CONCATENATED MODULE: external ["wp","serverSideRender"]
var external_wp_serverSideRender_namespaceObject = window["wp"]["serverSideRender"];
var external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_namespaceObject);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/edit.js


/**
 * WordPress dependencies
 */




function ArchivesEdit(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    showPostCounts,
    displayAsDropdown,
    type
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Archives settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
    checked: displayAsDropdown,
    onChange: () => setAttributes({
      displayAsDropdown: !displayAsDropdown
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
    checked: showPostCounts,
    onChange: () => setAttributes({
      showPostCounts: !showPostCounts
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Group by:'),
    options: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Year'),
      value: 'yearly'
    }, {
      label: (0,external_wp_i18n_namespaceObject.__)('Month'),
      value: 'monthly'
    }, {
      label: (0,external_wp_i18n_namespaceObject.__)('Week'),
      value: 'weekly'
    }, {
      label: (0,external_wp_i18n_namespaceObject.__)('Day'),
      value: 'daily'
    }],
    value: type,
    onChange: value => setAttributes({
      type: value
    })
  }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), {
    block: "core/archives",
    attributes: attributes
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/archives",
  title: "Archives",
  category: "widgets",
  description: "Display a date archive of your posts.",
  textdomain: "default",
  attributes: {
    displayAsDropdown: {
      type: "boolean",
      "default": false
    },
    showPostCounts: {
      type: "boolean",
      "default": false
    },
    type: {
      type: "string",
      "default": "monthly"
    }
  },
  supports: {
    align: true,
    html: false
  },
  editorStyle: "wp-block-archives-editor"
};

const {
  name: archives_name
} = metadata;

const settings = {
  icon: library_archive,
  example: {},
  edit: ArchivesEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js


/**
 * WordPress dependencies
 */

const commentAuthorAvatar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  fillRule: "evenodd",
  d: "M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z",
  clipRule: "evenodd"
}));
/* harmony default export */ var comment_author_avatar = (commentAuthorAvatar);

;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(4403);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
;// CONCATENATED MODULE: external ["wp","url"]
var external_wp_url_namespaceObject = window["wp"]["url"];
;// CONCATENATED MODULE: external ["wp","coreData"]
var external_wp_coreData_namespaceObject = window["wp"]["coreData"];
;// CONCATENATED MODULE: external ["wp","data"]
var external_wp_data_namespaceObject = window["wp"]["data"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/hooks.js
/**
 * WordPress dependencies
 */





function getAvatarSizes(sizes) {
  const minSize = sizes ? sizes[0] : 24;
  const maxSize = sizes ? sizes[sizes.length - 1] : 96;
  const maxSizeBuffer = Math.floor(maxSize * 2.5);
  return {
    minSize,
    maxSize: maxSizeBuffer
  };
}

function useDefaultAvatar() {
  const {
    avatarURL: defaultAvatarUrl
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      __experimentalDiscussionSettings
    } = getSettings();
    return __experimentalDiscussionSettings;
  });
  return defaultAvatarUrl;
}

function useCommentAvatar(_ref) {
  let {
    commentId
  } = _ref;
  const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId);
  const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId);
  const avatarUrls = avatars ? Object.values(avatars) : null;
  const sizes = avatars ? Object.keys(avatars) : null;
  const {
    minSize,
    maxSize
  } = getAvatarSizes(sizes);
  const defaultAvatar = useDefaultAvatar();
  return {
    src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
    minSize,
    maxSize,
    // translators: %s is the Author name.
    alt: authorName ? // translators: %s is the Author name.
    (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorName) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
  };
}
function useUserAvatar(_ref2) {
  let {
    userId,
    postId,
    postType
  } = _ref2;
  const {
    authorDetails
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getEditedEntityRecor;

    const {
      getEditedEntityRecord,
      getUser
    } = select(external_wp_coreData_namespaceObject.store);

    if (userId) {
      return {
        authorDetails: getUser(userId)
      };
    }

    const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author;

    return {
      authorDetails: _authorId ? getUser(_authorId) : null
    };
  }, [postType, postId, userId]);
  const avatarUrls = authorDetails ? Object.values(authorDetails.avatar_urls) : null;
  const sizes = authorDetails ? Object.keys(authorDetails.avatar_urls) : null;
  const {
    minSize,
    maxSize
  } = getAvatarSizes(sizes);
  const defaultAvatar = useDefaultAvatar();
  return {
    src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
    minSize,
    maxSize,
    alt: authorDetails ? // translators: %s is the Author name.
    (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.name) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
  };
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/user-control.js


/**
 * WordPress dependencies
 */





const AUTHORS_QUERY = {
  who: 'authors',
  per_page: -1,
  _fields: 'id,name',
  context: 'view'
};

function UserControl(_ref) {
  let {
    value,
    onChange
  } = _ref;
  const [filteredAuthorsList, setFilteredAuthorsList] = (0,external_wp_element_namespaceObject.useState)();
  const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getUsers
    } = select(external_wp_coreData_namespaceObject.store);
    return getUsers(AUTHORS_QUERY);
  }, []);

  if (!authorsList) {
    return null;
  }

  const options = authorsList.map(author => {
    return {
      label: author.name,
      value: author.id
    };
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ComboboxControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('User'),
    help: (0,external_wp_i18n_namespaceObject.__)('Select the avatar user to display, if it is blank it will use the post/page author.'),
    value: value,
    onChange: onChange,
    options: filteredAuthorsList || options,
    onFilterValueChange: inputValue => setFilteredAuthorsList(options.filter(option => option.label.toLowerCase().startsWith(inputValue.toLowerCase())))
  });
}

/* harmony default export */ var user_control = (UserControl);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




const AvatarInspectorControls = _ref => {
  let {
    setAttributes,
    avatar,
    attributes,
    selectUser
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
    onChange: newSize => setAttributes({
      size: newSize
    }),
    min: avatar.minSize,
    max: avatar.maxSize,
    initialPosition: attributes === null || attributes === void 0 ? void 0 : attributes.size,
    value: attributes === null || attributes === void 0 ? void 0 : attributes.size
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link to user profile'),
    onChange: () => setAttributes({
      isLink: !attributes.isLink
    }),
    checked: attributes.isLink
  }), attributes.isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: attributes.linkTarget === '_blank'
  }), selectUser && (0,external_wp_element_namespaceObject.createElement)(user_control, {
    value: attributes === null || attributes === void 0 ? void 0 : attributes.userId,
    onChange: value => {
      setAttributes({
        userId: value
      });
    }
  })));
};

const ResizableAvatar = _ref2 => {
  let {
    setAttributes,
    attributes,
    avatar,
    blockProps,
    isSelected
  } = _ref2;
  const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
  const doubledSizedSrc = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(avatar === null || avatar === void 0 ? void 0 : avatar.src, ['s']), {
    s: (attributes === null || attributes === void 0 ? void 0 : attributes.size) * 2
  });
  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
    size: {
      width: attributes.size,
      height: attributes.size
    },
    showHandle: isSelected,
    onResizeStop: (event, direction, elt, delta) => {
      setAttributes({
        size: parseInt(attributes.size + (delta.height || delta.width), 10)
      });
    },
    lockAspectRatio: true,
    enable: {
      top: false,
      right: !(0,external_wp_i18n_namespaceObject.isRTL)(),
      bottom: true,
      left: (0,external_wp_i18n_namespaceObject.isRTL)()
    },
    minWidth: avatar.minSize,
    maxWidth: avatar.maxSize
  }, (0,external_wp_element_namespaceObject.createElement)("img", _extends({
    src: doubledSizedSrc,
    alt: avatar.alt
  }, borderProps, {
    className: classnames_default()('avatar', 'avatar-' + attributes.size, 'photo', 'wp-block-avatar__image', borderProps.className),
    style: { ...borderProps.style // Border radius, width and style.

    }
  }))));
};

const CommentEdit = _ref3 => {
  let {
    attributes,
    context,
    setAttributes,
    isSelected
  } = _ref3;
  const {
    commentId
  } = context;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const avatar = useCommentAvatar({
    commentId
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AvatarInspectorControls, {
    avatar: avatar,
    setAttributes: setAttributes,
    attributes: attributes,
    selectUser: false
  }), attributes.isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#avatar-pseudo-link",
    className: "wp-block-avatar__link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
    attributes: attributes,
    avatar: avatar,
    blockProps: blockProps,
    isSelected: isSelected,
    setAttributes: setAttributes
  })) : (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
    attributes: attributes,
    avatar: avatar,
    blockProps: blockProps,
    isSelected: isSelected,
    setAttributes: setAttributes
  }));
};

const UserEdit = _ref4 => {
  let {
    attributes,
    context,
    setAttributes,
    isSelected
  } = _ref4;
  const {
    postId,
    postType
  } = context;
  const avatar = useUserAvatar({
    userId: attributes === null || attributes === void 0 ? void 0 : attributes.userId,
    postId,
    postType
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AvatarInspectorControls, {
    selectUser: true,
    attributes: attributes,
    avatar: avatar,
    setAttributes: setAttributes
  }), (0,external_wp_element_namespaceObject.createElement)("div", null, attributes.isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#avatar-pseudo-link",
    className: "wp-block-avatar__link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
    attributes: attributes,
    avatar: avatar,
    blockProps: blockProps,
    isSelected: isSelected,
    setAttributes: setAttributes
  })) : (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
    attributes: attributes,
    avatar: avatar,
    blockProps: blockProps,
    isSelected: isSelected,
    setAttributes: setAttributes
  })));
};

function Edit(props) {
  var _props$context, _props$context2;

  // Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).
  if (props !== null && props !== void 0 && (_props$context = props.context) !== null && _props$context !== void 0 && _props$context.commentId || (props === null || props === void 0 ? void 0 : (_props$context2 = props.context) === null || _props$context2 === void 0 ? void 0 : _props$context2.commentId) === null) {
    return (0,external_wp_element_namespaceObject.createElement)(CommentEdit, props);
  }

  return (0,external_wp_element_namespaceObject.createElement)(UserEdit, props);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const avatar_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/avatar",
  title: "Avatar",
  category: "theme",
  description: "Add a user's avatar.",
  textdomain: "default",
  attributes: {
    userId: {
      type: "number"
    },
    size: {
      type: "number",
      "default": 96
    },
    isLink: {
      type: "boolean",
      "default": false
    },
    linkTarget: {
      type: "string",
      "default": "_self"
    }
  },
  usesContext: ["postType", "postId", "commentId"],
  supports: {
    html: false,
    align: true,
    alignWide: false,
    spacing: {
      margin: true
    },
    __experimentalBorder: {
      __experimentalSkipSerialization: true,
      radius: true,
      width: true,
      color: true,
      style: true,
      __experimentalDefaultControls: {
        radius: true
      }
    },
    color: {
      text: false,
      background: false,
      __experimentalDuotone: "img"
    }
  },
  editorStyle: "wp-block-avatar",
  style: "wp-block-avatar"
};

const {
  name: avatar_name
} = avatar_metadata;

const avatar_settings = {
  icon: comment_author_avatar,
  edit: Edit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/audio.js


/**
 * WordPress dependencies
 */

const audio = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z"
}));
/* harmony default export */ var library_audio = (audio);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/deprecated.js


/**
 * WordPress dependencies
 */

/* harmony default export */ var deprecated = ([{
  attributes: {
    src: {
      type: 'string',
      source: 'attribute',
      selector: 'audio',
      attribute: 'src'
    },
    caption: {
      type: 'string',
      source: 'html',
      selector: 'figcaption'
    },
    id: {
      type: 'number'
    },
    autoplay: {
      type: 'boolean',
      source: 'attribute',
      selector: 'audio',
      attribute: 'autoplay'
    },
    loop: {
      type: 'boolean',
      source: 'attribute',
      selector: 'audio',
      attribute: 'loop'
    },
    preload: {
      type: 'string',
      source: 'attribute',
      selector: 'audio',
      attribute: 'preload'
    }
  },
  supports: {
    align: true
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      autoplay,
      caption,
      loop,
      preload,
      src
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("figure", null, (0,external_wp_element_namespaceObject.createElement)("audio", {
      controls: "controls",
      src: src,
      autoPlay: autoplay,
      loop: loop,
      preload: preload
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));
  }

}]);

;// CONCATENATED MODULE: external ["wp","blob"]
var external_wp_blob_namespaceObject = window["wp"]["blob"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/constants.js
const ASPECT_RATIOS = [// Common video resolutions.
{
  ratio: '2.33',
  className: 'wp-embed-aspect-21-9'
}, {
  ratio: '2.00',
  className: 'wp-embed-aspect-18-9'
}, {
  ratio: '1.78',
  className: 'wp-embed-aspect-16-9'
}, {
  ratio: '1.33',
  className: 'wp-embed-aspect-4-3'
}, // Vertical video and instagram square video support.
{
  ratio: '1.00',
  className: 'wp-embed-aspect-1-1'
}, {
  ratio: '0.56',
  className: 'wp-embed-aspect-9-16'
}, {
  ratio: '0.50',
  className: 'wp-embed-aspect-1-2'
}];
const WP_EMBED_TYPE = 'wp-embed';

;// CONCATENATED MODULE: external "lodash"
var external_lodash_namespaceObject = window["lodash"];
// EXTERNAL MODULE: ./node_modules/classnames/dedupe.js
var dedupe = __webpack_require__(3827);
var dedupe_default = /*#__PURE__*/__webpack_require__.n(dedupe);
// EXTERNAL MODULE: ./node_modules/memize/index.js
var memize = __webpack_require__(9756);
var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/util.js


/**
 * Internal dependencies
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const util_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/embed",
  title: "Embed",
  category: "embed",
  description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
  textdomain: "default",
  attributes: {
    url: {
      type: "string"
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    type: {
      type: "string"
    },
    providerNameSlug: {
      type: "string"
    },
    allowResponsive: {
      type: "boolean",
      "default": true
    },
    responsive: {
      type: "boolean",
      "default": false
    },
    previewable: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    align: true
  },
  editorStyle: "wp-block-embed-editor",
  style: "wp-block-embed"
};
const {
  name: DEFAULT_EMBED_BLOCK
} = util_metadata;
/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */

/**
 * Returns the embed block's information by matching the provided service provider
 *
 * @param {string} provider The embed block's provider
 * @return {WPBlockVariation} The embed block's information
 */

const getEmbedInfoByProvider = provider => {
  var _getBlockVariations;

  return (_getBlockVariations = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations === void 0 ? void 0 : _getBlockVariations.find(_ref => {
    let {
      name
    } = _ref;
    return name === provider;
  });
};
/**
 * Returns true if any of the regular expressions match the URL.
 *
 * @param {string} url      The URL to test.
 * @param {Array}  patterns The list of regular expressions to test agains.
 * @return {boolean} True if any of the regular expressions match the URL.
 */

const matchesPatterns = function (url) {
  let patterns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  return patterns.some(pattern => url.match(pattern));
};
/**
 * Finds the block variation that should be used for the URL,
 * based on the provided URL and the variation's patterns.
 *
 * @param {string} url The URL to test.
 * @return {WPBlockVariation} The block variation that should be used for this URL
 */

const findMoreSuitableBlock = url => {
  var _getBlockVariations2;

  return (_getBlockVariations2 = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations2 === void 0 ? void 0 : _getBlockVariations2.find(_ref2 => {
    let {
      patterns
    } = _ref2;
    return matchesPatterns(url, patterns);
  });
};
const isFromWordPress = html => html && html.includes('class="wp-embedded-content"');
const getPhotoHtml = photo => {
  // 100% width for the preview so it fits nicely into the document, some "thumbnails" are
  // actually the full size photo. If thumbnails not found, use full image.
  const imageUrl = photo.thumbnail_url || photo.url;
  const photoPreview = (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("img", {
    src: imageUrl,
    alt: photo.title,
    width: "100%"
  }));
  return (0,external_wp_element_namespaceObject.renderToString)(photoPreview);
};
/**
 * Creates a more suitable embed block based on the passed in props
 * and attributes generated from an embed block's preview.
 *
 * We require `attributesFromPreview` to be generated from the latest attributes
 * and preview, and because of the way the react lifecycle operates, we can't
 * guarantee that the attributes contained in the block's props are the latest
 * versions, so we require that these are generated separately.
 * See `getAttributesFromPreview` in the generated embed edit component.
 *
 * @param {Object} props                   The block's props.
 * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.
 * @return {Object|undefined} A more suitable embed block if one exists.
 */

const createUpgradedEmbedBlock = function (props) {
  var _getBlockVariations3;

  let attributesFromPreview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  const {
    preview,
    attributes = {}
  } = props;
  const {
    url,
    providerNameSlug,
    type,
    ...restAttributes
  } = attributes;
  if (!url || !(0,external_wp_blocks_namespaceObject.getBlockType)(DEFAULT_EMBED_BLOCK)) return;
  const matchedBlock = findMoreSuitableBlock(url); // WordPress blocks can work on multiple sites, and so don't have patterns,
  // so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.

  const isCurrentBlockWP = providerNameSlug === 'wordpress' || type === WP_EMBED_TYPE; // If current block is not WordPress and a more suitable block found
  // that is different from the current one, create the new matched block.

  const shouldCreateNewBlock = !isCurrentBlockWP && matchedBlock && (matchedBlock.attributes.providerNameSlug !== providerNameSlug || !providerNameSlug);

  if (shouldCreateNewBlock) {
    return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
      url,
      ...restAttributes,
      ...matchedBlock.attributes
    });
  }

  const wpVariation = (_getBlockVariations3 = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations3 === void 0 ? void 0 : _getBlockVariations3.find(_ref3 => {
    let {
      name
    } = _ref3;
    return name === 'wordpress';
  }); // We can't match the URL for WordPress embeds, we have to check the HTML instead.

  if (!wpVariation || !preview || !isFromWordPress(preview.html) || isCurrentBlockWP) {
    return;
  } // This is not the WordPress embed block so transform it into one.


  return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
    url,
    ...wpVariation.attributes,
    // By now we have the preview, but when the new block first renders, it
    // won't have had all the attributes set, and so won't get the correct
    // type and it won't render correctly. So, we pass through the current attributes
    // here so that the initial render works when we switch to the WordPress
    // block. This only affects the WordPress block because it can't be
    // rendered in the usual Sandbox (it has a sandbox of its own) and it
    // relies on the preview to set the correct render type.
    ...attributesFromPreview
  });
};
/**
 * Removes all previously set aspect ratio related classes and return the rest
 * existing class names.
 *
 * @param {string} existingClassNames Any existing class names.
 * @return {string} The class names without any aspect ratio related class.
 */

const removeAspectRatioClasses = existingClassNames => {
  if (!existingClassNames) {
    // Avoids extraneous work and also, by returning the same value as
    // received, ensures the post is not dirtied by a change of the block
    // attribute from `undefined` to an emtpy string.
    return existingClassNames;
  }

  const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, _ref4) => {
    let {
      className
    } = _ref4;
    accumulator[className] = false;
    return accumulator;
  }, {
    'wp-has-aspect-ratio': false
  });
  return dedupe_default()(existingClassNames, aspectRatioClassNames);
};
/**
 * Returns class names with any relevant responsive aspect ratio names.
 *
 * @param {string}  html               The preview HTML that possibly contains an iframe with width and height set.
 * @param {string}  existingClassNames Any existing class names.
 * @param {boolean} allowResponsive    If the responsive class names should be added, or removed.
 * @return {string} Deduped class names.
 */

function getClassNames(html, existingClassNames) {
  let allowResponsive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

  if (!allowResponsive) {
    return removeAspectRatioClasses(existingClassNames);
  }

  const previewDocument = document.implementation.createHTMLDocument('');
  previewDocument.body.innerHTML = html;
  const iframe = previewDocument.body.querySelector('iframe'); // If we have a fixed aspect iframe, and it's a responsive embed block.

  if (iframe && iframe.height && iframe.width) {
    const aspectRatio = (iframe.width / iframe.height).toFixed(2); // Given the actual aspect ratio, find the widest ratio to support it.

    for (let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++) {
      const potentialRatio = ASPECT_RATIOS[ratioIndex];

      if (aspectRatio >= potentialRatio.ratio) {
        // Evaluate the difference between actual aspect ratio and closest match.
        // If the difference is too big, do not scale the embed according to aspect ratio.
        const ratioDiff = aspectRatio - potentialRatio.ratio;

        if (ratioDiff > 0.1) {
          // No close aspect ratio match found.
          return removeAspectRatioClasses(existingClassNames);
        } // Close aspect ratio match found.


        return dedupe_default()(removeAspectRatioClasses(existingClassNames), potentialRatio.className, 'wp-has-aspect-ratio');
      }
    }
  }

  return existingClassNames;
}
/**
 * Fallback behaviour for unembeddable URLs.
 * Creates a paragraph block containing a link to the URL, and calls `onReplace`.
 *
 * @param {string}   url       The URL that could not be embedded.
 * @param {Function} onReplace Function to call with the created fallback block.
 */

function fallback(url, onReplace) {
  const link = (0,external_wp_element_namespaceObject.createElement)("a", {
    href: url
  }, url);
  onReplace((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
    content: (0,external_wp_element_namespaceObject.renderToString)(link)
  }));
}
/***
 * Gets block attributes based on the preview and responsive state.
 *
 * @param {Object} preview The preview data.
 * @param {string} title The block's title, e.g. Twitter.
 * @param {Object} currentClassNames The block's current class names.
 * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
 * @param {boolean} allowResponsive Apply responsive classes to fixed size content.
 * @return {Object} Attributes and values.
 */

const getAttributesFromPreview = memize_default()(function (preview, title, currentClassNames, isResponsive) {
  let allowResponsive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;

  if (!preview) {
    return {};
  }

  const attributes = {}; // Some plugins only return HTML with no type info, so default this to 'rich'.

  let {
    type = 'rich'
  } = preview; // If we got a provider name from the API, use it for the slug, otherwise we use the title,
  // because not all embed code gives us a provider name.

  const {
    html,
    provider_name: providerName
  } = preview;
  const providerNameSlug = (0,external_lodash_namespaceObject.kebabCase)((providerName || title).toLowerCase());

  if (isFromWordPress(html)) {
    type = WP_EMBED_TYPE;
  }

  if (html || 'photo' === type) {
    attributes.type = type;
    attributes.providerNameSlug = providerNameSlug;
  }

  attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive);
  return attributes;
});

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


const ALLOWED_MEDIA_TYPES = ['audio'];

function AudioEdit(_ref) {
  let {
    attributes,
    className,
    noticeOperations,
    setAttributes,
    onReplace,
    isSelected,
    noticeUI,
    insertBlocksAfter
  } = _ref;
  const {
    id,
    autoplay,
    caption,
    loop,
    preload,
    src
  } = attributes;
  const isTemporaryAudio = !id && (0,external_wp_blob_namespaceObject.isBlobURL)(src);
  const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return getSettings().mediaUpload;
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!id && (0,external_wp_blob_namespaceObject.isBlobURL)(src)) {
      const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(src);

      if (file) {
        mediaUpload({
          filesList: [file],
          onFileChange: _ref2 => {
            let [{
              id: mediaId,
              url
            }] = _ref2;
            setAttributes({
              id: mediaId,
              src: url
            });
          },
          onError: e => {
            setAttributes({
              src: undefined,
              id: undefined
            });
            noticeOperations.createErrorNotice(e);
          },
          allowedTypes: ALLOWED_MEDIA_TYPES
        });
      }
    }
  }, []);

  function toggleAttribute(attribute) {
    return newValue => {
      setAttributes({
        [attribute]: newValue
      });
    };
  }

  function onSelectURL(newSrc) {
    // Set the block's src from the edit component's state, and switch off
    // the editing UI.
    if (newSrc !== src) {
      // Check if there's an embed block that handles this URL.
      const embedBlock = createUpgradedEmbedBlock({
        attributes: {
          url: newSrc
        }
      });

      if (undefined !== embedBlock && onReplace) {
        onReplace(embedBlock);
        return;
      }

      setAttributes({
        src: newSrc,
        id: undefined
      });
    }
  }

  function onUploadError(message) {
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
  }

  function getAutoplayHelp(checked) {
    return checked ? (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.') : null;
  }

  function onSelectAudio(media) {
    if (!media || !media.url) {
      // In this case there was an error and we should continue in the editing state
      // previous attributes should be removed because they may be temporary blob urls.
      setAttributes({
        src: undefined,
        id: undefined
      });
      return;
    } // Sets the block's attribute and updates the edit component from the
    // selected media, then switches off the editing UI.


    setAttributes({
      src: media.url,
      id: media.id
    });
  }

  const classes = classnames_default()(className, {
    'is-transient': isTemporaryAudio
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classes
  });

  if (!src) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
        icon: library_audio
      }),
      onSelect: onSelectAudio,
      onSelectURL: onSelectURL,
      accept: "audio/*",
      allowedTypes: ALLOWED_MEDIA_TYPES,
      value: attributes,
      notices: noticeUI,
      onError: onUploadError
    }));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: id,
    mediaURL: src,
    allowedTypes: ALLOWED_MEDIA_TYPES,
    accept: "audio/*",
    onSelect: onSelectAudio,
    onSelectURL: onSelectURL,
    onError: onUploadError
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Audio settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
    onChange: toggleAttribute('autoplay'),
    checked: autoplay,
    help: getAutoplayHelp
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
    onChange: toggleAttribute('loop'),
    checked: loop
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject._x)('Preload', 'noun; Audio block parameter'),
    value: preload || '' // `undefined` is required for the preload attribute to be unset.
    ,
    onChange: value => setAttributes({
      preload: value || undefined
    }),
    options: [{
      value: '',
      label: (0,external_wp_i18n_namespaceObject.__)('Browser default')
    }, {
      value: 'auto',
      label: (0,external_wp_i18n_namespaceObject.__)('Auto')
    }, {
      value: 'metadata',
      label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
    }, {
      value: 'none',
      label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
    }]
  }))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, {
    isDisabled: !isSelected
  }, (0,external_wp_element_namespaceObject.createElement)("audio", {
    controls: "controls",
    src: src
  })), isTemporaryAudio && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "figcaption",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Audio caption text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
    value: caption,
    onChange: value => setAttributes({
      caption: value
    }),
    inlineToolbar: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  })));
}

/* harmony default export */ var edit = ((0,external_wp_components_namespaceObject.withNotices)(AudioEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/save.js


/**
 * WordPress dependencies
 */

function save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    autoplay,
    caption,
    loop,
    preload,
    src
  } = attributes;
  return src && (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("audio", {
    controls: "controls",
    src: src,
    autoPlay: autoplay,
    loop: loop,
    preload: preload
  }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    value: caption
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/transforms.js
/**
 * WordPress dependencies
 */


const transforms = {
  from: [{
    type: 'files',

    isMatch(files) {
      return files.length === 1 && files[0].type.indexOf('audio/') === 0;
    },

    transform(files) {
      const file = files[0]; // We don't need to upload the media directly here
      // It's already done as part of the `componentDidMount`
      // in the audio block.

      const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
        src: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
      });
      return block;
    }

  }, {
    type: 'shortcode',
    tag: 'audio',
    attributes: {
      src: {
        type: 'string',
        shortcode: _ref => {
          let {
            named: {
              src,
              mp3,
              m4a,
              ogg,
              wav,
              wma
            }
          } = _ref;
          return src || mp3 || m4a || ogg || wav || wma;
        }
      },
      loop: {
        type: 'string',
        shortcode: _ref2 => {
          let {
            named: {
              loop
            }
          } = _ref2;
          return loop;
        }
      },
      autoplay: {
        type: 'string',
        shortcode: _ref3 => {
          let {
            named: {
              autoplay
            }
          } = _ref3;
          return autoplay;
        }
      },
      preload: {
        type: 'string',
        shortcode: _ref4 => {
          let {
            named: {
              preload
            }
          } = _ref4;
          return preload;
        }
      }
    }
  }]
};
/* harmony default export */ var audio_transforms = (transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const audio_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/audio",
  title: "Audio",
  category: "media",
  description: "Embed a simple audio player.",
  keywords: ["music", "sound", "podcast", "recording"],
  textdomain: "default",
  attributes: {
    src: {
      type: "string",
      source: "attribute",
      selector: "audio",
      attribute: "src"
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    id: {
      type: "number"
    },
    autoplay: {
      type: "boolean",
      source: "attribute",
      selector: "audio",
      attribute: "autoplay"
    },
    loop: {
      type: "boolean",
      source: "attribute",
      selector: "audio",
      attribute: "loop"
    },
    preload: {
      type: "string",
      source: "attribute",
      selector: "audio",
      attribute: "preload"
    }
  },
  supports: {
    anchor: true,
    align: true
  },
  editorStyle: "wp-block-audio-editor",
  style: "wp-block-audio"
};


const {
  name: audio_name
} = audio_metadata;

const audio_settings = {
  icon: library_audio,
  example: {
    attributes: {
      src: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg'
    }
  },
  transforms: audio_transforms,
  deprecated: deprecated,
  edit: edit,
  save: save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/button.js


/**
 * WordPress dependencies
 */

const button_button = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 12.8h8v-1.5H8v1.5z"
}));
/* harmony default export */ var library_button = (button_button);

;// CONCATENATED MODULE: external ["wp","compose"]
var external_wp_compose_namespaceObject = window["wp"]["compose"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/clean-empty-object.js
/**
 * External dependencies
 */

/**
 * Removed empty nodes from nested objects.
 *
 * @param {Object} object
 * @return {Object} Object cleaned from empty nodes.
 */

const cleanEmptyObject = object => {
  if (!(0,external_lodash_namespaceObject.isObject)(object) || Array.isArray(object)) {
    return object;
  }

  const cleanedNestedObjects = (0,external_lodash_namespaceObject.pickBy)((0,external_lodash_namespaceObject.mapValues)(object, cleanEmptyObject), external_lodash_namespaceObject.identity);
  return (0,external_lodash_namespaceObject.isEmpty)(cleanedNestedObjects) ? undefined : cleanedNestedObjects;
};

/* harmony default export */ var clean_empty_object = (cleanEmptyObject);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/migrate-font-family.js
/**
 * External dependencies
 */

/**
 * Internal dependencies
 */


/**
 * Migrates the current style.typography.fontFamily attribute,
 * whose value was "var:preset|font-family|helvetica-arial",
 * to the style.fontFamily attribute, whose value will be "helvetica-arial".
 *
 * @param {Object} attributes The current attributes
 * @return {Object} The updated attributes.
 */

/* harmony default export */ function migrate_font_family(attributes) {
  var _attributes$style, _attributes$style$typ;

  if (!(attributes !== null && attributes !== void 0 && (_attributes$style = attributes.style) !== null && _attributes$style !== void 0 && (_attributes$style$typ = _attributes$style.typography) !== null && _attributes$style$typ !== void 0 && _attributes$style$typ.fontFamily)) {
    return attributes;
  } // Clone first so when we delete the fontFamily
  // below we're not modifying the original
  // attributes. Because the deprecation may be discarded
  // we don't want to alter the original attributes.


  const atts = (0,external_lodash_namespaceObject.cloneDeep)(attributes);
  const fontFamily = atts.style.typography.fontFamily.split('|').pop();
  delete atts.style.typography.fontFamily;
  atts.style = clean_empty_object(atts.style);
  return { ...atts,
    fontFamily
  };
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const migrateBorderRadius = attributes => {
  var _newAttributes$style, _newAttributes$style$, _newAttributes$style2;

  const {
    borderRadius,
    ...newAttributes
  } = attributes; // We have to check old property `borderRadius` and if
  // `styles.border.radius` is a `number`

  const oldBorderRadius = [borderRadius, (_newAttributes$style = newAttributes.style) === null || _newAttributes$style === void 0 ? void 0 : (_newAttributes$style$ = _newAttributes$style.border) === null || _newAttributes$style$ === void 0 ? void 0 : _newAttributes$style$.radius].find(possibleBorderRadius => {
    return typeof possibleBorderRadius === 'number' && possibleBorderRadius !== 0;
  });

  if (!oldBorderRadius) {
    return newAttributes;
  }

  return { ...newAttributes,
    style: { ...newAttributes.style,
      border: { ...((_newAttributes$style2 = newAttributes.style) === null || _newAttributes$style2 === void 0 ? void 0 : _newAttributes$style2.border),
        radius: `${oldBorderRadius}px`
      }
    }
  };
};

const migrateCustomColorsAndGradients = attributes => {
  if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customGradient) {
    return attributes;
  }

  const style = {
    color: {}
  };

  if (attributes.customTextColor) {
    style.color.text = attributes.customTextColor;
  }

  if (attributes.customBackgroundColor) {
    style.color.background = attributes.customBackgroundColor;
  }

  if (attributes.customGradient) {
    style.color.gradient = attributes.customGradient;
  }

  return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor', 'customGradient']),
    style
  };
};

const oldColorsMigration = attributes => {
  return migrateCustomColorsAndGradients((0,external_lodash_namespaceObject.omit)({ ...attributes,
    customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
    customBackgroundColor: attributes.color && '#' === attributes.color[0] ? attributes.color : undefined
  }, ['color', 'textColor']));
};

const blockAttributes = {
  url: {
    type: 'string',
    source: 'attribute',
    selector: 'a',
    attribute: 'href'
  },
  title: {
    type: 'string',
    source: 'attribute',
    selector: 'a',
    attribute: 'title'
  },
  text: {
    type: 'string',
    source: 'html',
    selector: 'a'
  }
};
const v10 = {
  attributes: {
    url: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'href'
    },
    title: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'title'
    },
    text: {
      type: 'string',
      source: 'html',
      selector: 'a'
    },
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    width: {
      type: 'number'
    }
  },
  supports: {
    anchor: true,
    align: true,
    alignWide: false,
    color: {
      __experimentalSkipSerialization: true,
      gradients: true
    },
    typography: {
      fontSize: true,
      __experimentalFontFamily: true
    },
    reusable: false,
    spacing: {
      __experimentalSkipSerialization: true,
      padding: ['horizontal', 'vertical'],
      __experimentalDefaultControls: {
        padding: true
      }
    },
    __experimentalBorder: {
      radius: true,
      __experimentalSkipSerialization: true
    },
    __experimentalSelector: '.wp-block-button__link'
  },

  save(_ref) {
    var _style$border, _style$typography;

    let {
      attributes,
      className
    } = _ref;
    const {
      fontSize,
      linkTarget,
      rel,
      style,
      text,
      title,
      url,
      width
    } = attributes;

    if (!text) {
      return null;
    }

    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
    const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, borderProps.className, {
      // For backwards compatibility add style that isn't provided via
      // block support.
      'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius) === 0
    });
    const buttonStyle = { ...borderProps.style,
      ...colorProps.style,
      ...spacingProps.style
    }; // The use of a `title` attribute here is soft-deprecated, but still applied
    // if it had already been assigned, for the sake of backward-compatibility.
    // A title will no longer be assigned for new or updated button block links.

    const wrapperClasses = classnames_default()(className, {
      [`has-custom-width wp-block-button__width-${width}`]: width,
      [`has-custom-font-size`]: fontSize || (style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontSize)
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: wrapperClasses
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    }));
  },

  migrate: migrate_font_family,

  isEligible(_ref2) {
    var _style$typography2;

    let {
      style
    } = _ref2;
    return style === null || style === void 0 ? void 0 : (_style$typography2 = style.typography) === null || _style$typography2 === void 0 ? void 0 : _style$typography2.fontFamily;
  }

};
const deprecated_deprecated = [v10, {
  supports: {
    anchor: true,
    align: true,
    alignWide: false,
    color: {
      __experimentalSkipSerialization: true,
      gradients: true
    },
    typography: {
      fontSize: true,
      __experimentalFontFamily: true
    },
    reusable: false,
    __experimentalSelector: '.wp-block-button__link'
  },
  attributes: { ...blockAttributes,
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    width: {
      type: 'number'
    }
  },

  isEligible(_ref3) {
    var _style$border2;

    let {
      style
    } = _ref3;
    return typeof (style === null || style === void 0 ? void 0 : (_style$border2 = style.border) === null || _style$border2 === void 0 ? void 0 : _style$border2.radius) === 'number';
  },

  save(_ref4) {
    var _style$border3, _style$border4, _style$typography3;

    let {
      attributes,
      className
    } = _ref4;
    const {
      fontSize,
      linkTarget,
      rel,
      style,
      text,
      title,
      url,
      width
    } = attributes;

    if (!text) {
      return null;
    }

    const borderRadius = style === null || style === void 0 ? void 0 : (_style$border3 = style.border) === null || _style$border3 === void 0 ? void 0 : _style$border3.radius;
    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
    const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {
      'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border4 = style.border) === null || _style$border4 === void 0 ? void 0 : _style$border4.radius) === 0
    });
    const buttonStyle = {
      borderRadius: borderRadius ? borderRadius : undefined,
      ...colorProps.style
    }; // The use of a `title` attribute here is soft-deprecated, but still applied
    // if it had already been assigned, for the sake of backward-compatibility.
    // A title will no longer be assigned for new or updated button block links.

    const wrapperClasses = classnames_default()(className, {
      [`has-custom-width wp-block-button__width-${width}`]: width,
      [`has-custom-font-size`]: fontSize || (style === null || style === void 0 ? void 0 : (_style$typography3 = style.typography) === null || _style$typography3 === void 0 ? void 0 : _style$typography3.fontSize)
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: wrapperClasses
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    }));
  },

  migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
}, {
  supports: {
    anchor: true,
    align: true,
    alignWide: false,
    color: {
      __experimentalSkipSerialization: true
    },
    reusable: false,
    __experimentalSelector: '.wp-block-button__link'
  },
  attributes: { ...blockAttributes,
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    },
    borderRadius: {
      type: 'number'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    style: {
      type: 'object'
    },
    width: {
      type: 'number'
    }
  },

  save(_ref5) {
    let {
      attributes,
      className
    } = _ref5;
    const {
      borderRadius,
      linkTarget,
      rel,
      text,
      title,
      url,
      width
    } = attributes;
    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
    const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {
      'no-border-radius': borderRadius === 0
    });
    const buttonStyle = {
      borderRadius: borderRadius ? borderRadius + 'px' : undefined,
      ...colorProps.style
    }; // The use of a `title` attribute here is soft-deprecated, but still applied
    // if it had already been assigned, for the sake of backward-compatibility.
    // A title will no longer be assigned for new or updated button block links.

    const wrapperClasses = classnames_default()(className, {
      [`has-custom-width wp-block-button__width-${width}`]: width
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: wrapperClasses
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    }));
  },

  migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
}, {
  supports: {
    anchor: true,
    align: true,
    alignWide: false,
    color: {
      __experimentalSkipSerialization: true
    },
    reusable: false,
    __experimentalSelector: '.wp-block-button__link'
  },
  attributes: { ...blockAttributes,
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    },
    borderRadius: {
      type: 'number'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    style: {
      type: 'object'
    },
    width: {
      type: 'number'
    }
  },

  save(_ref6) {
    let {
      attributes,
      className
    } = _ref6;
    const {
      borderRadius,
      linkTarget,
      rel,
      text,
      title,
      url,
      width
    } = attributes;
    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
    const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {
      'no-border-radius': borderRadius === 0
    });
    const buttonStyle = {
      borderRadius: borderRadius ? borderRadius + 'px' : undefined,
      ...colorProps.style
    }; // The use of a `title` attribute here is soft-deprecated, but still applied
    // if it had already been assigned, for the sake of backward-compatibility.
    // A title will no longer be assigned for new or updated button block links.

    const wrapperClasses = classnames_default()(className, {
      [`has-custom-width wp-block-button__width-${width}`]: width
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: wrapperClasses
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    }));
  },

  migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
}, {
  supports: {
    align: true,
    alignWide: false,
    color: {
      gradients: true
    }
  },
  attributes: { ...blockAttributes,
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    },
    borderRadius: {
      type: 'number'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    style: {
      type: 'object'
    }
  },

  save(_ref7) {
    let {
      attributes
    } = _ref7;
    const {
      borderRadius,
      linkTarget,
      rel,
      text,
      title,
      url
    } = attributes;
    const buttonClasses = classnames_default()('wp-block-button__link', {
      'no-border-radius': borderRadius === 0
    });
    const buttonStyle = {
      borderRadius: borderRadius ? borderRadius + 'px' : undefined
    };
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    });
  },

  migrate: migrateBorderRadius
}, {
  supports: {
    align: true,
    alignWide: false
  },
  attributes: { ...blockAttributes,
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    },
    borderRadius: {
      type: 'number'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    }
  },
  isEligible: attributes => !!attributes.customTextColor || !!attributes.customBackgroundColor || !!attributes.customGradient,
  migrate: (0,external_wp_compose_namespaceObject.compose)(migrateBorderRadius, migrateCustomColorsAndGradients),

  save(_ref8) {
    let {
      attributes
    } = _ref8;
    const {
      backgroundColor,
      borderRadius,
      customBackgroundColor,
      customTextColor,
      customGradient,
      linkTarget,
      gradient,
      rel,
      text,
      textColor,
      title,
      url
    } = attributes;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const backgroundClass = !customGradient && (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const buttonClasses = classnames_default()('wp-block-button__link', {
      'has-text-color': textColor || customTextColor,
      [textClass]: textClass,
      'has-background': backgroundColor || customBackgroundColor || customGradient || gradient,
      [backgroundClass]: backgroundClass,
      'no-border-radius': borderRadius === 0,
      [gradientClass]: gradientClass
    });
    const buttonStyle = {
      background: customGradient ? customGradient : undefined,
      backgroundColor: backgroundClass || customGradient || gradient ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor,
      borderRadius: borderRadius ? borderRadius + 'px' : undefined
    }; // The use of a `title` attribute here is soft-deprecated, but still applied
    // if it had already been assigned, for the sake of backward-compatibility.
    // A title will no longer be assigned for new or updated button block links.

    return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    }));
  }

}, {
  attributes: { ...blockAttributes,
    align: {
      type: 'string',
      default: 'none'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'target'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'a',
      attribute: 'rel'
    },
    placeholder: {
      type: 'string'
    }
  },

  isEligible(attribute) {
    return attribute.className && attribute.className.includes('is-style-squared');
  },

  migrate(attributes) {
    let newClassName = attributes.className;

    if (newClassName) {
      newClassName = newClassName.replace(/is-style-squared[\s]?/, '').trim();
    }

    return migrateBorderRadius(migrateCustomColorsAndGradients({ ...attributes,
      className: newClassName ? newClassName : undefined,
      borderRadius: 0
    }));
  },

  save(_ref9) {
    let {
      attributes
    } = _ref9;
    const {
      backgroundColor,
      customBackgroundColor,
      customTextColor,
      linkTarget,
      rel,
      text,
      textColor,
      title,
      url
    } = attributes;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const buttonClasses = classnames_default()('wp-block-button__link', {
      'has-text-color': textColor || customTextColor,
      [textClass]: textClass,
      'has-background': backgroundColor || customBackgroundColor,
      [backgroundClass]: backgroundClass
    });
    const buttonStyle = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text,
      target: linkTarget,
      rel: rel
    }));
  }

}, {
  attributes: { ...blockAttributes,
    align: {
      type: 'string',
      default: 'none'
    },
    backgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    }
  },
  migrate: oldColorsMigration,

  save(_ref10) {
    let {
      attributes
    } = _ref10;
    const {
      url,
      text,
      title,
      backgroundColor,
      textColor,
      customBackgroundColor,
      customTextColor
    } = attributes;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const buttonClasses = classnames_default()('wp-block-button__link', {
      'has-text-color': textColor || customTextColor,
      [textClass]: textClass,
      'has-background': backgroundColor || customBackgroundColor,
      [backgroundClass]: backgroundClass
    });
    const buttonStyle = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: buttonClasses,
      href: url,
      title: title,
      style: buttonStyle,
      value: text
    }));
  }

}, {
  attributes: { ...blockAttributes,
    color: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    align: {
      type: 'string',
      default: 'none'
    }
  },

  save(_ref11) {
    let {
      attributes
    } = _ref11;
    const {
      url,
      text,
      title,
      align,
      color,
      textColor
    } = attributes;
    const buttonStyle = {
      backgroundColor: color,
      color: textColor
    };
    const linkClass = 'wp-block-button__link';
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: `align${align}`
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      className: linkClass,
      href: url,
      title: title,
      style: buttonStyle,
      value: text
    }));
  },

  migrate: oldColorsMigration
}, {
  attributes: { ...blockAttributes,
    color: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    align: {
      type: 'string',
      default: 'none'
    }
  },

  save(_ref12) {
    let {
      attributes
    } = _ref12;
    const {
      url,
      text,
      title,
      align,
      color,
      textColor
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: `align${align}`,
      style: {
        backgroundColor: color
      }
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "a",
      href: url,
      title: title,
      style: {
        color: textColor
      },
      value: text
    }));
  },

  migrate: oldColorsMigration
}];
/* harmony default export */ var button_deprecated = (deprecated_deprecated);

;// CONCATENATED MODULE: external ["wp","keycodes"]
var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js


/**
 * WordPress dependencies
 */

const link_link = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"
}));
/* harmony default export */ var library_link = (link_link);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js


/**
 * WordPress dependencies
 */

const linkOff = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z"
}));
/* harmony default export */ var link_off = (linkOff);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */








const NEW_TAB_REL = 'noreferrer noopener';

function WidthPanel(_ref) {
  let {
    selectedWidth,
    setAttributes
  } = _ref;

  function handleChange(newWidth) {
    // Check if we are toggling the width off
    const width = selectedWidth === newWidth ? undefined : newWidth; // Update attributes.

    setAttributes({
      width
    });
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Width settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button width')
  }, [25, 50, 75, 100].map(widthValue => {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
      key: widthValue,
      isSmall: true,
      variant: widthValue === selectedWidth ? 'primary' : undefined,
      onClick: () => handleChange(widthValue)
    }, widthValue, "%");
  })));
}

function ButtonEdit(props) {
  var _style$border;

  const {
    attributes,
    setAttributes,
    className,
    isSelected,
    onReplace,
    mergeBlocks
  } = props;
  const {
    linkTarget,
    placeholder,
    rel,
    style,
    text,
    url,
    width
  } = attributes;
  const onSetLinkRel = (0,external_wp_element_namespaceObject.useCallback)(value => {
    setAttributes({
      rel: value
    });
  }, [setAttributes]);

  function onToggleOpenInNewTab(value) {
    const newLinkTarget = value ? '_blank' : undefined;
    let updatedRel = rel;

    if (newLinkTarget && !rel) {
      updatedRel = NEW_TAB_REL;
    } else if (!newLinkTarget && rel === NEW_TAB_REL) {
      updatedRel = undefined;
    }

    setAttributes({
      linkTarget: newLinkTarget,
      rel: updatedRel
    });
  }

  function setButtonText(newText) {
    // Remove anchor tags from button text content.
    setAttributes({
      text: newText.replace(/<\/?a[^>]*>/g, '')
    });
  }

  function onKeyDown(event) {
    if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
      startEditing(event);
    } else if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'k')) {
      var _richTextRef$current;

      unlink();
      (_richTextRef$current = richTextRef.current) === null || _richTextRef$current === void 0 ? void 0 : _richTextRef$current.focus();
    }
  }

  const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
  const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const richTextRef = (0,external_wp_element_namespaceObject.useRef)();
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref,
    onKeyDown
  });
  const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
  const isURLSet = !!url;
  const opensInNewTab = linkTarget === '_blank';

  function startEditing(event) {
    event.preventDefault();
    setIsEditingURL(true);
  }

  function unlink() {
    setAttributes({
      url: undefined,
      linkTarget: undefined,
      rel: undefined
    });
    setIsEditingURL(false);
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setIsEditingURL(false);
    }
  }, [isSelected]);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
    className: classnames_default()(blockProps.className, {
      [`has-custom-width wp-block-button__width-${width}`]: width,
      [`has-custom-font-size`]: blockProps.style.fontSize
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    ref: richTextRef,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
    placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Add text…'),
    value: text,
    onChange: value => setButtonText(value),
    withoutInteractiveFormatting: true,
    className: classnames_default()(className, 'wp-block-button__link', colorProps.className, borderProps.className, {
      // For backwards compatibility add style that isn't
      // provided via block support.
      'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius) === 0
    }),
    style: { ...borderProps.style,
      ...colorProps.style,
      ...spacingProps.style
    },
    onSplit: value => (0,external_wp_blocks_namespaceObject.createBlock)('core/button', { ...attributes,
      text: value
    }),
    onReplace: onReplace,
    onMerge: mergeBlocks,
    identifier: "text"
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, !isURLSet && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    name: "link",
    icon: library_link,
    title: (0,external_wp_i18n_namespaceObject.__)('Link'),
    shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
    onClick: startEditing
  }), isURLSet && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    name: "link",
    icon: link_off,
    title: (0,external_wp_i18n_namespaceObject.__)('Unlink'),
    shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('k'),
    onClick: unlink,
    isActive: true
  })), isSelected && (isEditingURL || isURLSet) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
    position: "bottom center",
    onClose: () => {
      var _richTextRef$current2;

      setIsEditingURL(false);
      (_richTextRef$current2 = richTextRef.current) === null || _richTextRef$current2 === void 0 ? void 0 : _richTextRef$current2.focus();
    },
    anchorRef: ref === null || ref === void 0 ? void 0 : ref.current,
    focusOnMount: isEditingURL ? 'firstElement' : false,
    __unstableSlotName: '__unstable-block-tools-after'
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
    className: "wp-block-navigation-link__inline-link-input",
    value: {
      url,
      opensInNewTab
    },
    onChange: _ref2 => {
      let {
        url: newURL = '',
        opensInNewTab: newOpensInNewTab
      } = _ref2;
      setAttributes({
        url: newURL
      });

      if (opensInNewTab !== newOpensInNewTab) {
        onToggleOpenInNewTab(newOpensInNewTab);
      }
    },
    onRemove: () => {
      var _richTextRef$current3;

      unlink();
      (_richTextRef$current3 = richTextRef.current) === null || _richTextRef$current3 === void 0 ? void 0 : _richTextRef$current3.focus();
    },
    forceIsEditingLink: isEditingURL
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(WidthPanel, {
    selectedWidth: width,
    setAttributes: setAttributes
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
    value: rel || '',
    onChange: onSetLinkRel
  })));
}

/* harmony default export */ var button_edit = (ButtonEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function save_save(_ref) {
  var _style$border, _style$typography;

  let {
    attributes,
    className
  } = _ref;
  const {
    fontSize,
    linkTarget,
    rel,
    style,
    text,
    title,
    url,
    width
  } = attributes;

  if (!text) {
    return null;
  }

  const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
  const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
  const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, borderProps.className, {
    // For backwards compatibility add style that isn't provided via
    // block support.
    'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius) === 0
  });
  const buttonStyle = { ...borderProps.style,
    ...colorProps.style,
    ...spacingProps.style
  }; // The use of a `title` attribute here is soft-deprecated, but still applied
  // if it had already been assigned, for the sake of backward-compatibility.
  // A title will no longer be assigned for new or updated button block links.

  const wrapperClasses = classnames_default()(className, {
    [`has-custom-width wp-block-button__width-${width}`]: width,
    [`has-custom-font-size`]: fontSize || (style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontSize)
  });
  return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className: wrapperClasses
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "a",
    className: buttonClasses,
    href: url,
    title: title,
    style: buttonStyle,
    value: text,
    target: linkTarget,
    rel: rel
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const button_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/button",
  title: "Button",
  category: "design",
  parent: ["core/buttons"],
  description: "Prompt visitors to take action with a button-style link.",
  keywords: ["link"],
  textdomain: "default",
  attributes: {
    url: {
      type: "string",
      source: "attribute",
      selector: "a",
      attribute: "href"
    },
    title: {
      type: "string",
      source: "attribute",
      selector: "a",
      attribute: "title"
    },
    text: {
      type: "string",
      source: "html",
      selector: "a"
    },
    linkTarget: {
      type: "string",
      source: "attribute",
      selector: "a",
      attribute: "target"
    },
    rel: {
      type: "string",
      source: "attribute",
      selector: "a",
      attribute: "rel"
    },
    placeholder: {
      type: "string"
    },
    backgroundColor: {
      type: "string"
    },
    textColor: {
      type: "string"
    },
    gradient: {
      type: "string"
    },
    width: {
      type: "number"
    }
  },
  supports: {
    anchor: true,
    align: true,
    alignWide: false,
    color: {
      __experimentalSkipSerialization: true,
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      __experimentalFontFamily: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    reusable: false,
    spacing: {
      __experimentalSkipSerialization: true,
      padding: ["horizontal", "vertical"],
      __experimentalDefaultControls: {
        padding: true
      }
    },
    __experimentalBorder: {
      radius: true,
      __experimentalSkipSerialization: true,
      __experimentalDefaultControls: {
        radius: true
      }
    },
    __experimentalSelector: ".wp-block-button__link"
  },
  styles: [{
    name: "fill",
    label: "Fill",
    isDefault: true
  }, {
    name: "outline",
    label: "Outline"
  }],
  editorStyle: "wp-block-button-editor",
  style: "wp-block-button"
};

const {
  name: button_name
} = button_metadata;

const button_settings = {
  icon: library_button,
  example: {
    attributes: {
      className: 'is-style-fill',
      text: (0,external_wp_i18n_namespaceObject.__)('Call to Action')
    }
  },
  edit: button_edit,
  save: save_save,
  deprecated: button_deprecated,
  merge: (a, _ref) => {
    let {
      text = ''
    } = _ref;
    return { ...a,
      text: (a.text || '') + text
    };
  }
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/buttons.js


/**
 * WordPress dependencies
 */

const buttons = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17 3H7c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H7c-.3 0-.5-.2-.5-.5V5c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v4zm-8-1.2h5V6.2h-5v1.6zM17 13H7c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H7c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v4zm-8-1.2h5v-1.5h-5v1.5z"
}));
/* harmony default export */ var library_buttons = (buttons);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * @param {Object} attributes Block's attributes.
 */

const migrateWithLayout = attributes => {
  if (!!attributes.layout) {
    return attributes;
  }

  const {
    contentJustification,
    orientation,
    ...updatedAttributes
  } = attributes;

  if (contentJustification || orientation) {
    Object.assign(updatedAttributes, {
      layout: {
        type: 'flex',
        ...(contentJustification && {
          justifyContent: contentJustification
        }),
        ...(orientation && {
          orientation
        })
      }
    });
  }

  return updatedAttributes;
};

const buttons_deprecated_deprecated = [{
  attributes: {
    contentJustification: {
      type: 'string'
    },
    orientation: {
      type: 'string',
      default: 'horizontal'
    }
  },
  supports: {
    anchor: true,
    align: ['wide', 'full'],
    __experimentalExposeControlsToChildren: true,
    spacing: {
      blockGap: true,
      margin: ['top', 'bottom'],
      __experimentalDefaultControls: {
        blockGap: true
      }
    }
  },
  isEligible: _ref => {
    let {
      contentJustification,
      orientation
    } = _ref;
    return !!contentJustification || !!orientation;
  },
  migrate: migrateWithLayout,

  save(_ref2) {
    let {
      attributes: {
        contentJustification,
        orientation
      }
    } = _ref2;
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: classnames_default()({
        [`is-content-justification-${contentJustification}`]: contentJustification,
        'is-vertical': orientation === 'vertical'
      })
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}, {
  supports: {
    align: ['center', 'left', 'right'],
    anchor: true
  },

  save() {
    return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  },

  isEligible(_ref3) {
    let {
      align
    } = _ref3;
    return align && ['center', 'left', 'right'].includes(align);
  },

  migrate(attributes) {
    return migrateWithLayout({ ...attributes,
      align: undefined,
      // Floating Buttons blocks shouldn't have been supported in the
      // first place. Most users using them probably expected them to
      // act like content justification controls, so these blocks are
      // migrated to use content justification.
      // As for center-aligned Buttons blocks, the content justification
      // equivalent will create an identical end result in most cases.
      contentJustification: attributes.align
    });
  }

}];
/* harmony default export */ var buttons_deprecated = (buttons_deprecated_deprecated);

;// CONCATENATED MODULE: external ["wp","richText"]
var external_wp_richText_namespaceObject = window["wp"]["richText"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/transforms.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const {
  name: transforms_name
} = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/buttons",
  title: "Buttons",
  category: "design",
  description: "Prompt visitors to take action with a group of button-style links.",
  keywords: ["link"],
  textdomain: "default",
  supports: {
    anchor: true,
    align: ["wide", "full"],
    __experimentalExposeControlsToChildren: true,
    spacing: {
      blockGap: true,
      margin: ["top", "bottom"],
      __experimentalDefaultControls: {
        blockGap: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      "default": {
        type: "flex"
      }
    }
  },
  editorStyle: "wp-block-buttons-editor",
  style: "wp-block-buttons"
};
const transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/button'],
    transform: buttons => // Creates the buttons block.
    (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, {}, // Loop the selected buttons.
    buttons.map(attributes => // Create singular button in the buttons block.
    (0,external_wp_blocks_namespaceObject.createBlock)('core/button', attributes)))
  }, {
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/paragraph'],
    transform: buttons => // Creates the buttons block.
    (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, {}, // Loop the selected buttons.
    buttons.map(attributes => {
      const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content); // Remove any HTML tags.

      const text = element.innerText || ''; // Get first url.

      const link = element.querySelector('a');
      const url = link === null || link === void 0 ? void 0 : link.getAttribute('href'); // Create singular button in the buttons block.

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
        text,
        url
      });
    })),
    isMatch: paragraphs => {
      return paragraphs.every(attributes => {
        const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content);
        const text = element.innerText || '';
        const links = element.querySelectorAll('a');
        return text.length <= 30 && links.length <= 1;
      });
    }
  }]
};
/* harmony default export */ var buttons_transforms = (transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/edit.js


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const ALLOWED_BLOCKS = [button_name];
const DEFAULT_BLOCK = {
  name: button_name,
  attributesToCopy: ['backgroundColor', 'border', 'className', 'fontFamily', 'fontSize', 'gradient', 'style', 'textColor', 'width']
};

function ButtonsEdit(_ref) {
  let {
    attributes: {
      layout = {}
    }
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const preferredStyle = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _preferredStyleVariat;

    const preferredStyleVariations = select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalPreferredStyleVariations;

    return preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat[button_name];
  }, []);
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    allowedBlocks: ALLOWED_BLOCKS,
    __experimentalDefaultBlock: DEFAULT_BLOCK,
    __experimentalDirectInsert: true,
    template: [[button_name, {
      className: preferredStyle && `is-style-${preferredStyle}`
    }]],
    __experimentalLayout: layout,
    templateInsertUpdatesSelection: true
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
}

/* harmony default export */ var buttons_edit = (ButtonsEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/save.js


/**
 * WordPress dependencies
 */

function buttons_save_save() {
  const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save());
  return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




const buttons_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/buttons",
  title: "Buttons",
  category: "design",
  description: "Prompt visitors to take action with a group of button-style links.",
  keywords: ["link"],
  textdomain: "default",
  supports: {
    anchor: true,
    align: ["wide", "full"],
    __experimentalExposeControlsToChildren: true,
    spacing: {
      blockGap: true,
      margin: ["top", "bottom"],
      __experimentalDefaultControls: {
        blockGap: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      "default": {
        type: "flex"
      }
    }
  },
  editorStyle: "wp-block-buttons-editor",
  style: "wp-block-buttons"
};

const {
  name: buttons_name
} = buttons_metadata;

const buttons_settings = {
  icon: library_buttons,
  example: {
    innerBlocks: [{
      name: 'core/button',
      attributes: {
        text: (0,external_wp_i18n_namespaceObject.__)('Find out more')
      }
    }, {
      name: 'core/button',
      attributes: {
        text: (0,external_wp_i18n_namespaceObject.__)('Contact us')
      }
    }]
  },
  deprecated: buttons_deprecated,
  transforms: buttons_transforms,
  edit: buttons_edit,
  save: buttons_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/calendar.js


/**
 * WordPress dependencies
 */

const calendar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z"
}));
/* harmony default export */ var library_calendar = (calendar);

;// CONCATENATED MODULE: external "moment"
var external_moment_namespaceObject = window["moment"];
var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_namespaceObject);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








const getYearMonth = memize_default()(date => {
  if (!date) {
    return {};
  }

  const momentDate = external_moment_default()(date);
  return {
    year: momentDate.year(),
    month: momentDate.month() + 1
  };
});
function CalendarEdit(_ref) {
  let {
    attributes
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const {
    date,
    hasPosts,
    hasPostsResolved
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords,
      hasFinishedResolution
    } = select(external_wp_coreData_namespaceObject.store);
    const singlePublishedPostQuery = {
      status: 'publish',
      per_page: 1
    };
    const posts = getEntityRecords('postType', 'post', singlePublishedPostQuery);
    const postsResolved = hasFinishedResolution('getEntityRecords', ['postType', 'post', singlePublishedPostQuery]);

    let _date; // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
    // Blocks can be loaded into a *non-post* block editor.
    // eslint-disable-next-line @wordpress/data-no-store-string-literals


    const editorSelectors = select('core/editor');

    if (editorSelectors) {
      const postType = editorSelectors.getEditedPostAttribute('type'); // Dates are used to overwrite year and month used on the calendar.
      // This overwrite should only happen for 'post' post types.
      // For other post types the calendar always displays the current month.

      if (postType === 'post') {
        _date = editorSelectors.getEditedPostAttribute('date');
      }
    }

    return {
      date: _date,
      hasPostsResolved: postsResolved,
      hasPosts: postsResolved && (posts === null || posts === void 0 ? void 0 : posts.length) === 1
    };
  }, []);

  if (!hasPosts) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
      icon: library_calendar,
      label: (0,external_wp_i18n_namespaceObject.__)('Calendar')
    }, !hasPostsResolved ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null) : (0,external_wp_i18n_namespaceObject.__)('No published posts found.')));
  }

  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), {
    block: "core/calendar",
    attributes: { ...attributes,
      ...getYearMonth(date)
    }
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/transforms.js
/**
 * WordPress dependencies
 */

const calendar_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/archives'],
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/calendar')
  }],
  to: [{
    type: 'block',
    blocks: ['core/archives'],
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/archives')
  }]
};
/* harmony default export */ var calendar_transforms = (calendar_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const calendar_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/calendar",
  title: "Calendar",
  category: "widgets",
  description: "A calendar of your site\u2019s posts.",
  keywords: ["posts", "archive"],
  textdomain: "default",
  attributes: {
    month: {
      type: "integer"
    },
    year: {
      type: "integer"
    }
  },
  supports: {
    align: true
  },
  style: "wp-block-calendar"
};


const {
  name: calendar_name
} = calendar_metadata;

const calendar_settings = {
  icon: library_calendar,
  example: {},
  edit: CalendarEdit,
  transforms: calendar_transforms
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js


/**
 * WordPress dependencies
 */

const category = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z",
  fillRule: "evenodd",
  clipRule: "evenodd"
}));
/* harmony default export */ var library_category = (category);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin.js


/**
 * WordPress dependencies
 */

const pin = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "m21.5 9.1-6.6-6.6-4.2 5.6c-1.2-.1-2.4.1-3.6.7-.1 0-.1.1-.2.1-.5.3-.9.6-1.2.9l3.7 3.7-5.7 5.7v1.1h1.1l5.7-5.7 3.7 3.7c.4-.4.7-.8.9-1.2.1-.1.1-.2.2-.3.6-1.1.8-2.4.6-3.6l5.6-4.1zm-7.3 3.5.1.9c.1.9 0 1.8-.4 2.6l-6-6c.8-.4 1.7-.5 2.6-.4l.9.1L15 4.9 19.1 9l-4.9 3.6z"
}));
/* harmony default export */ var library_pin = (pin);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







function CategoriesEdit(_ref) {
  let {
    attributes: {
      displayAsDropdown,
      showHierarchy,
      showPostCounts,
      showOnlyTopLevel
    },
    setAttributes
  } = _ref;
  const selectId = (0,external_wp_compose_namespaceObject.useInstanceId)(CategoriesEdit, 'blocks-category-select');
  const query = {
    per_page: -1,
    hide_empty: true,
    context: 'view'
  };

  if (showOnlyTopLevel) {
    query.parent = 0;
  }

  const {
    records: categories,
    isResolving
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('taxonomy', 'category', query);

  const getCategoriesList = parentId => {
    if (!(categories !== null && categories !== void 0 && categories.length)) {
      return [];
    }

    if (parentId === null) {
      return categories;
    }

    return categories.filter(_ref2 => {
      let {
        parent
      } = _ref2;
      return parent === parentId;
    });
  };

  const getCategoryListClassName = level => {
    return `wp-block-categories__list wp-block-categories__list-level-${level}`;
  };

  const toggleAttribute = attributeName => newValue => setAttributes({
    [attributeName]: newValue
  });

  const renderCategoryName = name => !name ? (0,external_wp_i18n_namespaceObject.__)('(Untitled)') : (0,external_lodash_namespaceObject.unescape)(name).trim();

  const renderCategoryList = () => {
    const parentId = showHierarchy ? 0 : null;
    const categoriesList = getCategoriesList(parentId);
    return (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: getCategoryListClassName(0)
    }, categoriesList.map(category => renderCategoryListItem(category, 0)));
  };

  const renderCategoryListItem = (category, level) => {
    const childCategories = getCategoriesList(category.id);
    const {
      id,
      link,
      count,
      name
    } = category;
    return (0,external_wp_element_namespaceObject.createElement)("li", {
      key: id
    }, (0,external_wp_element_namespaceObject.createElement)("a", {
      href: link,
      target: "_blank",
      rel: "noreferrer noopener"
    }, renderCategoryName(name)), showPostCounts && (0,external_wp_element_namespaceObject.createElement)("span", {
      className: "wp-block-categories__post-count"
    }, ` (${count})`), showHierarchy && !!childCategories.length && (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: getCategoryListClassName(level + 1)
    }, childCategories.map(childCategory => renderCategoryListItem(childCategory, level + 1))));
  };

  const renderCategoryDropdown = () => {
    const parentId = showHierarchy ? 0 : null;
    const categoriesList = getCategoriesList(parentId);
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, {
      as: "label",
      htmlFor: selectId
    }, (0,external_wp_i18n_namespaceObject.__)('Categories')), (0,external_wp_element_namespaceObject.createElement)("select", {
      id: selectId,
      className: "wp-block-categories__dropdown"
    }, categoriesList.map(category => renderCategoryDropdownItem(category, 0))));
  };

  const renderCategoryDropdownItem = (category, level) => {
    const {
      id,
      count,
      name
    } = category;
    const childCategories = getCategoriesList(id);
    return [(0,external_wp_element_namespaceObject.createElement)("option", {
      key: id
    }, (0,external_lodash_namespaceObject.times)(level * 3, () => '\xa0'), renderCategoryName(name), showPostCounts && ` (${count})`), showHierarchy && !!childCategories.length && childCategories.map(childCategory => renderCategoryDropdownItem(childCategory, level + 1))];
  };

  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Categories settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
    checked: displayAsDropdown,
    onChange: toggleAttribute('displayAsDropdown')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
    checked: showPostCounts,
    onChange: toggleAttribute('showPostCounts')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show only top level categories'),
    checked: showOnlyTopLevel,
    onChange: toggleAttribute('showOnlyTopLevel')
  }), !showOnlyTopLevel && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show hierarchy'),
    checked: showHierarchy,
    onChange: toggleAttribute('showHierarchy')
  }))), isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    icon: library_pin,
    label: (0,external_wp_i18n_namespaceObject.__)('Categories')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), !isResolving && (categories === null || categories === void 0 ? void 0 : categories.length) === 0 && (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Your site does not have any posts, so there is nothing to display here at the moment.')), !isResolving && (categories === null || categories === void 0 ? void 0 : categories.length) > 0 && (displayAsDropdown ? renderCategoryDropdown() : renderCategoryList()));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const categories_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/categories",
  title: "Categories",
  category: "widgets",
  description: "Display a list of all categories.",
  textdomain: "default",
  attributes: {
    displayAsDropdown: {
      type: "boolean",
      "default": false
    },
    showHierarchy: {
      type: "boolean",
      "default": false
    },
    showPostCounts: {
      type: "boolean",
      "default": false
    },
    showOnlyTopLevel: {
      type: "boolean",
      "default": false
    }
  },
  supports: {
    align: true,
    html: false
  },
  editorStyle: "wp-block-categories-editor",
  style: "wp-block-categories"
};

const {
  name: categories_name
} = categories_metadata;

const categories_settings = {
  icon: library_category,
  example: {},
  edit: CategoriesEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/classic.js


/**
 * WordPress dependencies
 */

const classic = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20 6H4c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H4c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h16c.3 0 .5.2.5.5v9zM10 10H8v2h2v-2zm-5 2h2v-2H5v2zm8-2h-2v2h2v-2zm-5 6h8v-2H8v2zm6-4h2v-2h-2v2zm3 0h2v-2h-2v2zm0 4h2v-2h-2v2zM5 16h2v-2H5v2z"
}));
/* harmony default export */ var library_classic = (classic);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/convert-to-blocks-button.js


/**
 * WordPress dependencies
 */






const ConvertToBlocksButton = _ref => {
  let {
    clientId
  } = _ref;
  const {
    replaceBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const block = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId);
  }, [clientId]);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: () => replaceBlocks(block.clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({
      HTML: (0,external_wp_blocks_namespaceObject.serialize)(block)
    }))
  }, (0,external_wp_i18n_namespaceObject.__)('Convert to blocks'));
};

/* harmony default export */ var convert_to_blocks_button = (ConvertToBlocksButton);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


const {
  wp: edit_wp
} = window;

function isTmceEmpty(editor) {
  // When tinyMce is empty the content seems to be:
  // <p><br data-mce-bogus="1"></p>
  // avoid expensive checks for large documents
  const body = editor.getBody();

  if (body.childNodes.length > 1) {
    return false;
  } else if (body.childNodes.length === 0) {
    return true;
  }

  if (body.childNodes[0].childNodes.length > 1) {
    return false;
  }

  return /^\n?$/.test(body.innerText || body.textContent);
}

function ClassicEdit(_ref) {
  let {
    clientId,
    attributes: {
      content
    },
    setAttributes,
    onReplace
  } = _ref;
  const {
    getMultiSelectedBlockClientIds
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
  const didMount = (0,external_wp_element_namespaceObject.useRef)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!didMount.current) {
      return;
    }

    const editor = window.tinymce.get(`editor-${clientId}`);
    const currentContent = editor === null || editor === void 0 ? void 0 : editor.getContent();

    if (currentContent !== content) {
      editor.setContent(content || '');
    }
  }, [content]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      baseURL,
      suffix
    } = window.wpEditorL10n.tinymce;
    didMount.current = true;
    window.tinymce.EditorManager.overrideDefaults({
      base_url: baseURL,
      suffix
    });

    function onSetup(editor) {
      let bookmark;

      if (content) {
        editor.on('loadContent', () => editor.setContent(content));
      }

      editor.on('blur', () => {
        var _getMultiSelectedBloc;

        bookmark = editor.selection.getBookmark(2, true); // There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.
        // This causes a scroll to the top of editor content on return from some content updating dialogs so tracking
        // scroll position until this is fixed in core.

        const scrollContainer = document.querySelector('.interface-interface-skeleton__content');
        const scrollPosition = scrollContainer.scrollTop; // Only update attributes if we aren't multi-selecting blocks.
        // Updating during multi-selection can overwrite attributes of other blocks.

        if (!((_getMultiSelectedBloc = getMultiSelectedBlockClientIds()) !== null && _getMultiSelectedBloc !== void 0 && _getMultiSelectedBloc.length)) {
          setAttributes({
            content: editor.getContent()
          });
        }

        editor.once('focus', () => {
          if (bookmark) {
            editor.selection.moveToBookmark(bookmark);

            if (scrollContainer.scrollTop !== scrollPosition) {
              scrollContainer.scrollTop = scrollPosition;
            }
          }
        });
        return false;
      });
      editor.on('mousedown touchstart', () => {
        bookmark = null;
      });
      const debouncedOnChange = (0,external_lodash_namespaceObject.debounce)(() => {
        const value = editor.getContent();

        if (value !== editor._lastChange) {
          editor._lastChange = value;
          setAttributes({
            content: value
          });
        }
      }, 250);
      editor.on('Paste Change input Undo Redo', debouncedOnChange); // We need to cancel the debounce call because when we remove
      // the editor (onUnmount) this callback is executed in
      // another tick. This results in setting the content to empty.

      editor.on('remove', debouncedOnChange.cancel);
      editor.on('keydown', event => {
        if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z')) {
          // Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.
          event.stopPropagation();
        }

        if ((event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) && isTmceEmpty(editor)) {
          // Delete the block.
          onReplace([]);
          event.preventDefault();
          event.stopImmediatePropagation();
        }

        const {
          altKey
        } = event;
        /*
         * Prevent Mousetrap from kicking in: TinyMCE already uses its own
         * `alt+f10` shortcut to focus its toolbar.
         */

        if (altKey && event.keyCode === external_wp_keycodes_namespaceObject.F10) {
          event.stopPropagation();
        }
      });
      editor.on('init', () => {
        const rootNode = editor.getBody(); // Create the toolbar by refocussing the editor.

        if (rootNode.ownerDocument.activeElement === rootNode) {
          rootNode.blur();
          editor.focus();
        }
      });
    }

    function initialize() {
      const {
        settings
      } = window.wpEditorL10n.tinymce;
      edit_wp.oldEditor.initialize(`editor-${clientId}`, {
        tinymce: { ...settings,
          inline: true,
          content_css: false,
          fixed_toolbar_container: `#toolbar-${clientId}`,
          setup: onSetup
        }
      });
    }

    function onReadyStateChange() {
      if (document.readyState === 'complete') {
        initialize();
      }
    }

    if (document.readyState === 'complete') {
      initialize();
    } else {
      document.addEventListener('readystatechange', onReadyStateChange);
    }

    return () => {
      document.removeEventListener('readystatechange', onReadyStateChange);
      edit_wp.oldEditor.remove(`editor-${clientId}`);
    };
  }, []);

  function focus() {
    const editor = window.tinymce.get(`editor-${clientId}`);

    if (editor) {
      editor.focus();
    }
  }

  function onToolbarKeyDown(event) {
    // Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.
    event.stopPropagation(); // Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.

    event.nativeEvent.stopImmediatePropagation();
  } // Disable reasons:
  //
  // jsx-a11y/no-static-element-interactions
  //  - the toolbar itself is non-interactive, but must capture events
  //    from the KeyboardShortcuts component to stop their propagation.

  /* eslint-disable jsx-a11y/no-static-element-interactions */


  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(convert_to_blocks_button, {
    clientId: clientId
  }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", {
    key: "toolbar",
    id: `toolbar-${clientId}`,
    className: "block-library-classic__toolbar",
    onClick: focus,
    "data-placeholder": (0,external_wp_i18n_namespaceObject.__)('Classic'),
    onKeyDown: onToolbarKeyDown
  }), (0,external_wp_element_namespaceObject.createElement)("div", {
    key: "editor",
    id: `editor-${clientId}`,
    className: "wp-block-freeform block-library-rich-text__tinymce"
  })));
  /* eslint-enable jsx-a11y/no-static-element-interactions */
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/save.js


/**
 * WordPress dependencies
 */

function freeform_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    content
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, content);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const freeform_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/freeform",
  title: "Classic",
  category: "text",
  description: "Use the classic WordPress editor.",
  textdomain: "default",
  attributes: {
    content: {
      type: "string",
      source: "html"
    }
  },
  supports: {
    className: false,
    customClassName: false,
    reusable: false
  },
  editorStyle: "wp-block-freeform-editor"
};

const {
  name: freeform_name
} = freeform_metadata;

const freeform_settings = {
  icon: library_classic,
  edit: ClassicEdit,
  save: freeform_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js


/**
 * WordPress dependencies
 */

const code = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z"
}));
/* harmony default export */ var library_code = (code);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/edit.js


/**
 * WordPress dependencies
 */


function CodeEdit(_ref) {
  let {
    attributes,
    setAttributes,
    onRemove
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)("pre", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "code",
    value: attributes.content,
    onChange: content => setAttributes({
      content
    }),
    onRemove: onRemove,
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write code…'),
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Code'),
    preserveWhiteSpace: true,
    __unstablePastePlainText: true
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/utils.js
/**
 * External dependencies
 */

/**
 * Escapes ampersands, shortcodes, and links.
 *
 * @param {string} content The content of a code block.
 * @return {string} The given content with some characters escaped.
 */

function utils_escape(content) {
  return (0,external_lodash_namespaceObject.flow)(escapeOpeningSquareBrackets, escapeProtocolInIsolatedUrls)(content || '');
}
/**
 * Returns the given content with all opening shortcode characters converted
 * into their HTML entity counterpart (i.e. [ => &#91;). For instance, a
 * shortcode like [embed] becomes &#91;embed]
 *
 * This function replicates the escaping of HTML tags, where a tag like
 * <strong> becomes &lt;strong>.
 *
 * @param {string} content The content of a code block.
 * @return {string} The given content with its opening shortcode characters
 *                  converted into their HTML entity counterpart
 *                  (i.e. [ => &#91;)
 */

function escapeOpeningSquareBrackets(content) {
  return content.replace(/\[/g, '&#91;');
}
/**
 * Converts the first two forward slashes of any isolated URL into their HTML
 * counterparts (i.e. // => &#47;&#47;). For instance, https://youtube.com/watch?x
 * becomes https:&#47;&#47;youtube.com/watch?x.
 *
 * An isolated URL is a URL that sits in its own line, surrounded only by spacing
 * characters.
 *
 * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403
 *
 * @param {string} content The content of a code block.
 * @return {string} The given content with its ampersands converted into
 *                  their HTML entity counterpart (i.e. & => &amp;)
 */


function escapeProtocolInIsolatedUrls(content) {
  return content.replace(/^(\s*https?:)\/\/([^\s<>"]+\s*)$/m, '$1&#47;&#47;$2');
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/save.js


/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


function code_save_save(_ref) {
  let {
    attributes
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "code",
    value: utils_escape(attributes.content)
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/transforms.js
/**
 * WordPress dependencies
 */

const code_transforms_transforms = {
  from: [{
    type: 'enter',
    regExp: /^```$/,
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/code')
  }, {
    type: 'block',
    blocks: ['core/html', 'core/paragraph'],
    transform: _ref => {
      let {
        content
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/code', {
        content
      });
    }
  }, {
    type: 'raw',
    isMatch: node => node.nodeName === 'PRE' && node.children.length === 1 && node.firstChild.nodeName === 'CODE',
    schema: {
      pre: {
        children: {
          code: {
            children: {
              '#text': {}
            }
          }
        }
      }
    }
  }]
};
/* harmony default export */ var code_transforms = (code_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const code_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/code",
  title: "Code",
  category: "text",
  description: "Display code snippets that respect your spacing and tabs.",
  textdomain: "default",
  attributes: {
    content: {
      type: "string",
      source: "html",
      selector: "code"
    }
  },
  supports: {
    anchor: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    spacing: {
      margin: ["top", "bottom"],
      padding: true
    },
    __experimentalBorder: {
      radius: true,
      color: true,
      width: true,
      style: true,
      __experimentalDefaultControls: {
        width: true,
        color: true
      }
    },
    color: {
      text: true,
      background: true,
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    }
  },
  style: "wp-block-code"
};


const {
  name: code_name
} = code_metadata;

const code_settings = {
  icon: library_code,
  example: {
    attributes: {
      /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
      // translators: Preserve \n markers for line breaks
      content: (0,external_wp_i18n_namespaceObject.__)('// A "block" is the abstract term used\n// to describe units of markup that\n// when composed together, form the\n// content or layout of a page.\nregisterBlockType( name, settings );')
      /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */

    }
  },
  transforms: code_transforms,
  edit: CodeEdit,
  save: code_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/column.js


/**
 * WordPress dependencies
 */

const column = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM6 17.5c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h3v10H6zm13.5-.5c0 .3-.2.5-.5.5h-3v-10h3c.3 0 .5.2.5.5v9z"
}));
/* harmony default export */ var library_column = (column);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


const column_deprecated_deprecated = [{
  attributes: {
    verticalAlignment: {
      type: 'string'
    },
    width: {
      type: 'number',
      min: 0,
      max: 100
    }
  },

  isEligible(_ref) {
    let {
      width
    } = _ref;
    return isFinite(width);
  },

  migrate(attributes) {
    return { ...attributes,
      width: `${attributes.width}%`
    };
  },

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      verticalAlignment,
      width
    } = attributes;
    const wrapperClasses = classnames_default()({
      [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment
    });
    const style = {
      flexBasis: width + '%'
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: wrapperClasses,
      style: style
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}];
/* harmony default export */ var column_deprecated = (column_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






function ColumnEdit(_ref) {
  let {
    attributes: {
      verticalAlignment,
      width,
      templateLock = false,
      allowedBlocks
    },
    setAttributes,
    clientId
  } = _ref;
  const classes = classnames_default()('block-core-columns', {
    [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment
  });
  const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
    availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['%', 'px', 'em', 'rem', 'vw']
  });
  const {
    columnsIds,
    hasChildBlocks,
    rootClientId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockOrder,
      getBlockRootClientId
    } = select(external_wp_blockEditor_namespaceObject.store);
    const rootId = getBlockRootClientId(clientId);
    return {
      hasChildBlocks: getBlockOrder(clientId).length > 0,
      rootClientId: rootId,
      columnsIds: getBlockOrder(rootId)
    };
  }, [clientId]);
  const {
    updateBlockAttributes
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);

  const updateAlignment = value => {
    // Update own alignment.
    setAttributes({
      verticalAlignment: value
    }); // Reset parent Columns block.

    updateBlockAttributes(rootClientId, {
      verticalAlignment: null
    });
  };

  const widthWithUnit = Number.isFinite(width) ? width + '%' : width;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classes,
    style: widthWithUnit ? {
      flexBasis: widthWithUnit
    } : undefined
  });
  const columnsCount = columnsIds.length;
  const currentColumnPosition = columnsIds.indexOf(clientId) + 1;
  const label = (0,external_wp_i18n_namespaceObject.sprintf)(
  /* translators: 1: Block label (i.e. "Block: Column"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */
  (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$d of %3$d)'), blockProps['aria-label'], currentColumnPosition, columnsCount);
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ ...blockProps,
    'aria-label': label
  }, {
    templateLock,
    allowedBlocks,
    renderAppender: hasChildBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, {
    onChange: updateAlignment,
    value: verticalAlignment
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Column settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Width'),
    labelPosition: "edge",
    __unstableInputWidth: "80px",
    value: width || '',
    onChange: nextWidth => {
      nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
      setAttributes({
        width: nextWidth
      });
    },
    units: units
  }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
}

/* harmony default export */ var column_edit = (ColumnEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function column_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    verticalAlignment,
    width
  } = attributes;
  const wrapperClasses = classnames_default()({
    [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment
  });
  let style;

  if (width && /\d/.test(width)) {
    // Numbers are handled for backward compatibility as they can be still provided with templates.
    let flexBasis = Number.isFinite(width) ? width + '%' : width; // In some cases we need to round the width to a shorter float.

    if (!Number.isFinite(width) && width !== null && width !== void 0 && width.endsWith('%')) {
      const multiplier = 1000000000000; // Shrink the number back to a reasonable float.

      flexBasis = Math.round(Number.parseFloat(width) * multiplier) / multiplier + '%';
    }

    style = {
      flexBasis
    };
  }

  const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className: wrapperClasses,
    style
  });
  const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
  return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const column_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/column",
  title: "Column",
  category: "text",
  parent: ["core/columns"],
  description: "A single column within a columns block.",
  textdomain: "default",
  attributes: {
    verticalAlignment: {
      type: "string"
    },
    width: {
      type: "string"
    },
    allowedBlocks: {
      type: "array"
    },
    templateLock: {
      type: ["string", "boolean"],
      "enum": ["all", "insert", false]
    }
  },
  supports: {
    anchor: true,
    reusable: false,
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      blockGap: true,
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    __experimentalLayout: true
  }
};

const {
  name: column_name
} = column_metadata;

const column_settings = {
  icon: library_column,
  edit: column_edit,
  save: column_save_save,
  deprecated: column_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/columns.js


/**
 * WordPress dependencies
 */

const columns = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-4.1 1.5v10H10v-10h4.9zM5.5 17V8c0-.3.2-.5.5-.5h2.5v10H6c-.3 0-.5-.2-.5-.5zm14 0c0 .3-.2.5-.5.5h-2.6v-10H19c.3 0 .5.2.5.5v9z"
}));
/* harmony default export */ var library_columns = (columns);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Given an HTML string for a deprecated columns inner block, returns the
 * column index to which the migrated inner block should be assigned. Returns
 * undefined if the inner block was not assigned to a column.
 *
 * @param {string} originalContent Deprecated Columns inner block HTML.
 *
 * @return {?number} Column to which inner block is to be assigned.
 */

function getDeprecatedLayoutColumn(originalContent) {
  let {
    doc
  } = getDeprecatedLayoutColumn;

  if (!doc) {
    doc = document.implementation.createHTMLDocument('');
    getDeprecatedLayoutColumn.doc = doc;
  }

  let columnMatch;
  doc.body.innerHTML = originalContent;

  for (const classListItem of doc.body.firstChild.classList) {
    if (columnMatch = classListItem.match(/^layout-column-(\d+)$/)) {
      return Number(columnMatch[1]) - 1;
    }
  }
}

const migrateCustomColors = attributes => {
  if (!attributes.customTextColor && !attributes.customBackgroundColor) {
    return attributes;
  }

  const style = {
    color: {}
  };

  if (attributes.customTextColor) {
    style.color.text = attributes.customTextColor;
  }

  if (attributes.customBackgroundColor) {
    style.color.background = attributes.customBackgroundColor;
  }

  return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor']),
    style,
    isStackedOnMobile: true
  };
};

/* harmony default export */ var columns_deprecated = ([{
  attributes: {
    verticalAlignment: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    }
  },
  migrate: migrateCustomColors,

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      verticalAlignment,
      backgroundColor,
      customBackgroundColor,
      textColor,
      customTextColor
    } = attributes;
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const className = classnames_default()({
      'has-background': backgroundColor || customBackgroundColor,
      'has-text-color': textColor || customTextColor,
      [backgroundClass]: backgroundClass,
      [textClass]: textClass,
      [`are-vertically-aligned-${verticalAlignment}`]: verticalAlignment
    });
    const style = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className ? className : undefined,
      style: style
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}, {
  attributes: {
    columns: {
      type: 'number',
      default: 2
    }
  },

  isEligible(attributes, innerBlocks) {
    // Since isEligible is called on every valid instance of the
    // Columns block and a deprecation is the unlikely case due to
    // its subsequent migration, optimize for the `false` condition
    // by performing a naive, inaccurate pass at inner blocks.
    const isFastPassEligible = innerBlocks.some(innerBlock => /layout-column-\d+/.test(innerBlock.originalContent));

    if (!isFastPassEligible) {
      return false;
    } // Only if the fast pass is considered eligible is the more
    // accurate, durable, slower condition performed.


    return innerBlocks.some(innerBlock => getDeprecatedLayoutColumn(innerBlock.originalContent) !== undefined);
  },

  migrate(attributes, innerBlocks) {
    const columns = innerBlocks.reduce((accumulator, innerBlock) => {
      const {
        originalContent
      } = innerBlock;
      let columnIndex = getDeprecatedLayoutColumn(originalContent);

      if (columnIndex === undefined) {
        columnIndex = 0;
      }

      if (!accumulator[columnIndex]) {
        accumulator[columnIndex] = [];
      }

      accumulator[columnIndex].push(innerBlock);
      return accumulator;
    }, []);
    const migratedInnerBlocks = columns.map(columnBlocks => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, columnBlocks));
    return [{ ...(0,external_lodash_namespaceObject.omit)(attributes, ['columns']),
      isStackedOnMobile: true
    }, migratedInnerBlocks];
  },

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      columns
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: `has-${columns}-columns`
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}, {
  attributes: {
    columns: {
      type: 'number',
      default: 2
    }
  },

  migrate(attributes, innerBlocks) {
    attributes = { ...(0,external_lodash_namespaceObject.omit)(attributes, ['columns']),
      isStackedOnMobile: true
    };
    return [attributes, innerBlocks];
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      verticalAlignment,
      columns
    } = attributes;
    const wrapperClasses = classnames_default()(`has-${columns}-columns`, {
      [`are-vertically-aligned-${verticalAlignment}`]: verticalAlignment
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: wrapperClasses
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/utils.js
/**
 * External dependencies
 */

/**
 * Returns a column width attribute value rounded to standard precision.
 * Returns `undefined` if the value is not a valid finite number.
 *
 * @param {?number} value Raw value.
 *
 * @return {number} Value rounded to standard precision.
 */

const toWidthPrecision = value => {
  const unitlessValue = parseFloat(value);
  return Number.isFinite(unitlessValue) ? parseFloat(unitlessValue.toFixed(2)) : undefined;
};
/**
 * Returns an effective width for a given block. An effective width is equal to
 * its attribute value if set, or a computed value assuming equal distribution.
 *
 * @param {WPBlock} block           Block object.
 * @param {number}  totalBlockCount Total number of blocks in Columns.
 *
 * @return {number} Effective column width.
 */

function getEffectiveColumnWidth(block, totalBlockCount) {
  const {
    width = 100 / totalBlockCount
  } = block.attributes;
  return toWidthPrecision(width);
}
/**
 * Returns the total width occupied by the given set of column blocks.
 *
 * @param {WPBlock[]} blocks          Block objects.
 * @param {?number}   totalBlockCount Total number of blocks in Columns.
 *                                    Defaults to number of blocks passed.
 *
 * @return {number} Total width occupied by blocks.
 */

function getTotalColumnsWidth(blocks) {
  let totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length;
  return (0,external_lodash_namespaceObject.sumBy)(blocks, block => getEffectiveColumnWidth(block, totalBlockCount));
}
/**
 * Returns an object of `clientId` → `width` of effective column widths.
 *
 * @param {WPBlock[]} blocks          Block objects.
 * @param {?number}   totalBlockCount Total number of blocks in Columns.
 *                                    Defaults to number of blocks passed.
 *
 * @return {Object<string,number>} Column widths.
 */

function getColumnWidths(blocks) {
  let totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length;
  return blocks.reduce((accumulator, block) => {
    const width = getEffectiveColumnWidth(block, totalBlockCount);
    return Object.assign(accumulator, {
      [block.clientId]: width
    });
  }, {});
}
/**
 * Returns an object of `clientId` → `width` of column widths as redistributed
 * proportional to their current widths, constrained or expanded to fit within
 * the given available width.
 *
 * @param {WPBlock[]} blocks          Block objects.
 * @param {number}    availableWidth  Maximum width to fit within.
 * @param {?number}   totalBlockCount Total number of blocks in Columns.
 *                                    Defaults to number of blocks passed.
 *
 * @return {Object<string,number>} Redistributed column widths.
 */

function getRedistributedColumnWidths(blocks, availableWidth) {
  let totalBlockCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : blocks.length;
  const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);
  return (0,external_lodash_namespaceObject.mapValues)(getColumnWidths(blocks, totalBlockCount), width => {
    const newWidth = availableWidth * width / totalWidth;
    return toWidthPrecision(newWidth);
  });
}
/**
 * Returns true if column blocks within the provided set are assigned with
 * explicit widths, or false otherwise.
 *
 * @param {WPBlock[]} blocks Block objects.
 *
 * @return {boolean} Whether columns have explicit widths.
 */

function hasExplicitPercentColumnWidths(blocks) {
  return blocks.every(block => {
    var _blockWidth$endsWith;

    const blockWidth = block.attributes.width;
    return Number.isFinite(blockWidth !== null && blockWidth !== void 0 && (_blockWidth$endsWith = blockWidth.endsWith) !== null && _blockWidth$endsWith !== void 0 && _blockWidth$endsWith.call(blockWidth, '%') ? parseFloat(blockWidth) : blockWidth);
  });
}
/**
 * Returns a copy of the given set of blocks with new widths assigned from the
 * provided object of redistributed column widths.
 *
 * @param {WPBlock[]}             blocks Block objects.
 * @param {Object<string,number>} widths Redistributed column widths.
 *
 * @return {WPBlock[]} blocks Mapped block objects.
 */

function getMappedColumnWidths(blocks, widths) {
  return blocks.map(block => (0,external_lodash_namespaceObject.merge)({}, block, {
    attributes: {
      width: `${widths[block.clientId]}%`
    }
  }));
}
/**
 * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.
 *
 * @param {WPBlock[]} blocks      Block objects.
 * @param {?boolean}  withParsing Whether value has to be parsed.
 *
 * @return {Array<number,string>} Column widths.
 */

function getWidths(blocks) {
  let withParsing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  return blocks.map(innerColumn => {
    const innerColumnWidth = innerColumn.attributes.width || 100 / blocks.length;
    return withParsing ? parseFloat(innerColumnWidth) : innerColumnWidth;
  });
}
/**
 * Returns a column width with unit.
 *
 * @param {string} width Column width.
 * @param {string} unit  Column width unit.
 *
 * @return {string} Column width with unit.
 */

function getWidthWithUnit(width, unit) {
  width = 0 > parseFloat(width) ? '0' : width;

  if (isPercentageUnit(unit)) {
    width = Math.min(width, 100);
  }

  return `${width}${unit}`;
}
/**
 * Returns a boolean whether passed unit is percentage
 *
 * @param {string} unit Column width unit.
 *
 * @return {boolean} 	Whether unit is '%'.
 */

function isPercentageUnit(unit) {
  return unit === '%';
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


/**
 * Allowed blocks constant is passed to InnerBlocks precisely as specified here.
 * The contents of the array should never change.
 * The array should contain the name of each block that is allowed.
 * In columns block, the only block we allow is 'core/column'.
 *
 * @constant
 * @type {string[]}
 */

const edit_ALLOWED_BLOCKS = ['core/column'];

function ColumnsEditContainer(_ref) {
  let {
    attributes,
    setAttributes,
    updateAlignment,
    updateColumns,
    clientId
  } = _ref;
  const {
    isStackedOnMobile,
    verticalAlignment
  } = attributes;
  const {
    count
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      count: select(external_wp_blockEditor_namespaceObject.store).getBlockCount(clientId)
    };
  }, [clientId]);
  const classes = classnames_default()({
    [`are-vertically-aligned-${verticalAlignment}`]: verticalAlignment,
    [`is-not-stacked-on-mobile`]: !isStackedOnMobile
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classes
  });
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    allowedBlocks: edit_ALLOWED_BLOCKS,
    orientation: 'horizontal',
    renderAppender: false
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, {
    onChange: updateAlignment,
    value: verticalAlignment
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: count,
    onChange: value => updateColumns(count, value),
    min: 1,
    max: Math.max(6, count)
  }), count > 6 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, {
    status: "warning",
    isDismissible: false
  }, (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
    checked: isStackedOnMobile,
    onChange: () => setAttributes({
      isStackedOnMobile: !isStackedOnMobile
    })
  }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
}

const ColumnsEditContainerWrapper = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, registry) => ({
  /**
   * Update all child Column blocks with a new vertical alignment setting
   * based on whatever alignment is passed in. This allows change to parent
   * to overide anything set on a individual column basis.
   *
   * @param {string} verticalAlignment the vertical alignment setting
   */
  updateAlignment(verticalAlignment) {
    const {
      clientId,
      setAttributes
    } = ownProps;
    const {
      updateBlockAttributes
    } = dispatch(external_wp_blockEditor_namespaceObject.store);
    const {
      getBlockOrder
    } = registry.select(external_wp_blockEditor_namespaceObject.store); // Update own alignment.

    setAttributes({
      verticalAlignment
    }); // Update all child Column Blocks to match.

    const innerBlockClientIds = getBlockOrder(clientId);
    innerBlockClientIds.forEach(innerBlockClientId => {
      updateBlockAttributes(innerBlockClientId, {
        verticalAlignment
      });
    });
  },

  /**
   * Updates the column count, including necessary revisions to child Column
   * blocks to grant required or redistribute available space.
   *
   * @param {number} previousColumns Previous column count.
   * @param {number} newColumns      New column count.
   */
  updateColumns(previousColumns, newColumns) {
    const {
      clientId
    } = ownProps;
    const {
      replaceInnerBlocks
    } = dispatch(external_wp_blockEditor_namespaceObject.store);
    const {
      getBlocks
    } = registry.select(external_wp_blockEditor_namespaceObject.store);
    let innerBlocks = getBlocks(clientId);
    const hasExplicitWidths = hasExplicitPercentColumnWidths(innerBlocks); // Redistribute available width for existing inner blocks.

    const isAddingColumn = newColumns > previousColumns;

    if (isAddingColumn && hasExplicitWidths) {
      // If adding a new column, assign width to the new column equal to
      // as if it were `1 / columns` of the total available space.
      const newColumnWidth = toWidthPrecision(100 / newColumns); // Redistribute in consideration of pending block insertion as
      // constraining the available working width.

      const widths = getRedistributedColumnWidths(innerBlocks, 100 - newColumnWidth);
      innerBlocks = [...getMappedColumnWidths(innerBlocks, widths), ...(0,external_lodash_namespaceObject.times)(newColumns - previousColumns, () => {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {
          width: `${newColumnWidth}%`
        });
      })];
    } else if (isAddingColumn) {
      innerBlocks = [...innerBlocks, ...(0,external_lodash_namespaceObject.times)(newColumns - previousColumns, () => {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/column');
      })];
    } else {
      // The removed column will be the last of the inner blocks.
      innerBlocks = (0,external_lodash_namespaceObject.dropRight)(innerBlocks, previousColumns - newColumns);

      if (hasExplicitWidths) {
        // Redistribute as if block is already removed.
        const widths = getRedistributedColumnWidths(innerBlocks, 100);
        innerBlocks = getMappedColumnWidths(innerBlocks, widths);
      }
    }

    replaceInnerBlocks(clientId, innerBlocks);
  }

}))(ColumnsEditContainer);

function Placeholder(_ref2) {
  let {
    clientId,
    name,
    setAttributes
  } = _ref2;
  const {
    blockType,
    defaultVariation,
    variations
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockVariations,
      getBlockType,
      getDefaultBlockVariation
    } = select(external_wp_blocks_namespaceObject.store);
    return {
      blockType: getBlockType(name),
      defaultVariation: getDefaultBlockVariation(name, 'block'),
      variations: getBlockVariations(name, 'block')
    };
  }, [name]);
  const {
    replaceInnerBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
    icon: (0,external_lodash_namespaceObject.get)(blockType, ['icon', 'src']),
    label: (0,external_lodash_namespaceObject.get)(blockType, ['title']),
    variations: variations,
    onSelect: function () {
      let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;

      if (nextVariation.attributes) {
        setAttributes(nextVariation.attributes);
      }

      if (nextVariation.innerBlocks) {
        replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), true);
      }
    },
    allowSkip: true
  }));
}

const ColumnsEdit = props => {
  const {
    clientId
  } = props;
  const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length > 0, [clientId]);
  const Component = hasInnerBlocks ? ColumnsEditContainerWrapper : Placeholder;
  return (0,external_wp_element_namespaceObject.createElement)(Component, props);
};

/* harmony default export */ var columns_edit = (ColumnsEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function columns_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    isStackedOnMobile,
    verticalAlignment
  } = attributes;
  const className = classnames_default()({
    [`are-vertically-aligned-${verticalAlignment}`]: verticalAlignment,
    [`is-not-stacked-on-mobile`]: !isStackedOnMobile
  });
  const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  });
  const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
  return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/variations.js


/**
 * WordPress dependencies
 */


/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */

/**
 * Template option choices for predefined columns layouts.
 *
 * @type {WPBlockVariation[]}
 */

const variations = [{
  name: 'one-column-full',
  title: (0,external_wp_i18n_namespaceObject.__)('100'),
  description: (0,external_wp_i18n_namespaceObject.__)('One column'),
  icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "48",
    height: "48",
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/2000/svg"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "m39.0625 14h-30.0625v20.0938h30.0625zm-30.0625-2c-1.10457 0-2 .8954-2 2v20.0938c0 1.1045.89543 2 2 2h30.0625c1.1046 0 2-.8955 2-2v-20.0938c0-1.1046-.8954-2-2-2z"
  })),
  innerBlocks: [['core/column']],
  scope: ['block']
}, {
  name: 'two-columns-equal',
  title: (0,external_wp_i18n_namespaceObject.__)('50 / 50'),
  description: (0,external_wp_i18n_namespaceObject.__)('Two columns; equal split'),
  icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "48",
    height: "48",
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/2000/svg"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H25V34H39ZM23 34H9V14H23V34Z"
  })),
  isDefault: true,
  innerBlocks: [['core/column'], ['core/column']],
  scope: ['block']
}, {
  name: 'two-columns-one-third-two-thirds',
  title: (0,external_wp_i18n_namespaceObject.__)('30 / 70'),
  description: (0,external_wp_i18n_namespaceObject.__)('Two columns; one-third, two-thirds split'),
  icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "48",
    height: "48",
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/2000/svg"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H20V34H39ZM18 34H9V14H18V34Z"
  })),
  innerBlocks: [['core/column', {
    width: '33.33%'
  }], ['core/column', {
    width: '66.66%'
  }]],
  scope: ['block']
}, {
  name: 'two-columns-two-thirds-one-third',
  title: (0,external_wp_i18n_namespaceObject.__)('70 / 30'),
  description: (0,external_wp_i18n_namespaceObject.__)('Two columns; two-thirds, one-third split'),
  icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "48",
    height: "48",
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/2000/svg"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H30V34H39ZM28 34H9V14H28V34Z"
  })),
  innerBlocks: [['core/column', {
    width: '66.66%'
  }], ['core/column', {
    width: '33.33%'
  }]],
  scope: ['block']
}, {
  name: 'three-columns-equal',
  title: (0,external_wp_i18n_namespaceObject.__)('33 / 33 / 33'),
  description: (0,external_wp_i18n_namespaceObject.__)('Three columns; equal split'),
  icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "48",
    height: "48",
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/2000/svg"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    fillRule: "evenodd",
    d: "M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM28.5 34h-9V14h9v20zm2 0V14H39v20h-8.5zm-13 0H9V14h8.5v20z"
  })),
  innerBlocks: [['core/column'], ['core/column'], ['core/column']],
  scope: ['block']
}, {
  name: 'three-columns-wider-center',
  title: (0,external_wp_i18n_namespaceObject.__)('25 / 50 / 25'),
  description: (0,external_wp_i18n_namespaceObject.__)('Three columns; wide center column'),
  icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "48",
    height: "48",
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/2000/svg"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    fillRule: "evenodd",
    d: "M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM31 34H17V14h14v20zm2 0V14h6v20h-6zm-18 0H9V14h6v20z"
  })),
  innerBlocks: [['core/column', {
    width: '25%'
  }], ['core/column', {
    width: '50%'
  }], ['core/column', {
    width: '25%'
  }]],
  scope: ['block']
}];
/* harmony default export */ var columns_variations = (variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/transforms.js
/**
 * WordPress dependencies
 */

const MAXIMUM_SELECTED_BLOCKS = 6;
const columns_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['*'],
    __experimentalConvert: blocks => {
      const columnWidth = +(100 / blocks.length).toFixed(2);
      const innerBlocksTemplate = blocks.map(_ref => {
        let {
          name,
          attributes,
          innerBlocks
        } = _ref;
        return ['core/column', {
          width: `${columnWidth}%`
        }, [[name, { ...attributes
        }, innerBlocks]]];
      });
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {}, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
    },
    isMatch: _ref2 => {
      let {
        length: selectedBlocksLength
      } = _ref2;
      return selectedBlocksLength && selectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS;
    }
  }, {
    type: 'block',
    blocks: ['core/media-text'],
    priority: 1,
    transform: (attributes, innerBlocks) => {
      const {
        align,
        backgroundColor,
        textColor,
        style,
        mediaAlt: alt,
        mediaId: id,
        mediaPosition,
        mediaSizeSlug: sizeSlug,
        mediaType,
        mediaUrl: url,
        mediaWidth,
        verticalAlignment
      } = attributes;
      let media;

      if (mediaType === 'image' || !mediaType) {
        const imageAttrs = {
          id,
          alt,
          url,
          sizeSlug
        };
        const linkAttrs = {
          href: attributes.href,
          linkClass: attributes.linkClass,
          linkDestination: attributes.linkDestination,
          linkTarget: attributes.linkTarget,
          rel: attributes.rel
        };
        media = ['core/image', { ...imageAttrs,
          ...linkAttrs
        }];
      } else {
        media = ['core/video', {
          id,
          src: url
        }];
      }

      const innerBlocksTemplate = [['core/column', {
        width: `${mediaWidth}%`
      }, [media]], ['core/column', {
        width: `${100 - mediaWidth}%`
      }, innerBlocks]];

      if (mediaPosition === 'right') {
        innerBlocksTemplate.reverse();
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
        align,
        backgroundColor,
        textColor,
        style,
        verticalAlignment
      }, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
    }
  }]
};
/* harmony default export */ var columns_transforms = (columns_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const columns_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/columns",
  title: "Columns",
  category: "design",
  description: "Display content in multiple columns, with blocks added to each column.",
  textdomain: "default",
  attributes: {
    verticalAlignment: {
      type: "string"
    },
    isStackedOnMobile: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    anchor: true,
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      blockGap: {
        __experimentalDefault: "2em"
      },
      margin: ["top", "bottom"],
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      allowEditing: false,
      "default": {
        type: "flex",
        flexWrap: "nowrap"
      }
    },
    __experimentalBorder: {
      color: true,
      radius: true,
      style: true,
      width: true,
      __experimentalDefaultControls: {
        color: true,
        radius: true,
        style: true,
        width: true
      }
    }
  },
  editorStyle: "wp-block-columns-editor",
  style: "wp-block-columns"
};



const {
  name: columns_name
} = columns_metadata;

const columns_settings = {
  icon: library_columns,
  variations: columns_variations,
  example: {
    viewportWidth: 600,
    // Columns collapse "@media (max-width: 599px)".
    innerBlocks: [{
      name: 'core/column',
      innerBlocks: [{
        name: 'core/paragraph',
        attributes: {
          /* translators: example text. */
          content: (0,external_wp_i18n_namespaceObject.__)('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.')
        }
      }, {
        name: 'core/image',
        attributes: {
          url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
        }
      }, {
        name: 'core/paragraph',
        attributes: {
          /* translators: example text. */
          content: (0,external_wp_i18n_namespaceObject.__)('Suspendisse commodo neque lacus, a dictum orci interdum et.')
        }
      }]
    }, {
      name: 'core/column',
      innerBlocks: [{
        name: 'core/paragraph',
        attributes: {
          /* translators: example text. */
          content: (0,external_wp_i18n_namespaceObject.__)('Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.')
        }
      }, {
        name: 'core/paragraph',
        attributes: {
          /* translators: example text. */
          content: (0,external_wp_i18n_namespaceObject.__)('Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.')
        }
      }]
    }]
  },
  deprecated: columns_deprecated,
  edit: columns_edit,
  save: columns_save_save,
  transforms: columns_transforms
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-name.js


/**
 * WordPress dependencies
 */

const commentAuthorName = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z",
  fillRule: "evenodd",
  clipRule: "evenodd"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15",
  fillRule: "evenodd",
  clipRule: "evenodd"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, {
  cx: "12",
  cy: "9",
  r: "2",
  fillRule: "evenodd",
  clipRule: "evenodd"
}));
/* harmony default export */ var comment_author_name = (commentAuthorName);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Renders the `core/comment-author-name` block on the editor.
 *
 * @param {Object} props                       React props.
 * @param {Object} props.setAttributes         Callback for updating block attributes.
 * @param {Object} props.attributes            Block attributes.
 * @param {string} props.attributes.isLink     Whether the author name should be linked.
 * @param {string} props.attributes.linkTarget Target of the link.
 * @param {string} props.attributes.textAlign  Text alignment.
 * @param {Object} props.context               Inherited context.
 * @param {string} props.context.commentId     The comment ID.
 *
 * @return {JSX.Element} React element.
 */

function edit_Edit(_ref) {
  let {
    attributes: {
      isLink,
      linkTarget,
      textAlign
    },
    context: {
      commentId
    },
    setAttributes
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const displayName = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const comment = getEntityRecord('root', 'comment', commentId);
    const authorName = comment === null || comment === void 0 ? void 0 : comment.author_name; // eslint-disable-line camelcase

    if (comment && !authorName) {
      var _user$name;

      const user = getEntityRecord('root', 'user', comment.author);
      return (_user$name = user === null || user === void 0 ? void 0 : user.name) !== null && _user$name !== void 0 ? _user$name : (0,external_wp_i18n_namespaceObject.__)('Anonymous');
    }

    return authorName !== null && authorName !== void 0 ? authorName : '';
  }, [commentId]);
  const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    })
  }));
  const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link to authors URL'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: linkTarget === '_blank'
  })));

  if (!commentId || !displayName) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject._x)('Comment Author', 'block title'))));
  }

  const displayAuthor = isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#comment-author-pseudo-link",
    onClick: event => event.preventDefault()
  }, displayName) : (0,external_wp_element_namespaceObject.createElement)("p", null, displayName);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, displayAuthor));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/deprecated.js
/**
 * Internal dependencies
 */

const v1 = {
  attributes: {
    isLink: {
      type: 'boolean',
      default: false
    },
    linkTarget: {
      type: 'string',
      default: '_self'
    }
  },
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var comment_author_name_deprecated = ([v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comment_author_name_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comment-author-name",
  title: "Comment Author Name",
  category: "theme",
  ancestor: ["core/comment-template"],
  description: "Displays the name of the author of the comment.",
  textdomain: "default",
  attributes: {
    isLink: {
      type: "boolean",
      "default": true
    },
    linkTarget: {
      type: "string",
      "default": "_self"
    },
    textAlign: {
      type: "string"
    },
    fontSize: {
      type: "string",
      "default": "small"
    }
  },
  usesContext: ["commentId"],
  supports: {
    html: false,
    spacing: {
      margin: true,
      padding: true
    },
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    }
  }
};


const {
  name: comment_author_name_name
} = comment_author_name_metadata;

const comment_author_name_settings = {
  icon: comment_author_name,
  edit: edit_Edit,
  deprecated: comment_author_name_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-content.js


/**
 * WordPress dependencies
 */

const commentContent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  fillRule: "evenodd",
  clipRule: "evenodd",
  d: "M6.68822 16.625L5.5 17.8145L5.5 5.5L18.5 5.5L18.5 16.625L6.68822 16.625ZM7.31 18.125L19 18.125C19.5523 18.125 20 17.6773 20 17.125L20 5C20 4.44772 19.5523 4 19 4H5C4.44772 4 4 4.44772 4 5V19.5247C4 19.8173 4.16123 20.086 4.41935 20.2237C4.72711 20.3878 5.10601 20.3313 5.35252 20.0845L7.31 18.125ZM16 9.99997H8V8.49997H16V9.99997ZM8 14H13V12.5H8V14Z"
}));
/* harmony default export */ var comment_content = (commentContent);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Renders the `core/comment-content` block on the editor.
 *
 * @param {Object} props                      React props.
 * @param {Object} props.setAttributes        Callback for updating block attributes.
 * @param {Object} props.attributes           Block attributes.
 * @param {string} props.attributes.textAlign The `textAlign` attribute.
 * @param {Object} props.context              Inherited context.
 * @param {string} props.context.commentId    The comment ID.
 *
 * @return {JSX.Element} React element.
 */

function comment_content_edit_Edit(_ref) {
  let {
    setAttributes,
    attributes: {
      textAlign
    },
    context: {
      commentId
    }
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const [content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'content', commentId);
  const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    })
  }));

  if (!commentId || !content) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject._x)('Comment Content', 'block title'))));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, {
    key: "html"
  }, content.rendered))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comment_content_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comment-content",
  title: "Comment Content",
  category: "theme",
  ancestor: ["core/comment-template"],
  description: "Displays the contents of a comment.",
  textdomain: "default",
  usesContext: ["commentId"],
  attributes: {
    textAlign: {
      type: "string"
    }
  },
  supports: {
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    },
    spacing: {
      padding: ["horizontal", "vertical"],
      __experimentalDefaultControls: {
        padding: true
      }
    },
    html: false
  }
};

const {
  name: comment_content_name
} = comment_content_metadata;

const comment_content_settings = {
  icon: comment_content,
  edit: comment_content_edit_Edit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-date.js


/**
 * WordPress dependencies
 */

const postDate = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M11.696 13.972c.356-.546.599-.958.728-1.235a1.79 1.79 0 00.203-.783c0-.264-.077-.47-.23-.618-.148-.153-.354-.23-.618-.23-.295 0-.569.07-.82.212a3.413 3.413 0 00-.738.571l-.147-1.188c.289-.234.59-.41.903-.526.313-.117.66-.175 1.041-.175.375 0 .695.08.959.24.264.153.46.362.59.626.135.265.203.556.203.876 0 .362-.08.734-.24 1.115-.154.381-.427.87-.82 1.466l-.756 1.152H14v1.106h-4l1.696-2.609z"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19.5 7h-15v12a.5.5 0 00.5.5h14a.5.5 0 00.5-.5V7zM3 7V5a2 2 0 012-2h14a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"
}));
/* harmony default export */ var post_date = (postDate);

;// CONCATENATED MODULE: external ["wp","date"]
var external_wp_date_namespaceObject = window["wp"]["date"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/edit.js


/**
 * WordPress dependencies
 */





/**
 * Renders the `core/comment-date` block on the editor.
 *
 * @param {Object} props                   React props.
 * @param {Object} props.setAttributes     Callback for updating block attributes.
 * @param {Object} props.attributes        Block attributes.
 * @param {string} props.attributes.format Format of the date.
 * @param {string} props.attributes.isLink Whether the author name should be linked.
 * @param {Object} props.context           Inherited context.
 * @param {string} props.context.commentId The comment ID.
 *
 * @return {JSX.Element} React element.
 */

function comment_date_edit_Edit(_ref) {
  let {
    attributes: {
      format,
      isLink
    },
    context: {
      commentId
    },
    setAttributes
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const [date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'date', commentId);
  const [siteFormat = (0,external_wp_date_namespaceObject.__experimentalGetSettings)().formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
  const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
    format: format,
    defaultFormat: siteFormat,
    onChange: nextFormat => setAttributes({
      format: nextFormat
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link to comment'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  })));

  if (!commentId || !date) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject._x)('Comment Date', 'block title'))));
  }

  let commentDate = (0,external_wp_element_namespaceObject.createElement)("time", {
    dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date)
  }, (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date));

  if (isLink) {
    commentDate = (0,external_wp_element_namespaceObject.createElement)("a", {
      href: "#comment-date-pseudo-link",
      onClick: event => event.preventDefault()
    }, commentDate);
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, commentDate));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/deprecated.js
/**
 * Internal dependencies
 */

const deprecated_v1 = {
  attributes: {
    format: {
      type: 'string'
    },
    isLink: {
      type: 'boolean',
      default: false
    }
  },
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var comment_date_deprecated = ([deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comment_date_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comment-date",
  title: "Comment Date",
  category: "theme",
  ancestor: ["core/comment-template"],
  description: "Displays the date on which the comment was posted.",
  textdomain: "default",
  attributes: {
    format: {
      type: "string"
    },
    isLink: {
      type: "boolean",
      "default": true
    },
    fontSize: {
      type: "string",
      "default": "small"
    }
  },
  usesContext: ["commentId"],
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};


const {
  name: comment_date_name
} = comment_date_metadata;

const comment_date_settings = {
  icon: post_date,
  edit: comment_date_edit_Edit,
  deprecated: comment_date_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-edit-link.js


/**
 * WordPress dependencies
 */

const commentEditLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "m6.249 11.065.44-.44h3.186l-1.5 1.5H7.31l-1.957 1.96A.792.792 0 0 1 4 13.524V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1.5L12.5 8V5.5h-7v6.315l.749-.75ZM20 19.75H7v-1.5h13v1.5Zm0-12.653-8.967 9.064L8 17l.867-2.935L17.833 5 20 7.097Z"
}));
/* harmony default export */ var comment_edit_link = (commentEditLink);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */




function comment_edit_link_edit_Edit(_ref) {
  let {
    attributes: {
      linkTarget,
      textAlign
    },
    setAttributes
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    })
  }));
  const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: linkTarget === '_blank'
  })));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#edit-comment-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_i18n_namespaceObject.__)('Edit'))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comment_edit_link_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comment-edit-link",
  title: "Comment Edit Link",
  category: "theme",
  ancestor: ["core/comment-template"],
  description: "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.",
  textdomain: "default",
  usesContext: ["commentId"],
  attributes: {
    linkTarget: {
      type: "string",
      "default": "_self"
    },
    textAlign: {
      type: "string"
    },
    fontSize: {
      type: "string",
      "default": "small"
    }
  },
  supports: {
    html: false,
    color: {
      link: true,
      gradients: true,
      text: false,
      __experimentalDefaultControls: {
        background: true,
        link: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    }
  }
};

const {
  name: comment_edit_link_name
} = comment_edit_link_metadata;

const comment_edit_link_settings = {
  icon: comment_edit_link,
  edit: comment_edit_link_edit_Edit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-reply-link.js


/**
 * WordPress dependencies
 */

const commentReplyLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.68822 10.625L6.24878 11.0649L5.5 11.8145L5.5 5.5L12.5 5.5V8L14 6.5V5C14 4.44772 13.5523 4 13 4H5C4.44772 4 4 4.44771 4 5V13.5247C4 13.8173 4.16123 14.086 4.41935 14.2237C4.72711 14.3878 5.10601 14.3313 5.35252 14.0845L7.31 12.125H8.375L9.875 10.625H7.31H6.68822ZM14.5605 10.4983L11.6701 13.75H16.9975C17.9963 13.75 18.7796 14.1104 19.3553 14.7048C19.9095 15.2771 20.2299 16.0224 20.4224 16.7443C20.7645 18.0276 20.7543 19.4618 20.7487 20.2544C20.7481 20.345 20.7475 20.4272 20.7475 20.4999L19.2475 20.5001C19.2475 20.4191 19.248 20.3319 19.2484 20.2394V20.2394C19.2526 19.4274 19.259 18.2035 18.973 17.1307C18.8156 16.5401 18.586 16.0666 18.2778 15.7483C17.9909 15.4521 17.5991 15.25 16.9975 15.25H11.8106L14.5303 17.9697L13.4696 19.0303L8.96956 14.5303L13.4394 9.50171L14.5605 10.4983Z"
}));
/* harmony default export */ var comment_reply_link = (commentReplyLink);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Renders the `core/comment-reply-link` block on the editor.
 *
 * @param {Object} props                      React props.
 * @param {Object} props.setAttributes        Callback for updating block attributes.
 * @param {Object} props.attributes           Block attributes.
 * @param {string} props.attributes.textAlign The `textAlign` attribute.
 *
 * @return {JSX.Element} React element.
 */

function comment_reply_link_edit_Edit(_ref) {
  let {
    setAttributes,
    attributes: {
      textAlign
    }
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    })
  }));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#comment-reply-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_i18n_namespaceObject.__)('Reply'))));
}

/* harmony default export */ var comment_reply_link_edit = (comment_reply_link_edit_Edit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comment_reply_link_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comment-reply-link",
  title: "Comment Reply Link",
  category: "theme",
  ancestor: ["core/comment-template"],
  description: "Displays a link to reply to a comment.",
  textdomain: "default",
  usesContext: ["commentId"],
  attributes: {
    textAlign: {
      type: "string"
    },
    fontSize: {
      type: "string",
      "default": "small"
    }
  },
  supports: {
    color: {
      gradients: true,
      link: true,
      text: false,
      __experimentalDefaultControls: {
        background: true,
        link: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    },
    html: false
  }
};

const {
  name: comment_reply_link_name
} = comment_reply_link_metadata;

const comment_reply_link_settings = {
  edit: comment_reply_link_edit,
  icon: comment_reply_link
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js


/**
 * WordPress dependencies
 */

const layout = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
}));
/* harmony default export */ var library_layout = (layout);

;// CONCATENATED MODULE: external ["wp","apiFetch"]
var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"];
var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/hooks.js
/**
 * WordPress dependencies
 */




 // This is limited by WP REST API

const MAX_COMMENTS_PER_PAGE = 100;
/**
 * Return an object with the query args needed to fetch the default page of
 * comments.
 *
 * @param {Object} props        Hook props.
 * @param {number} props.postId ID of the post that contains the comments.
 *                              discussion settings.
 *
 * @return {Object} Query args to retrieve the comments.
 */

const useCommentQueryArgs = _ref => {
  let {
    postId
  } = _ref;
  // Initialize the query args that are not going to change.
  const queryArgs = {
    status: 'approve',
    order: 'asc',
    context: 'embed',
    parent: 0,
    _embed: 'children'
  }; // Get the Discussion settings that may be needed to query the comments.

  const {
    pageComments,
    commentsPerPage,
    defaultCommentsPage: defaultPage
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      __experimentalDiscussionSettings
    } = getSettings();
    return __experimentalDiscussionSettings;
  }); // WP REST API doesn't allow fetching more than max items limit set per single page of data.
  // As for the editor performance is more important than completeness of data and fetching only the
  // max allowed for single page should be enough for the purpose of design and laying out the page.
  // Fetching over the limit would return an error here but would work with backend query.

  const perPage = pageComments ? Math.min(commentsPerPage, MAX_COMMENTS_PER_PAGE) : MAX_COMMENTS_PER_PAGE; // Get the number of the default page.

  const page = useDefaultPageIndex({
    defaultPage,
    postId,
    perPage,
    queryArgs
  }); // Merge, memoize and return all query arguments, unless the default page's
  // number is not known yet.

  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    return page ? { ...queryArgs,
      post: postId,
      per_page: perPage,
      page
    } : null;
  }, [postId, perPage, page]);
};
/**
 * Return the index of the default page, depending on whether `defaultPage` is
 * `newest` or `oldest`. In the first case, the only way to know the page's
 * index is by using the `X-WP-TotalPages` header, which forces to make an
 * additional request.
 *
 * @param {Object} props             Hook props.
 * @param {string} props.defaultPage Page shown by default (newest/oldest).
 * @param {number} props.postId      ID of the post that contains the comments.
 * @param {number} props.perPage     The number of comments included per page.
 * @param {Object} props.queryArgs   Other query args.
 *
 * @return {number} Index of the default comments page.
 */

const useDefaultPageIndex = _ref2 => {
  let {
    defaultPage,
    postId,
    perPage,
    queryArgs
  } = _ref2;
  // Store the default page indices.
  const [defaultPages, setDefaultPages] = (0,external_wp_element_namespaceObject.useState)({});
  const key = `${postId}_${perPage}`;
  const page = defaultPages[key] || 0;
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Do nothing if the page is already known or not the newest page.
    if (page || defaultPage !== 'newest') {
      return;
    } // We need to fetch comments to know the index. Use HEAD and limit
    // fields just to ID, to make this call as light as possible.


    external_wp_apiFetch_default()({
      path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', { ...queryArgs,
        post: postId,
        per_page: perPage,
        _fields: 'id'
      }),
      method: 'HEAD',
      parse: false
    }).then(res => {
      const pages = parseInt(res.headers.get('X-WP-TotalPages'));
      setDefaultPages({ ...defaultPages,
        [key]: pages <= 1 ? 1 : pages // If there are 0 pages, it means that there are no comments, but there is no 0th page.

      });
    });
  }, [defaultPage, postId, perPage, setDefaultPages]); // The oldest one is always the first one.

  return defaultPage === 'newest' ? page : 1;
};
/**
 * Generate a tree structure of comment IDs from a list of comment entities. The
 * children of each comment are obtained from `_embedded`.
 *
 * @typedef {{ commentId: number, children: CommentNode }} CommentNode
 *
 * @param {Object[]} topLevelComments List of comment entities.
 * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.
 */


const useCommentTree = topLevelComments => {
  const commentTree = (0,external_wp_element_namespaceObject.useMemo)(() => topLevelComments === null || topLevelComments === void 0 ? void 0 : topLevelComments.map(_ref3 => {
    let {
      id,
      _embedded
    } = _ref3;
    const [children] = (_embedded === null || _embedded === void 0 ? void 0 : _embedded.children) || [[]];
    return {
      commentId: id,
      children: children.map(child => ({
        commentId: child.id
      }))
    };
  }), [topLevelComments]);
  return commentTree;
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/edit.js



/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


const TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']];
/**
 * Function that returns a comment structure that will be rendered with default placehoders.
 *
 * Each comment has a `commentId` property that is always a negative number in
 * case of the placeholders. This is to ensure that the comment does not
 * conflict with the actual (real) comments.
 *
 * @param {Object}  settings                       Discussion Settings.
 * @param {number}  [settings.perPage]             - Comments per page setting or block attribute.
 * @param {boolean} [settings.threadComments]      - Enable threaded (nested) comments setting.
 * @param {number}  [settings.threadCommentsDepth] - Level deep of threaded comments.
 *
 * @typedef {{id: null, children: EmptyComment[]}} EmptyComment
 * @return {EmptyComment[]}                 		Inner blocks of the Comment Template
 */

const getCommentsPlaceholder = _ref => {
  let {
    perPage,
    threadComments,
    threadCommentsDepth
  } = _ref;
  // In case that `threadCommentsDepth` is falsy, we default to a somewhat
  // arbitrary value of 3.
  // In case that the value is set but larger than 3 we truncate it to 3.
  const commentsDepth = Math.min(threadCommentsDepth || 3, 3); // We set a limit in order not to overload the editor of empty comments.

  const defaultCommentsToShow = perPage <= commentsDepth ? perPage : commentsDepth;

  if (!threadComments || defaultCommentsToShow === 1) {
    // If displaying threaded comments is disabled, we only show one comment
    // A commentId is negative in order to avoid conflicts with the actual comments.
    return [{
      commentId: -1,
      children: []
    }];
  } else if (defaultCommentsToShow === 2) {
    return [{
      commentId: -1,
      children: [{
        commentId: -2,
        children: []
      }]
    }];
  } // In case that the value is set but larger than 3 we truncate it to 3.


  return [{
    commentId: -1,
    children: [{
      commentId: -2,
      children: [{
        commentId: -3,
        children: []
      }]
    }]
  }];
};
/**
 * Component which renders the inner blocks of the Comment Template.
 *
 * @param {Object} props                      Component props.
 * @param {Array}  [props.comment]            - A comment object.
 * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
 * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
 * @param {Array}  [props.firstCommentId]     - ID of the first comment in the array.
 * @param {Array}  [props.blocks]             - Array of blocks returned from
 *                                            getBlocks() in parent .
 * @return {WPElement}                 		Inner blocks of the Comment Template
 */


function CommentTemplateInnerBlocks(_ref2) {
  var _comment$children;

  let {
    comment,
    activeCommentId,
    setActiveCommentId,
    firstCommentId,
    blocks
  } = _ref2;
  const {
    children,
    ...innerBlocksProps
  } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, {
    template: TEMPLATE
  });
  return (0,external_wp_element_namespaceObject.createElement)("li", innerBlocksProps, comment.commentId === (activeCommentId || firstCommentId) ? children : null, (0,external_wp_element_namespaceObject.createElement)(MemoizedCommentTemplatePreview, {
    blocks: blocks,
    commentId: comment.commentId,
    setActiveCommentId: setActiveCommentId,
    isHidden: comment.commentId === (activeCommentId || firstCommentId)
  }), (comment === null || comment === void 0 ? void 0 : (_comment$children = comment.children) === null || _comment$children === void 0 ? void 0 : _comment$children.length) > 0 ? (0,external_wp_element_namespaceObject.createElement)(CommentsList, {
    comments: comment.children,
    activeCommentId: activeCommentId,
    setActiveCommentId: setActiveCommentId,
    blocks: blocks,
    firstCommentId: firstCommentId
  }) : null);
}

const CommentTemplatePreview = _ref3 => {
  let {
    blocks,
    commentId,
    setActiveCommentId,
    isHidden
  } = _ref3;
  const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
    blocks
  });

  const handleOnClick = () => {
    setActiveCommentId(commentId);
  }; // We have to hide the preview block if the `comment` props points to
  // the curently active block!
  // Or, to put it differently, every preview block is visible unless it is the
  // currently active block - in this case we render its inner blocks.


  const style = {
    display: isHidden ? 'none' : undefined
  };
  return (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockPreviewProps, {
    tabIndex: 0,
    role: "button",
    style: style // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
    ,
    onClick: handleOnClick,
    onKeyPress: handleOnClick
  }));
};

const MemoizedCommentTemplatePreview = (0,external_wp_element_namespaceObject.memo)(CommentTemplatePreview);
/**
 * Component that renders a list of (nested) comments. It is called recursively.
 *
 * @param {Object} props                      Component props.
 * @param {Array}  [props.comments]           - Array of comment objects.
 * @param {Array}  [props.blockProps]         - Props from parent's `useBlockProps()`.
 * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
 * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
 * @param {Array}  [props.blocks]             - Array of blocks returned from getBlocks() in parent.
 * @param {Object} [props.firstCommentId]     - The ID of the first comment in the array of
 *                                            comment objects.
 * @return {WPElement}                 		List of comments.
 */

const CommentsList = _ref4 => {
  let {
    comments,
    blockProps,
    activeCommentId,
    setActiveCommentId,
    blocks,
    firstCommentId
  } = _ref4;
  return (0,external_wp_element_namespaceObject.createElement)("ol", blockProps, comments && comments.map((_ref5, index) => {
    let {
      commentId,
      ...comment
    } = _ref5;
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
      key: comment.commentId || index,
      value: {
        // If the commentId is negative it means that this comment is a
        // "placeholder" and that the block is most likely being used in the
        // site editor. In this case, we have to set the commentId to `null`
        // because otherwise the (non-existent) comment with a negative ID
        // would be reqested from the REST API.
        commentId: commentId < 0 ? null : commentId
      }
    }, (0,external_wp_element_namespaceObject.createElement)(CommentTemplateInnerBlocks, {
      comment: {
        commentId,
        ...comment
      },
      activeCommentId: activeCommentId,
      setActiveCommentId: setActiveCommentId,
      blocks: blocks,
      firstCommentId: firstCommentId
    }));
  }));
};

function CommentTemplateEdit(_ref6) {
  var _commentTree$;

  let {
    clientId,
    context: {
      postId
    }
  } = _ref6;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const [activeCommentId, setActiveCommentId] = (0,external_wp_element_namespaceObject.useState)();
  const {
    commentOrder,
    threadCommentsDepth,
    threadComments,
    commentsPerPage
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return getSettings().__experimentalDiscussionSettings;
  });
  const commentQuery = useCommentQueryArgs({
    postId
  });
  const {
    topLevelComments,
    blocks
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getBlocks
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      // Request only top-level comments. Replies are embedded.
      topLevelComments: commentQuery ? getEntityRecords('root', 'comment', commentQuery) : null,
      blocks: getBlocks(clientId)
    };
  }, [clientId, commentQuery]); // Generate a tree structure of comment IDs.

  let commentTree = useCommentTree( // Reverse the order of top comments if needed.
  commentOrder === 'desc' && topLevelComments ? [...topLevelComments].reverse() : topLevelComments);

  if (!topLevelComments) {
    return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
  }

  if (!postId) {
    commentTree = getCommentsPlaceholder({
      perPage: commentsPerPage,
      threadComments,
      threadCommentsDepth
    });
  }

  if (!commentTree.length) {
    return (0,external_wp_element_namespaceObject.createElement)("p", _extends({}, blockProps, {
      "data-testid": "noresults"
    }), (0,external_wp_i18n_namespaceObject.__)('No results found.'));
  }

  return (0,external_wp_element_namespaceObject.createElement)(CommentsList, {
    comments: commentTree,
    blockProps: blockProps,
    blocks: blocks,
    activeCommentId: activeCommentId,
    setActiveCommentId: setActiveCommentId,
    firstCommentId: (_commentTree$ = commentTree[0]) === null || _commentTree$ === void 0 ? void 0 : _commentTree$.commentId
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/save.js


/**
 * WordPress dependencies
 */

function CommentTemplateSave() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comment_template_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comment-template",
  title: "Comment Template",
  category: "design",
  parent: ["core/comments-query-loop"],
  description: "Contains the block elements used to display a comment, like the title, date, author, avatar and more.",
  textdomain: "default",
  usesContext: ["postId"],
  supports: {
    reusable: false,
    html: false,
    align: true
  },
  style: "wp-block-comment-template"
};


const {
  name: comment_template_name
} = comment_template_metadata;

const comment_template_settings = {
  icon: library_layout,
  edit: CommentTemplateEdit,
  save: CommentTemplateSave
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-previous.js


/**
 * WordPress dependencies
 */

const queryPaginationPrevious = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16 10.5v3h3v-3h-3zm-5 3h3v-3h-3v3zM7 9l-3 3 3 3 1-1-2-2 2-2-1-1z"
}));
/* harmony default export */ var query_pagination_previous = (queryPaginationPrevious);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/edit.js



/**
 * WordPress dependencies
 */


const arrowMap = {
  none: '',
  arrow: '←',
  chevron: '«'
};
function CommentsPaginationPreviousEdit(_ref) {
  let {
    attributes: {
      label
    },
    setAttributes,
    context: {
      'comments/paginationArrow': paginationArrow
    }
  } = _ref;
  const displayArrow = arrowMap[paginationArrow];
  return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
    href: "#comments-pagination-previous-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: `wp-block-comments-pagination-previous-arrow is-arrow-${paginationArrow}`
  }, displayArrow), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
    __experimentalVersion: 2,
    tagName: "span",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Older comments page link'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Older Comments'),
    value: label,
    onChange: newLabel => setAttributes({
      label: newLabel
    })
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comments_pagination_previous_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-pagination-previous",
  title: "Previous Page",
  category: "theme",
  parent: ["core/comments-pagination"],
  description: "Displays the previous comment's page link.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    }
  },
  usesContext: ["postId", "comments/paginationArrow"],
  supports: {
    reusable: false,
    html: false,
    color: {
      gradients: true,
      text: false,
      __experimentalDefaultControls: {
        background: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};

const {
  name: comments_pagination_previous_name
} = comments_pagination_previous_metadata;

const comments_pagination_previous_settings = {
  icon: query_pagination_previous,
  edit: CommentsPaginationPreviousEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments.js


/**
 * WordPress dependencies
 */

const postComments = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M14 10.1V4c0-.6-.4-1-1-1H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1zm-1.5-.5H6.7l-1.2 1.2V4.5h7v5.1zM19 12h-8c-.6 0-1 .4-1 1v6.1c0 .6.4 1 1 1h5.7l1.8 1.8c.1.2.4.3.6.3.1 0 .2 0 .3-.1.4-.1.6-.5.6-.8V13c0-.6-.4-1-1-1zm-.5 7.8l-1.2-1.2h-5.8v-5.1h7v6.3z"
}));
/* harmony default export */ var post_comments = (postComments);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/edit/comments-inspector-controls.js


/**
 * WordPress dependencies
 */



function CommentsInspectorControls(_ref) {
  let {
    attributes: {
      TagName
    },
    setAttributes
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
    options: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
      value: 'div'
    }, {
      label: '<section>',
      value: 'section'
    }, {
      label: '<aside>',
      value: 'aside'
    }],
    value: TagName,
    onChange: value => setAttributes({
      tagName: value
    })
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/edit.js


/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const edit_TEMPLATE = [['core/comments-title'], ['core/comment-template', {}, [['core/columns', {}, [['core/column', {
  width: '40px'
}, [['core/avatar', {
  size: 40,
  style: {
    border: {
      radius: '20px'
    }
  }
}]]], ['core/column', {}, [['core/comment-author-name'], ['core/group', {
  layout: {
    type: 'flex'
  },
  style: {
    spacing: {
      margin: {
        top: '0px',
        bottom: '0px'
      }
    }
  }
}, [['core/comment-date'], ['core/comment-edit-link']]], ['core/comment-content'], ['core/comment-reply-link']]]]]]], ['core/comments-pagination'], ['core/post-comments-form']];
function CommentsQueryLoopEdit(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    tagName: TagName
  } = attributes;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    template: edit_TEMPLATE
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(CommentsInspectorControls, {
    attributes: attributes,
    setAttributes: setAttributes
  }), (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/save.js


/**
 * WordPress dependencies
 */

function CommentsQueryLoopSave(_ref) {
  let {
    attributes: {
      tagName: Tag
    }
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comments_query_loop_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-query-loop",
  title: "Comments Query Loop",
  category: "theme",
  description: "An advanced block that allows displaying post comments using different visual configurations.",
  textdomain: "default",
  attributes: {
    tagName: {
      type: "string",
      "default": "div"
    }
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    }
  },
  editorStyle: "wp-block-comments-editor"
};


const {
  name: comments_query_loop_name
} = comments_query_loop_metadata;

const comments_query_loop_settings = {
  icon: post_comments,
  edit: CommentsQueryLoopEdit,
  save: CommentsQueryLoopSave
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination.js


/**
 * WordPress dependencies
 */

const queryPagination = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z"
}));
/* harmony default export */ var query_pagination = (queryPagination);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/comments-pagination-arrow-controls.js


/**
 * WordPress dependencies
 */


function CommentsPaginationArrowControls(_ref) {
  let {
    value,
    onChange
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
    value: value,
    onChange: onChange,
    help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous comments link.'),
    isBlock: true
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "none",
    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Comments Pagination Next/Previous blocks')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "arrow",
    label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Comments Pagination Next/Previous blocks')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "chevron",
    label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Comments Pagination Next/Previous blocks')
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/edit.js


/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const comments_pagination_edit_TEMPLATE = [['core/comments-pagination-previous'], ['core/comments-pagination-numbers'], ['core/comments-pagination-next']];

const getDefaultBlockLayout = blockTypeOrName => {
  const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout');
  return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default;
};

function QueryPaginationEdit(_ref) {
  let {
    attributes: {
      paginationArrow,
      layout
    },
    setAttributes,
    clientId,
    name
  } = _ref;
  const usedLayout = layout || getDefaultBlockLayout(name);
  const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlocks
    } = select(external_wp_blockEditor_namespaceObject.store);
    const innerBlocks = getBlocks(clientId);
    /**
     * Show the `paginationArrow` control only if a
     * Comments Pagination Next or Comments Pagination Previous
     * block exists.
     */

    return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => {
      return ['core/comments-pagination-previous', 'core/comments-pagination-next'].includes(innerBlock.name);
    });
  }, []);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    template: comments_pagination_edit_TEMPLATE,
    allowedBlocks: ['core/comments-pagination-previous', 'core/comments-pagination-numbers', 'core/comments-pagination-next'],
    __experimentalLayout: usedLayout
  }); // Get the Discussion settings

  const pageComments = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      __experimentalDiscussionSettings
    } = getSettings();
    return __experimentalDiscussionSettings === null || __experimentalDiscussionSettings === void 0 ? void 0 : __experimentalDiscussionSettings.pageComments;
  }, []); // If paging comments is not enabled in the Discussion Settings then hide the pagination
  // controls. We don't want to remove them from the template so that when the user enables
  // paging comments, the controls will be visible.

  if (!pageComments) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Comments Pagination block: paging comments is disabled in the Discussion Settings'));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasNextPreviousBlocks && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(CommentsPaginationArrowControls, {
    value: paginationArrow,
    onChange: value => {
      setAttributes({
        paginationArrow: value
      });
    }
  }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/save.js


/**
 * WordPress dependencies
 */

function comments_pagination_save_save() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comments_pagination_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-pagination",
  title: "Comments Pagination",
  category: "theme",
  parent: ["core/comments-query-loop"],
  description: "Displays a paginated navigation to next/previous set of comments, when applicable.",
  textdomain: "default",
  attributes: {
    paginationArrow: {
      type: "string",
      "default": "none"
    }
  },
  providesContext: {
    "comments/paginationArrow": "paginationArrow"
  },
  supports: {
    align: true,
    reusable: false,
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      "default": {
        type: "flex"
      }
    }
  },
  editorStyle: "wp-block-comments-pagination-editor",
  style: "wp-block-comments-pagination"
};


const {
  name: comments_pagination_name
} = comments_pagination_metadata;

const comments_pagination_settings = {
  icon: query_pagination,
  edit: QueryPaginationEdit,
  save: comments_pagination_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-next.js


/**
 * WordPress dependencies
 */

const queryPaginationNext = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M5 13.5h3v-3H5v3zm5 0h3v-3h-3v3zM17 9l-1 1 2 2-2 2 1 1 3-3-3-3z"
}));
/* harmony default export */ var query_pagination_next = (queryPaginationNext);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/edit.js



/**
 * WordPress dependencies
 */


const edit_arrowMap = {
  none: '',
  arrow: '→',
  chevron: '»'
};
function CommentsPaginationNextEdit(_ref) {
  let {
    attributes: {
      label
    },
    setAttributes,
    context: {
      'comments/paginationArrow': paginationArrow
    }
  } = _ref;
  const displayArrow = edit_arrowMap[paginationArrow];
  return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
    href: "#comments-pagination-next-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
    __experimentalVersion: 2,
    tagName: "span",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Newer comments page link'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Newer Comments'),
    value: label,
    onChange: newLabel => setAttributes({
      label: newLabel
    })
  }), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: `wp-block-comments-pagination-next-arrow is-arrow-${paginationArrow}`
  }, displayArrow));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comments_pagination_next_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-pagination-next",
  title: "Next Page",
  category: "theme",
  parent: ["core/comments-pagination"],
  description: "Displays the next comment's page link.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    }
  },
  usesContext: ["postId", "comments/paginationArrow"],
  supports: {
    reusable: false,
    html: false,
    color: {
      gradients: true,
      text: false,
      __experimentalDefaultControls: {
        background: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};

const {
  name: comments_pagination_next_name
} = comments_pagination_next_metadata;

const comments_pagination_next_settings = {
  icon: query_pagination_next,
  edit: CommentsPaginationNextEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-numbers.js


/**
 * WordPress dependencies
 */

const queryPaginationNumbers = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 13.5h6v-3H4v3zm8.2-2.5.8-.3V14h1V9.3l-2.2.7.4 1zm7.1-1.2c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3-.1-.8-.3-1.1z"
}));
/* harmony default export */ var query_pagination_numbers = (queryPaginationNumbers);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/edit.js


/**
 * WordPress dependencies
 */


const PaginationItem = _ref => {
  let {
    content,
    tag: Tag = 'a',
    extraClass = ''
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(Tag, {
    className: `page-numbers ${extraClass}`
  }, content);
};

function CommentsPaginationNumbersEdit() {
  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "1"
  }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "2"
  }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "3",
    tag: "span",
    extraClass: "current"
  }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "4"
  }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "5"
  }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "...",
    tag: "span",
    extraClass: "dots"
  }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
    content: "8"
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comments_pagination_numbers_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-pagination-numbers",
  title: "Page Numbers",
  category: "theme",
  parent: ["core/comments-pagination"],
  description: "Displays a list of page numbers for comments pagination.",
  textdomain: "default",
  usesContext: ["postId"],
  supports: {
    reusable: false,
    html: false
  }
};

const {
  name: comments_pagination_numbers_name
} = comments_pagination_numbers_metadata;

const comments_pagination_numbers_settings = {
  icon: query_pagination_numbers,
  edit: CommentsPaginationNumbersEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-title.js


/**
 * WordPress dependencies
 */

const commentTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6 11.9c.6.3 1.3.5 2.1.5.4 0 .8 0 1.2-.1.4-.1.7-.2 1-.3l-.1-1.3c-.3.1-.6.3-.9.3-.3.1-.7.1-1.1.1-.6 0-1.1-.1-1.5-.4-.4-.3-.7-.6-.9-1-.2-.5-.3-1-.3-1.5 0-.6.1-1.1.3-1.5.2-.4.5-.8.9-1 .4-.3.9-.4 1.5-.4.4 0 .7 0 1.1.1l.9.3.1-1.3c-.3-.1-.6-.2-1-.3C9 4 8.6 4 8.2 4c-.9 0-1.6.2-2.2.5-.6.4-1.1.8-1.5 1.5-.3.6-.5 1.3-.5 2.2s.2 1.6.5 2.2c.4.6.9 1.1 1.5 1.5zm-2 2.6V16h16v-1.5H4zM4 20h9v-1.5H4V20z"
}));
/* harmony default export */ var comment_title = (commentTitle);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-icon.js


/**
 * WordPress dependencies
 */

/** @typedef {import('@wordpress/element').WPComponent} WPComponent */

/**
 * HeadingLevelIcon props.
 *
 * @typedef WPHeadingLevelIconProps
 *
 * @property {number}   level     The heading level to show an icon for.
 * @property {?boolean} isPressed Whether or not the icon should appear pressed; default: false.
 */

/**
 * Heading level icon.
 *
 * @param {WPHeadingLevelIconProps} props Component props.
 *
 * @return {?WPComponent} The icon.
 */

function HeadingLevelIcon(_ref) {
  let {
    level,
    isPressed = false
  } = _ref;
  const levelToPath = {
    1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z',
    2: 'M7 5h2v10H7v-4H3v4H1V5h2v4h4V5zm8 8c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6V15h8v-2H15z',
    3: 'M12.1 12.2c.4.3.8.5 1.2.7.4.2.9.3 1.4.3.5 0 1-.1 1.4-.3.3-.1.5-.5.5-.8 0-.2 0-.4-.1-.6-.1-.2-.3-.3-.5-.4-.3-.1-.7-.2-1-.3-.5-.1-1-.1-1.5-.1V9.1c.7.1 1.5-.1 2.2-.4.4-.2.6-.5.6-.9 0-.3-.1-.6-.4-.8-.3-.2-.7-.3-1.1-.3-.4 0-.8.1-1.1.3-.4.2-.7.4-1.1.6l-1.2-1.4c.5-.4 1.1-.7 1.6-.9.5-.2 1.2-.3 1.8-.3.5 0 1 .1 1.6.2.4.1.8.3 1.2.5.3.2.6.5.8.8.2.3.3.7.3 1.1 0 .5-.2.9-.5 1.3-.4.4-.9.7-1.5.9v.1c.6.1 1.2.4 1.6.8.4.4.7.9.7 1.5 0 .4-.1.8-.3 1.2-.2.4-.5.7-.9.9-.4.3-.9.4-1.3.5-.5.1-1 .2-1.6.2-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1l1.1-1.4zM7 9H3V5H1v10h2v-4h4v4h2V5H7v4z',
    4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z',
    5: 'M12.1 12.2c.4.3.7.5 1.1.7.4.2.9.3 1.3.3.5 0 1-.1 1.4-.4.4-.3.6-.7.6-1.1 0-.4-.2-.9-.6-1.1-.4-.3-.9-.4-1.4-.4H14c-.1 0-.3 0-.4.1l-.4.1-.5.2-1-.6.3-5h6.4v1.9h-4.3L14 8.8c.2-.1.5-.1.7-.2.2 0 .5-.1.7-.1.5 0 .9.1 1.4.2.4.1.8.3 1.1.6.3.2.6.6.8.9.2.4.3.9.3 1.4 0 .5-.1 1-.3 1.4-.2.4-.5.8-.9 1.1-.4.3-.8.5-1.3.7-.5.2-1 .3-1.5.3-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1-.1-.1 1-1.5 1-1.5zM9 15H7v-4H3v4H1V5h2v4h4V5h2v10z',
    6: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm8.6-7.5c-.2-.2-.5-.4-.8-.5-.6-.2-1.3-.2-1.9 0-.3.1-.6.3-.8.5l-.6.9c-.2.5-.2.9-.2 1.4.4-.3.8-.6 1.2-.8.4-.2.8-.3 1.3-.3.4 0 .8 0 1.2.2.4.1.7.3 1 .6.3.3.5.6.7.9.2.4.3.8.3 1.3s-.1.9-.3 1.4c-.2.4-.5.7-.8 1-.4.3-.8.5-1.2.6-1 .3-2 .3-3 0-.5-.2-1-.5-1.4-.9-.4-.4-.8-.9-1-1.5-.2-.6-.3-1.3-.3-2.1s.1-1.6.4-2.3c.2-.6.6-1.2 1-1.6.4-.4.9-.7 1.4-.9.6-.3 1.1-.4 1.7-.4.7 0 1.4.1 2 .3.5.2 1 .5 1.4.8 0 .1-1.3 1.4-1.3 1.4zm-2.4 5.8c.2 0 .4 0 .6-.1.2 0 .4-.1.5-.2.1-.1.3-.3.4-.5.1-.2.1-.5.1-.7 0-.4-.1-.8-.4-1.1-.3-.2-.7-.3-1.1-.3-.3 0-.7.1-1 .2-.4.2-.7.4-1 .7 0 .3.1.7.3 1 .1.2.3.4.4.6.2.1.3.3.5.3.2.1.5.2.7.1z'
  };

  if (!levelToPath.hasOwnProperty(level)) {
    return null;
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "24",
    height: "24",
    viewBox: "0 0 20 20",
    xmlns: "http://www.w3.org/2000/svg",
    isPressed: isPressed
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: levelToPath[level]
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-dropdown.js


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const HEADING_LEVELS = [1, 2, 3, 4, 5, 6];
const POPOVER_PROPS = {
  className: 'block-library-heading-level-dropdown'
};
/** @typedef {import('@wordpress/element').WPComponent} WPComponent */

/**
 * HeadingLevelDropdown props.
 *
 * @typedef WPHeadingLevelDropdownProps
 *
 * @property {number}                 selectedLevel The chosen heading level.
 * @property {(newValue:number)=>any} onChange      Callback to run when
 *                                                  toolbar value is changed.
 */

/**
 * Dropdown for selecting a heading level (1 through 6).
 *
 * @param {WPHeadingLevelDropdownProps} props Component props.
 *
 * @return {WPComponent} The toolbar.
 */

function HeadingLevelDropdown(_ref) {
  let {
    selectedLevel,
    onChange
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    popoverProps: POPOVER_PROPS,
    icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, {
      level: selectedLevel
    }),
    label: (0,external_wp_i18n_namespaceObject.__)('Change heading level'),
    controls: HEADING_LEVELS.map(targetLevel => {
      {
        const isActive = targetLevel === selectedLevel;
        return {
          icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, {
            level: targetLevel,
            isPressed: isActive
          }),
          label: (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: heading level e.g: "1", "2", "3"
          (0,external_wp_i18n_namespaceObject.__)('Heading %d'), targetLevel),
          isActive,

          onClick() {
            onChange(targetLevel);
          }

        };
      }
    })
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


function comments_title_edit_Edit(_ref) {
  let {
    attributes: {
      textAlign,
      showPostTitle,
      showCommentsCount,
      level
    },
    setAttributes,
    context: {
      postType,
      postId
    }
  } = _ref;
  const TagName = 'h' + level;
  const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
  const [rawTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
  const isSiteEditor = typeof postId === 'undefined';
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isSiteEditor) {
      setCommentsCount(3);
      return;
    }

    const currentPostId = postId;
    external_wp_apiFetch_default()({
      path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
        post: postId,
        _fields: 'id'
      }),
      method: 'HEAD',
      parse: false
    }).then(res => {
      // Stale requests will have the `currentPostId` of an older closure.
      if (currentPostId === postId) {
        setCommentsCount(parseInt(res.headers.get('X-WP-Total')));
      }
    }).catch(() => {
      setCommentsCount(0);
    });
  }, [postId]);
  const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    })
  }), (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
    selectedLevel: level,
    onChange: newLevel => setAttributes({
      level: newLevel
    })
  }));
  const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show post title'),
    checked: showPostTitle,
    onChange: value => setAttributes({
      showPostTitle: value
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show comments count'),
    checked: showCommentsCount,
    onChange: value => setAttributes({
      showCommentsCount: value
    })
  })));
  const postTitle = isSiteEditor ? (0,external_wp_i18n_namespaceObject.__)('"Post Title"') : `"${rawTitle}"`;
  let placeholder;

  if (showCommentsCount && commentsCount !== undefined) {
    if (showPostTitle) {
      if (commentsCount === 1) {
        /* translators: %s: Post title. */
        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('One response to %s'), postTitle);
      } else {
        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)(
        /* translators: 1: Number of comments, 2: Post title. */
        (0,external_wp_i18n_namespaceObject._n)('%1$s response to %2$s', '%1$s responses to %2$s', commentsCount), commentsCount, postTitle);
      }
    } else if (commentsCount === 1) {
      placeholder = (0,external_wp_i18n_namespaceObject.__)('One response');
    } else {
      placeholder = (0,external_wp_i18n_namespaceObject.sprintf)(
      /* translators: %s: Number of comments. */
      (0,external_wp_i18n_namespaceObject._n)('%s responses', '%s responses', commentsCount), commentsCount);
    }
  } else if (showPostTitle) {
    if (commentsCount === 1) {
      /* translators: %s: Post title. */
      placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Response to %s'), postTitle);
    } else {
      /* translators: %s: Post title. */
      placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Responses to %s'), postTitle);
    }
  } else if (commentsCount === 1) {
    placeholder = (0,external_wp_i18n_namespaceObject.__)('Response');
  } else {
    placeholder = (0,external_wp_i18n_namespaceObject.__)('Responses');
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, placeholder));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/deprecated.js
/**
 * Internal dependencies
 */
const deprecated_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-title",
  title: "Comments Title",
  category: "theme",
  ancestor: ["core/comments-query-loop"],
  description: "Displays a title with the number of comments",
  textdomain: "default",
  usesContext: ["postId", "postType"],
  attributes: {
    textAlign: {
      type: "string"
    },
    showPostTitle: {
      type: "boolean",
      "default": true
    },
    showCommentsCount: {
      type: "boolean",
      "default": true
    },
    level: {
      type: "number",
      "default": 2
    }
  },
  supports: {
    anchor: false,
    align: true,
    html: false,
    __experimentalBorder: {
      radius: true,
      color: true,
      width: true,
      style: true
    },
    color: {
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: true,
      padding: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalFontFamily: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        __experimentalFontFamily: true,
        __experimentalFontStyle: true,
        __experimentalFontWeight: true
      }
    }
  }
};
const {
  attributes,
  supports
} = deprecated_metadata;
/* harmony default export */ var comments_title_deprecated = ([{
  attributes: { ...attributes,
    singleCommentLabel: {
      type: 'string'
    },
    multipleCommentsLabel: {
      type: 'string'
    }
  },
  supports,
  migrate: oldAttributes => {
    /* eslint-disable no-unused-vars */
    const {
      singleCommentLabel,
      multipleCommentsLabel,
      ...newAttributes
    } = oldAttributes;
    /* eslint-enable no-unused-vars */

    return newAttributes;
  },
  isEligible: _ref => {
    let {
      multipleCommentsLabel,
      singleCommentLabel
    } = _ref;
    return multipleCommentsLabel || singleCommentLabel;
  },
  save: () => null
}]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const comments_title_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/comments-title",
  title: "Comments Title",
  category: "theme",
  ancestor: ["core/comments-query-loop"],
  description: "Displays a title with the number of comments",
  textdomain: "default",
  usesContext: ["postId", "postType"],
  attributes: {
    textAlign: {
      type: "string"
    },
    showPostTitle: {
      type: "boolean",
      "default": true
    },
    showCommentsCount: {
      type: "boolean",
      "default": true
    },
    level: {
      type: "number",
      "default": 2
    }
  },
  supports: {
    anchor: false,
    align: true,
    html: false,
    __experimentalBorder: {
      radius: true,
      color: true,
      width: true,
      style: true
    },
    color: {
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: true,
      padding: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalFontFamily: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        __experimentalFontFamily: true,
        __experimentalFontStyle: true,
        __experimentalFontWeight: true
      }
    }
  }
};


const {
  name: comments_title_name
} = comments_title_metadata;

const comments_title_settings = {
  icon: comment_title,
  edit: comments_title_edit_Edit,
  deprecated: comments_title_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cover.js


/**
 * WordPress dependencies
 */

const cover = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h6.2v8.9l2.5-3.1 2.5 3.1V4.5h2.2c.4 0 .8.4.8.8v13.4z"
}));
/* harmony default export */ var library_cover = (cover);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/shared.js
/**
 * WordPress dependencies
 */

const POSITION_CLASSNAMES = {
  'top left': 'is-position-top-left',
  'top center': 'is-position-top-center',
  'top right': 'is-position-top-right',
  'center left': 'is-position-center-left',
  'center center': 'is-position-center-center',
  center: 'is-position-center-center',
  'center right': 'is-position-center-right',
  'bottom left': 'is-position-bottom-left',
  'bottom center': 'is-position-bottom-center',
  'bottom right': 'is-position-bottom-right'
};
const IMAGE_BACKGROUND_TYPE = 'image';
const VIDEO_BACKGROUND_TYPE = 'video';
const COVER_MIN_HEIGHT = 50;
const COVER_MAX_HEIGHT = 1000;
const COVER_DEFAULT_HEIGHT = 300;
function backgroundImageStyles(url) {
  return url ? {
    backgroundImage: `url(${url})`
  } : {};
}
const shared_ALLOWED_MEDIA_TYPES = ['image', 'video'];
function dimRatioToClass(ratio) {
  return ratio === 50 || !ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
}
function attributesFromMedia(setAttributes, dimRatio) {
  return media => {
    if (!media || !media.url) {
      setAttributes({
        url: undefined,
        id: undefined
      });
      return;
    }

    if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
      media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
    }

    let mediaType; // For media selections originated from a file upload.

    if (media.media_type) {
      if (media.media_type === IMAGE_BACKGROUND_TYPE) {
        mediaType = IMAGE_BACKGROUND_TYPE;
      } else {
        // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
        // Videos contain the media type of 'file' in the object returned from the rest api.
        mediaType = VIDEO_BACKGROUND_TYPE;
      }
    } else {
      // For media selections originated from existing files in the media library.
      if (media.type !== IMAGE_BACKGROUND_TYPE && media.type !== VIDEO_BACKGROUND_TYPE) {
        return;
      }

      mediaType = media.type;
    }

    setAttributes({
      dimRatio: dimRatio === 100 ? 50 : dimRatio,
      url: media.url,
      id: media.id,
      alt: media === null || media === void 0 ? void 0 : media.alt,
      backgroundType: mediaType,
      ...(mediaType === VIDEO_BACKGROUND_TYPE ? {
        focalPoint: undefined,
        hasParallax: undefined
      } : {})
    });
  };
}
/**
 * Checks of the contentPosition is the center (default) position.
 *
 * @param {string} contentPosition The current content position.
 * @return {boolean} Whether the contentPosition is center.
 */

function isContentPositionCenter(contentPosition) {
  return !contentPosition || contentPosition === 'center center' || contentPosition === 'center';
}
/**
 * Retrieves the className for the current contentPosition.
 * The default position (center) will not have a className.
 *
 * @param {string} contentPosition The current content position.
 * @return {string} The className assigned to the contentPosition.
 */

function getPositionClassName(contentPosition) {
  /*
   * Only render a className if the contentPosition is not center (the default).
   */
  if (isContentPositionCenter(contentPosition)) return '';
  return POSITION_CLASSNAMES[contentPosition];
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Original function to determine the background opacity classname
 *
 * Used in deprecations: v1-7.
 *
 * @param {number} ratio ratio to use for opacity.
 * @return {string}       background opacity class   .
 */

function dimRatioToClassV1(ratio) {
  return ratio === 0 || ratio === 50 || !ratio ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
}

function migrateDimRatio(attributes) {
  return { ...attributes,
    dimRatio: !attributes.url ? 100 : attributes.dimRatio
  };
}

const deprecated_blockAttributes = {
  url: {
    type: 'string'
  },
  id: {
    type: 'number'
  },
  hasParallax: {
    type: 'boolean',
    default: false
  },
  dimRatio: {
    type: 'number',
    default: 50
  },
  overlayColor: {
    type: 'string'
  },
  customOverlayColor: {
    type: 'string'
  },
  backgroundType: {
    type: 'string',
    default: 'image'
  },
  focalPoint: {
    type: 'object'
  }
}; // Deprecation for blocks with `minHeightUnit` set but no `minHeight`.

const v9 = {
  attributes: {
    url: {
      type: 'string'
    },
    id: {
      type: 'number'
    },
    alt: {
      type: 'string',
      source: 'attribute',
      selector: 'img',
      attribute: 'alt',
      default: ''
    },
    hasParallax: {
      type: 'boolean',
      default: false
    },
    isRepeated: {
      type: 'boolean',
      default: false
    },
    dimRatio: {
      type: 'number',
      default: 100
    },
    overlayColor: {
      type: 'string'
    },
    customOverlayColor: {
      type: 'string'
    },
    backgroundType: {
      type: 'string',
      default: 'image'
    },
    focalPoint: {
      type: 'object'
    },
    minHeight: {
      type: 'number'
    },
    minHeightUnit: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    },
    contentPosition: {
      type: 'string'
    },
    isDark: {
      type: 'boolean',
      default: true
    },
    allowedBlocks: {
      type: 'array'
    },
    templateLock: {
      type: ['string', 'boolean'],
      enum: ['all', 'insert', false]
    }
  },
  supports: {
    anchor: true,
    align: true,
    html: false,
    spacing: {
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    color: {
      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
      text: false,
      background: false
    }
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      backgroundType,
      gradient,
      contentPosition,
      customGradient,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      isDark,
      isRepeated,
      overlayColor,
      url,
      alt,
      id,
      minHeight: minHeightProp,
      minHeightUnit
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const minHeight = minHeightUnit ? `${minHeightProp}${minHeightUnit}` : minHeightProp;
    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
    const isImgElement = !(hasParallax || isRepeated);
    const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
      minHeight: minHeight || undefined
    };
    const bgStyle = {
      backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
      background: customGradient ? customGradient : undefined
    };
    const objectPosition = // prettier-ignore
    focalPoint && isImgElement ? `${Math.round(focalPoint.x * 100)}% ${Math.round(focalPoint.y * 100)}%` : undefined;
    const classes = classnames_default()({
      'is-light': !isDark,
      'has-parallax': hasParallax,
      'is-repeated': isRepeated,
      'has-custom-content-position': !isContentPositionCenter(contentPosition)
    }, getPositionClassName(contentPosition));
    const gradientValue = gradient || customGradient;
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: classes,
      style
    }), (0,external_wp_element_namespaceObject.createElement)("span", {
      "aria-hidden": "true",
      className: classnames_default()('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
        'has-background-dim': dimRatio !== undefined,
        // For backwards compatibility. Former versions of the Cover Block applied
        // `.wp-block-cover__gradient-background` in the presence of
        // media, a gradient and a dim.
        'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
        'has-background-gradient': gradientValue,
        [gradientClass]: gradientClass
      }),
      style: bgStyle
    }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
      className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-${id}` : null),
      alt: alt,
      src: url,
      style: {
        objectPosition
      },
      "data-object-fit": "cover",
      "data-object-position": objectPosition
    }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
      autoPlay: true,
      muted: true,
      loop: true,
      playsInline: true,
      src: url,
      style: {
        objectPosition
      },
      "data-object-fit": "cover",
      "data-object-position": objectPosition
    }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
      className: 'wp-block-cover__inner-container'
    })));
  }

}; // v8: deprecated to remove duplicated gradient classes and swap `wp-block-cover__gradient-background` for `wp-block-cover__background`.

const v8 = {
  attributes: {
    url: {
      type: 'string'
    },
    id: {
      type: 'number'
    },
    alt: {
      type: 'string',
      source: 'attribute',
      selector: 'img',
      attribute: 'alt',
      default: ''
    },
    hasParallax: {
      type: 'boolean',
      default: false
    },
    isRepeated: {
      type: 'boolean',
      default: false
    },
    dimRatio: {
      type: 'number',
      default: 100
    },
    overlayColor: {
      type: 'string'
    },
    customOverlayColor: {
      type: 'string'
    },
    backgroundType: {
      type: 'string',
      default: 'image'
    },
    focalPoint: {
      type: 'object'
    },
    minHeight: {
      type: 'number'
    },
    minHeightUnit: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    },
    contentPosition: {
      type: 'string'
    },
    isDark: {
      type: 'boolean',
      default: true
    },
    allowedBlocks: {
      type: 'array'
    },
    templateLock: {
      type: ['string', 'boolean'],
      enum: ['all', 'insert', false]
    }
  },
  supports: {
    anchor: true,
    align: true,
    html: false,
    spacing: {
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    color: {
      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
      text: false,
      background: false
    }
  },

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      backgroundType,
      gradient,
      contentPosition,
      customGradient,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      isDark,
      isRepeated,
      overlayColor,
      url,
      alt,
      id,
      minHeight: minHeightProp,
      minHeightUnit
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const minHeight = minHeightUnit ? `${minHeightProp}${minHeightUnit}` : minHeightProp;
    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
    const isImgElement = !(hasParallax || isRepeated);
    const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
      minHeight: minHeight || undefined
    };
    const bgStyle = {
      backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
      background: customGradient ? customGradient : undefined
    };
    const objectPosition = // prettier-ignore
    focalPoint && isImgElement ? `${Math.round(focalPoint.x * 100)}% ${Math.round(focalPoint.y * 100)}%` : undefined;
    const classes = classnames_default()({
      'is-light': !isDark,
      'has-parallax': hasParallax,
      'is-repeated': isRepeated,
      'has-custom-content-position': !isContentPositionCenter(contentPosition)
    }, getPositionClassName(contentPosition));
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: classes,
      style
    }), (0,external_wp_element_namespaceObject.createElement)("span", {
      "aria-hidden": "true",
      className: classnames_default()(overlayColorClass, dimRatioToClass(dimRatio), 'wp-block-cover__gradient-background', gradientClass, {
        'has-background-dim': dimRatio !== undefined,
        'has-background-gradient': gradient || customGradient,
        [gradientClass]: !url && gradientClass
      }),
      style: bgStyle
    }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
      className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-${id}` : null),
      alt: alt,
      src: url,
      style: {
        objectPosition
      },
      "data-object-fit": "cover",
      "data-object-position": objectPosition
    }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
      autoPlay: true,
      muted: true,
      loop: true,
      playsInline: true,
      src: url,
      style: {
        objectPosition
      },
      "data-object-fit": "cover",
      "data-object-position": objectPosition
    }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
      className: 'wp-block-cover__inner-container'
    })));
  }

};
const v7 = {
  attributes: { ...deprecated_blockAttributes,
    isRepeated: {
      type: 'boolean',
      default: false
    },
    minHeight: {
      type: 'number'
    },
    minHeightUnit: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    },
    contentPosition: {
      type: 'string'
    },
    alt: {
      type: 'string',
      source: 'attribute',
      selector: 'img',
      attribute: 'alt',
      default: ''
    }
  },
  supports: {
    anchor: true,
    align: true,
    html: false,
    spacing: {
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    color: {
      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
      text: false,
      background: false
    }
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      backgroundType,
      gradient,
      contentPosition,
      customGradient,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      isRepeated,
      overlayColor,
      url,
      alt,
      id,
      minHeight: minHeightProp,
      minHeightUnit
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const minHeight = minHeightUnit ? `${minHeightProp}${minHeightUnit}` : minHeightProp;
    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
    const isImgElement = !(hasParallax || isRepeated);
    const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
      backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
      background: customGradient && !url ? customGradient : undefined,
      minHeight: minHeight || undefined
    };
    const objectPosition = // prettier-ignore
    focalPoint && isImgElement ? `${Math.round(focalPoint.x * 100)}% ${Math.round(focalPoint.y * 100)}%` : undefined;
    const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax,
      'is-repeated': isRepeated,
      'has-background-gradient': gradient || customGradient,
      [gradientClass]: !url && gradientClass,
      'has-custom-content-position': !isContentPositionCenter(contentPosition)
    }, getPositionClassName(contentPosition));
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: classes,
      style
    }), url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
      "aria-hidden": "true",
      className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
      style: customGradient ? {
        background: customGradient
      } : undefined
    }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
      className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-${id}` : null),
      alt: alt,
      src: url,
      style: {
        objectPosition
      },
      "data-object-fit": "cover",
      "data-object-position": objectPosition
    }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
      autoPlay: true,
      muted: true,
      loop: true,
      playsInline: true,
      src: url,
      style: {
        objectPosition
      },
      "data-object-fit": "cover",
      "data-object-position": objectPosition
    }), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-cover__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  },

  migrate: migrateDimRatio
};
const v6 = {
  attributes: { ...deprecated_blockAttributes,
    isRepeated: {
      type: 'boolean',
      default: false
    },
    minHeight: {
      type: 'number'
    },
    minHeightUnit: {
      type: 'string'
    },
    gradient: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    },
    contentPosition: {
      type: 'string'
    }
  },
  supports: {
    align: true
  },

  save(_ref4) {
    let {
      attributes
    } = _ref4;
    const {
      backgroundType,
      gradient,
      contentPosition,
      customGradient,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      isRepeated,
      overlayColor,
      url,
      minHeight: minHeightProp,
      minHeightUnit
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const minHeight = minHeightUnit ? `${minHeightProp}${minHeightUnit}` : minHeightProp;
    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
    const style = isImageBackground ? backgroundImageStyles(url) : {};
    const videoStyle = {};

    if (!overlayColorClass) {
      style.backgroundColor = customOverlayColor;
    }

    if (customGradient && !url) {
      style.background = customGradient;
    }

    style.minHeight = minHeight || undefined;
    let positionValue;

    if (focalPoint) {
      positionValue = `${Math.round(focalPoint.x * 100)}% ${Math.round(focalPoint.y * 100)}%`;

      if (isImageBackground && !hasParallax) {
        style.backgroundPosition = positionValue;
      }

      if (isVideoBackground) {
        videoStyle.objectPosition = positionValue;
      }
    }

    const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax,
      'is-repeated': isRepeated,
      'has-background-gradient': gradient || customGradient,
      [gradientClass]: !url && gradientClass,
      'has-custom-content-position': !isContentPositionCenter(contentPosition)
    }, getPositionClassName(contentPosition));
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: classes,
      style
    }), url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
      "aria-hidden": "true",
      className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
      style: customGradient ? {
        background: customGradient
      } : undefined
    }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: "wp-block-cover__video-background",
      autoPlay: true,
      muted: true,
      loop: true,
      playsInline: true,
      src: url,
      style: videoStyle
    }), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-cover__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  },

  migrate: migrateDimRatio
};
const v5 = {
  attributes: { ...deprecated_blockAttributes,
    minHeight: {
      type: 'number'
    },
    gradient: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    }
  },
  supports: {
    align: true
  },

  save(_ref5) {
    let {
      attributes
    } = _ref5;
    const {
      backgroundType,
      gradient,
      customGradient,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      overlayColor,
      url,
      minHeight
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};

    if (!overlayColorClass) {
      style.backgroundColor = customOverlayColor;
    }

    if (focalPoint && !hasParallax) {
      style.backgroundPosition = `${Math.round(focalPoint.x * 100)}% ${Math.round(focalPoint.y * 100)}%`;
    }

    if (customGradient && !url) {
      style.background = customGradient;
    }

    style.minHeight = minHeight || undefined;
    const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax,
      'has-background-gradient': customGradient,
      [gradientClass]: !url && gradientClass
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: classes,
      style: style
    }, url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
      "aria-hidden": "true",
      className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
      style: customGradient ? {
        background: customGradient
      } : undefined
    }), VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: "wp-block-cover__video-background",
      autoPlay: true,
      muted: true,
      loop: true,
      src: url
    }), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-cover__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  },

  migrate: migrateDimRatio
};
const v4 = {
  attributes: { ...deprecated_blockAttributes,
    minHeight: {
      type: 'number'
    },
    gradient: {
      type: 'string'
    },
    customGradient: {
      type: 'string'
    }
  },
  supports: {
    align: true
  },

  save(_ref6) {
    let {
      attributes
    } = _ref6;
    const {
      backgroundType,
      gradient,
      customGradient,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      overlayColor,
      url,
      minHeight
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

    const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};

    if (!overlayColorClass) {
      style.backgroundColor = customOverlayColor;
    }

    if (focalPoint && !hasParallax) {
      style.backgroundPosition = `${focalPoint.x * 100}% ${focalPoint.y * 100}%`;
    }

    if (customGradient && !url) {
      style.background = customGradient;
    }

    style.minHeight = minHeight || undefined;
    const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax,
      'has-background-gradient': customGradient,
      [gradientClass]: !url && gradientClass
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: classes,
      style: style
    }, url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
      "aria-hidden": "true",
      className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
      style: customGradient ? {
        background: customGradient
      } : undefined
    }), VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: "wp-block-cover__video-background",
      autoPlay: true,
      muted: true,
      loop: true,
      src: url
    }), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-cover__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  },

  migrate: migrateDimRatio
};
const v3 = {
  attributes: { ...deprecated_blockAttributes,
    title: {
      type: 'string',
      source: 'html',
      selector: 'p'
    },
    contentAlign: {
      type: 'string',
      default: 'center'
    }
  },
  supports: {
    align: true
  },

  save(_ref7) {
    let {
      attributes
    } = _ref7;
    const {
      backgroundType,
      contentAlign,
      customOverlayColor,
      dimRatio,
      focalPoint,
      hasParallax,
      overlayColor,
      title,
      url
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
    const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};

    if (!overlayColorClass) {
      style.backgroundColor = customOverlayColor;
    }

    if (focalPoint && !hasParallax) {
      style.backgroundPosition = `${focalPoint.x * 100}% ${focalPoint.y * 100}%`;
    }

    const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax,
      [`has-${contentAlign}-content`]: contentAlign !== 'center'
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: classes,
      style: style
    }, VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", {
      className: "wp-block-cover__video-background",
      autoPlay: true,
      muted: true,
      loop: true,
      src: url
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "p",
      className: "wp-block-cover-text",
      value: title
    }));
  },

  migrate(attributes) {
    const newAttribs = { ...attributes,
      dimRatio: !attributes.url ? 100 : attributes.dimRatio
    };
    return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
      content: attributes.title,
      align: attributes.contentAlign,
      fontSize: 'large',
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
    })]];
  }

};
const v2 = {
  attributes: { ...deprecated_blockAttributes,
    title: {
      type: 'string',
      source: 'html',
      selector: 'p'
    },
    contentAlign: {
      type: 'string',
      default: 'center'
    },
    align: {
      type: 'string'
    }
  },
  supports: {
    className: false
  },

  save(_ref8) {
    let {
      attributes
    } = _ref8;
    const {
      url,
      title,
      hasParallax,
      dimRatio,
      align,
      contentAlign,
      overlayColor,
      customOverlayColor
    } = attributes;
    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
    const style = backgroundImageStyles(url);

    if (!overlayColorClass) {
      style.backgroundColor = customOverlayColor;
    }

    const classes = classnames_default()('wp-block-cover-image', dimRatioToClassV1(dimRatio), overlayColorClass, {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax,
      [`has-${contentAlign}-content`]: contentAlign !== 'center'
    }, align ? `align${align}` : null);
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: classes,
      style: style
    }, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "p",
      className: "wp-block-cover-image-text",
      value: title
    }));
  },

  migrate(attributes) {
    const newAttribs = { ...attributes,
      dimRatio: !attributes.url ? 100 : attributes.dimRatio
    };
    return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign', 'align']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
      content: attributes.title,
      align: attributes.contentAlign,
      fontSize: 'large',
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
    })]];
  }

};
const cover_deprecated_v1 = {
  attributes: { ...deprecated_blockAttributes,
    title: {
      type: 'string',
      source: 'html',
      selector: 'h2'
    },
    align: {
      type: 'string'
    },
    contentAlign: {
      type: 'string',
      default: 'center'
    }
  },
  supports: {
    className: false
  },

  save(_ref9) {
    let {
      attributes
    } = _ref9;
    const {
      url,
      title,
      hasParallax,
      dimRatio,
      align
    } = attributes;
    const style = backgroundImageStyles(url);
    const classes = classnames_default()('wp-block-cover-image', dimRatioToClassV1(dimRatio), {
      'has-background-dim': dimRatio !== 0,
      'has-parallax': hasParallax
    }, align ? `align${align}` : null);
    return (0,external_wp_element_namespaceObject.createElement)("section", {
      className: classes,
      style: style
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "h2",
      value: title
    }));
  },

  migrate(attributes) {
    const newAttribs = { ...attributes,
      dimRatio: !attributes.url ? 100 : attributes.dimRatio
    };
    return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign', 'align']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
      content: attributes.title,
      align: attributes.contentAlign,
      fontSize: 'large',
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
    })]];
  }

};
/* harmony default export */ var cover_deprecated = ([v9, v8, v7, v6, v5, v4, v3, v2, cover_deprecated_v1]);

// EXTERNAL MODULE: ./node_modules/fast-average-color/dist/index.js
var dist = __webpack_require__(5027);
var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
;// CONCATENATED MODULE: ./node_modules/colord/index.mjs
var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return"string"==typeof r?r.length>0:"number"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u="deg"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},"hsl"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},"rgb"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},"hsl"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},"hsv"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return"string"==typeof r?N(r.trim(),y.string):"object"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):"","#"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?"rgba("+t+", "+n+", "+e+", "+u+")":"rgb("+t+", "+n+", "+e+")";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?"hsla("+t+", "+n+"%, "+e+"%, "+u+")":"hsl("+t+", "+n+"%, "+e+"%)";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return"number"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return"number"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};

;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs
/* harmony default export */ function names(e,f){var a={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b="black";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d="transparent"===r?"#0000":a[r];return d?new e(d).toRgb():null},"name"])}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js


/**
 * WordPress dependencies
 */

const postFeaturedImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z"
}));
/* harmony default export */ var post_featured_image = (postFeaturedImage);

;// CONCATENATED MODULE: external ["wp","notices"]
var external_wp_notices_namespaceObject = window["wp"]["notices"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit.js



/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */


k([names]);
const {
  __Visualizer: BoxControlVisualizer
} = external_wp_components_namespaceObject.__experimentalBoxControl;

function getInnerBlocksTemplate(attributes) {
  return [['core/paragraph', {
    align: 'center',
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…'),
    ...attributes
  }]];
}

function retrieveFastAverageColor() {
  if (!retrieveFastAverageColor.fastAverageColor) {
    retrieveFastAverageColor.fastAverageColor = new (dist_default())();
  }

  return retrieveFastAverageColor.fastAverageColor;
}

function CoverHeightInput(_ref) {
  let {
    onChange,
    onUnitChange,
    unit = 'px',
    value = ''
  } = _ref;
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
  const inputId = `block-cover-height-input-${instanceId}`;
  const isPx = unit === 'px';
  const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
    availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['px', 'em', 'rem', 'vw', 'vh'],
    defaultValues: {
      px: 430,
      '%': 20,
      em: 20,
      rem: 20,
      vw: 20,
      vh: 50
    }
  });

  const handleOnChange = unprocessedValue => {
    const inputValue = unprocessedValue !== '' ? parseFloat(unprocessedValue) : undefined;

    if (isNaN(inputValue) && inputValue !== undefined) {
      return;
    }

    onChange(inputValue);
  };

  const computedValue = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const [parsedQuantity] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
    return [parsedQuantity, unit].join('');
  }, [unit, value]);
  const min = isPx ? COVER_MIN_HEIGHT : 0;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Minimum height of cover'),
    id: inputId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    id: inputId,
    isResetValueOnUnitChange: true,
    min: min,
    onChange: handleOnChange,
    onUnitChange: onUnitChange,
    style: {
      maxWidth: 80
    },
    units: units,
    value: computedValue
  }));
}

const RESIZABLE_BOX_ENABLE_OPTION = {
  top: false,
  right: false,
  bottom: true,
  left: false,
  topRight: false,
  bottomRight: false,
  bottomLeft: false,
  topLeft: false
};

function ResizableCover(_ref2) {
  let {
    className,
    onResizeStart,
    onResize,
    onResizeStop,
    ...props
  } = _ref2;
  const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({
    className: classnames_default()(className, {
      'is-resizing': isResizing
    }),
    enable: RESIZABLE_BOX_ENABLE_OPTION,
    onResizeStart: (_event, _direction, elt) => {
      onResizeStart(elt.clientHeight);
      onResize(elt.clientHeight);
    },
    onResize: (_event, _direction, elt) => {
      onResize(elt.clientHeight);

      if (!isResizing) {
        setIsResizing(true);
      }
    },
    onResizeStop: (_event, _direction, elt) => {
      onResizeStop(elt.clientHeight);
      setIsResizing(false);
    }
  }, props));
}
/**
 * useCoverIsDark is a hook that returns a boolean variable specifying if the cover
 * background is dark or not.
 *
 * @param {?string} url          Url of the media background.
 * @param {?number} dimRatio     Transparency of the overlay color. If an image and
 *                               color are set, dimRatio is used to decide what is used
 *                               for background darkness checking purposes.
 * @param {?string} overlayColor String containing the overlay color value if one exists.
 * @param {?Object} elementRef   If a media background is set, elementRef should contain a reference to a
 *                               dom element that renders that media.
 *
 * @return {boolean} True if the cover background is considered "dark" and false otherwise.
 */


function useCoverIsDark(url) {
  let dimRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;
  let overlayColor = arguments.length > 2 ? arguments[2] : undefined;
  let elementRef = arguments.length > 3 ? arguments[3] : undefined;
  const [isDark, setIsDark] = (0,external_wp_element_namespaceObject.useState)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // If opacity is lower than 50 the dominant color is the image or video color,
    // so use that color for the dark mode computation.
    if (url && dimRatio <= 50 && elementRef.current) {
      retrieveFastAverageColor().getColorAsync(elementRef.current, color => {
        setIsDark(color.isDark);
      });
    }
  }, [url, url && dimRatio <= 50 && elementRef.current, setIsDark]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // If opacity is greater than 50 the dominant color is the overlay color,
    // so use that color for the dark mode computation.
    if (dimRatio > 50 || !url) {
      if (!overlayColor) {
        // If no overlay color exists the overlay color is black (isDark )
        setIsDark(true);
        return;
      }

      setIsDark(w(overlayColor).isDark());
    }
  }, [overlayColor, dimRatio > 50 || !url, setIsDark]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!url && !overlayColor) {
      // Reset isDark.
      setIsDark(false);
    }
  }, [!url && !overlayColor, setIsDark]);
  return isDark;
}

function mediaPosition(_ref3) {
  let {
    x,
    y
  } = _ref3;
  return `${Math.round(x * 100)}% ${Math.round(y * 100)}%`;
}
/**
 * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while
 * the media (image or video) is being uploaded and will not have an id allocated yet.
 *
 * @param {number} id  The id of the media.
 * @param {string} url The url of the media.
 *
 * @return {boolean} Is the URL a Blob URL.
 */


const isTemporaryMedia = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);

function CoverPlaceholder(_ref4) {
  let {
    disableMediaButtons = false,
    children,
    onSelectMedia,
    onError,
    style
  } = _ref4;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: library_cover
    }),
    labels: {
      title: (0,external_wp_i18n_namespaceObject.__)('Cover'),
      instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop onto this block, upload, or select existing media from your library.')
    },
    onSelect: onSelectMedia,
    accept: "image/*,video/*",
    allowedTypes: shared_ALLOWED_MEDIA_TYPES,
    disableMediaButtons: disableMediaButtons,
    onError: onError,
    style: style
  }, children);
}

function CoverEdit(_ref5) {
  var _useSetting, _styleAttribute$spaci, _styleAttribute$visua;

  let {
    attributes,
    clientId,
    isSelected,
    overlayColor,
    setAttributes,
    setOverlayColor,
    toggleSelection,
    context: {
      postId,
      postType
    }
  } = _ref5;
  const {
    contentPosition,
    id,
    useFeaturedImage,
    dimRatio,
    focalPoint,
    hasParallax,
    isDark,
    isRepeated,
    minHeight,
    minHeightUnit,
    style: styleAttribute,
    alt,
    allowedBlocks,
    templateLock
  } = attributes;
  const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
  const media = (0,external_wp_data_namespaceObject.useSelect)(select => featuredImage && select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
    context: 'view'
  }), [featuredImage]);
  const mediaUrl = media === null || media === void 0 ? void 0 : media.source_url; // instead of destructuring the attributes
  // we define the url and background type
  // depending on the value of the useFeaturedImage flag
  // to preview in edit the dynamic featured image

  const url = useFeaturedImage ? mediaUrl : attributes.url;
  const backgroundType = useFeaturedImage ? IMAGE_BACKGROUND_TYPE : attributes.backgroundType;
  const {
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const {
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);

  const {
    gradientClass,
    gradientValue,
    setGradient
  } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();

  const onSelectMedia = attributesFromMedia(setAttributes, dimRatio);
  const isUploadingMedia = isTemporaryMedia(id, url);
  const [prevMinHeightValue, setPrevMinHeightValue] = (0,external_wp_element_namespaceObject.useState)(minHeight);
  const [prevMinHeightUnit, setPrevMinHeightUnit] = (0,external_wp_element_namespaceObject.useState)(minHeightUnit);
  const isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100;

  const toggleMinFullHeight = () => {
    if (isMinFullHeight) {
      // If there aren't previous values, take the default ones.
      if (prevMinHeightUnit === 'vh' && prevMinHeightValue === 100) {
        return setAttributes({
          minHeight: undefined,
          minHeightUnit: undefined
        });
      } // Set the previous values of height.


      return setAttributes({
        minHeight: prevMinHeightValue,
        minHeightUnit: prevMinHeightUnit
      });
    }

    setPrevMinHeightValue(minHeight);
    setPrevMinHeightUnit(minHeightUnit); // Set full height.

    return setAttributes({
      minHeight: 100,
      minHeightUnit: 'vh'
    });
  };

  const toggleParallax = () => {
    setAttributes({
      hasParallax: !hasParallax,
      ...(!hasParallax ? {
        focalPoint: undefined
      } : {})
    });
  };

  const toggleIsRepeated = () => {
    setAttributes({
      isRepeated: !isRepeated
    });
  };

  const toggleUseFeaturedImage = () => {
    setAttributes({
      id: undefined,
      url: undefined,
      useFeaturedImage: !useFeaturedImage,
      dimRatio: dimRatio === 100 ? 50 : dimRatio,
      backgroundType: useFeaturedImage ? IMAGE_BACKGROUND_TYPE : undefined
    });
  };

  const onUploadError = message => {
    createErrorNotice(Array.isArray(message) ? message[2] : message, {
      type: 'snackbar'
    });
  };

  const isDarkElement = (0,external_wp_element_namespaceObject.useRef)();
  const isCoverDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // This side-effect should not create an undo level.
    __unstableMarkNextChangeAsNotPersistent();

    setAttributes({
      isDark: isCoverDark
    });
  }, [isCoverDark]);
  const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
  const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
  const minHeightWithUnit = minHeight && minHeightUnit ? `${minHeight}${minHeightUnit}` : minHeight;
  const isImgElement = !(hasParallax || isRepeated);
  const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : undefined),
    minHeight: minHeightWithUnit || undefined
  };
  const bgStyle = {
    backgroundColor: overlayColor.color
  };
  const mediaStyle = {
    objectPosition: focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined
  };
  const hasBackground = !!(url || overlayColor.color || gradientValue);
  const showFocalPointPicker = isVideoBackground || isImageBackground && (!hasParallax || isRepeated);

  const imperativeFocalPointPreview = value => {
    const [styleOfRef, property] = isDarkElement.current ? [isDarkElement.current.style, 'objectPosition'] : [ref.current.style, 'backgroundPosition'];
    styleOfRef[property] = mediaPosition(value);
  };

  const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId).innerBlocks.length > 0, [clientId]);
  const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockAlignmentMatrixControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Change content position'),
    value: contentPosition,
    onChange: nextPosition => setAttributes({
      contentPosition: nextPosition
    }),
    isDisabled: !hasInnerBlocks
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockFullHeightAligmentControl, {
    isActive: isMinFullHeight,
    onToggle: toggleMinFullHeight,
    isDisabled: !hasInnerBlocks
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    icon: post_featured_image,
    label: (0,external_wp_i18n_namespaceObject.__)('Use featured image'),
    isPressed: useFeaturedImage,
    onClick: toggleUseFeaturedImage
  }), !useFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: id,
    mediaURL: url,
    allowedTypes: shared_ALLOWED_MEDIA_TYPES,
    accept: "image/*,video/*",
    onSelect: onSelectMedia,
    name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add Media') : (0,external_wp_i18n_namespaceObject.__)('Replace')
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, !!url && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Media settings')
  }, isImageBackground && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Fixed background'),
    checked: hasParallax,
    onChange: toggleParallax
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Repeated background'),
    checked: isRepeated,
    onChange: toggleIsRepeated
  })), showFocalPointPicker && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FocalPointPicker, {
    label: (0,external_wp_i18n_namespaceObject.__)('Focal point picker'),
    url: url,
    value: focalPoint,
    onDragStart: imperativeFocalPointPreview,
    onDrag: imperativeFocalPointPreview,
    onChange: newFocalPoint => setAttributes({
      focalPoint: newFocalPoint
    })
  }), !useFeaturedImage && url && isImageBackground && isImgElement && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'),
    value: alt,
    onChange: newAlt => setAttributes({
      alt: newAlt
    }),
    help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
      href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
    }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.'))
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelRow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    isSmall: true,
    className: "block-library-cover__reset-button",
    onClick: () => setAttributes({
      url: undefined,
      id: undefined,
      backgroundType: undefined,
      focalPoint: undefined,
      hasParallax: undefined,
      isRepeated: undefined,
      useFeaturedImage: false
    })
  }, (0,external_wp_i18n_namespaceObject.__)('Clear Media')))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalPanelColorGradientSettings, {
    __experimentalHasMultipleOrigins: true,
    __experimentalIsRenderedInSidebar: true,
    title: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
    initialOpen: true,
    settings: [{
      colorValue: overlayColor.color,
      gradientValue,
      onColorChange: setOverlayColor,
      onGradientChange: setGradient,
      label: (0,external_wp_i18n_namespaceObject.__)('Color')
    }]
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Opacity'),
    value: dimRatio,
    onChange: newDimRation => setAttributes({
      dimRatio: newDimRation
    }),
    min: 0,
    max: 100,
    step: 10,
    required: true
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "dimensions"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
    hasValue: () => !!minHeight,
    label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'),
    onDeselect: () => setAttributes({
      minHeight: undefined,
      minHeightUnit: undefined
    }),
    resetAllFilter: () => ({
      minHeight: undefined,
      minHeightUnit: undefined
    }),
    isShownByDefault: true,
    panelId: clientId
  }, (0,external_wp_element_namespaceObject.createElement)(CoverHeightInput, {
    value: minHeight,
    unit: minHeightUnit,
    onChange: newMinHeight => setAttributes({
      minHeight: newMinHeight
    }),
    onUnitChange: nextUnit => setAttributes({
      minHeightUnit: nextUnit
    })
  }))));
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref
  }); // Check for fontSize support before we pass a fontSize attribute to the innerBlocks.

  const hasFontSizes = !!((_useSetting = (0,external_wp_blockEditor_namespaceObject.useSetting)('typography.fontSizes')) !== null && _useSetting !== void 0 && _useSetting.length);
  const innerBlocksTemplate = getInnerBlocksTemplate({
    fontSize: hasFontSizes ? 'large' : undefined
  });
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
    className: 'wp-block-cover__inner-container'
  }, {
    template: innerBlocksTemplate,
    templateInsertUpdatesSelection: true,
    allowedBlocks,
    templateLock
  });

  if (!hasInnerBlocks && !hasBackground) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
      className: classnames_default()('is-placeholder', blockProps.className)
    }), (0,external_wp_element_namespaceObject.createElement)(CoverPlaceholder, {
      onSelectMedia: onSelectMedia,
      onError: onUploadError,
      style: {
        minHeight: minHeightWithUnit || undefined
      }
    }, (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-cover__placeholder-background-options"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ColorPalette, {
      disableCustomColors: true,
      value: overlayColor.color,
      onChange: setOverlayColor,
      clearable: false
    }))), (0,external_wp_element_namespaceObject.createElement)(ResizableCover, {
      className: "block-library-cover__resize-container",
      onResizeStart: () => {
        setAttributes({
          minHeightUnit: 'px'
        });
        toggleSelection(false);
      },
      onResize: value => {
        setAttributes({
          minHeight: value
        });
      },
      onResizeStop: newMinHeight => {
        toggleSelection(true);
        setAttributes({
          minHeight: newMinHeight
        });
      },
      showHandle: isSelected
    })));
  }

  const classes = classnames_default()({
    'is-dark-theme': isDark,
    'is-light': !isDark,
    'is-transient': isUploadingMedia,
    'has-parallax': hasParallax,
    'is-repeated': isRepeated,
    'has-custom-content-position': !isContentPositionCenter(contentPosition)
  }, getPositionClassName(contentPosition));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
    className: classnames_default()(classes, blockProps.className),
    style: { ...style,
      ...blockProps.style
    },
    "data-url": url
  }), (0,external_wp_element_namespaceObject.createElement)(BoxControlVisualizer, {
    values: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$spaci = styleAttribute.spacing) === null || _styleAttribute$spaci === void 0 ? void 0 : _styleAttribute$spaci.padding,
    showValues: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$visua = styleAttribute.visualizers) === null || _styleAttribute$visua === void 0 ? void 0 : _styleAttribute$visua.padding,
    className: "block-library-cover__padding-visualizer"
  }), (0,external_wp_element_namespaceObject.createElement)(ResizableCover, {
    className: "block-library-cover__resize-container",
    onResizeStart: () => {
      setAttributes({
        minHeightUnit: 'px'
      });
      toggleSelection(false);
    },
    onResize: value => {
      setAttributes({
        minHeight: value
      });
    },
    onResizeStop: newMinHeight => {
      toggleSelection(true);
      setAttributes({
        minHeight: newMinHeight
      });
    },
    showHandle: isSelected
  }), (0,external_wp_element_namespaceObject.createElement)("span", {
    "aria-hidden": "true",
    className: classnames_default()('wp-block-cover__background', dimRatioToClass(dimRatio), {
      [overlayColor.class]: overlayColor.class,
      'has-background-dim': dimRatio !== undefined,
      // For backwards compatibility. Former versions of the Cover Block applied
      // `.wp-block-cover__gradient-background` in the presence of
      // media, a gradient and a dim.
      'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
      'has-background-gradient': gradientValue,
      [gradientClass]: gradientClass
    }),
    style: {
      backgroundImage: gradientValue,
      ...bgStyle
    }
  }), url && isImageBackground && isImgElement && (0,external_wp_element_namespaceObject.createElement)("img", {
    ref: isDarkElement,
    className: "wp-block-cover__image-background",
    alt: alt,
    src: url,
    style: mediaStyle
  }), url && isVideoBackground && (0,external_wp_element_namespaceObject.createElement)("video", {
    ref: isDarkElement,
    className: "wp-block-cover__video-background",
    autoPlay: true,
    muted: true,
    loop: true,
    src: url,
    style: mediaStyle
  }), isUploadingMedia && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(CoverPlaceholder, {
    disableMediaButtons: true,
    onSelectMedia: onSelectMedia,
    onError: onUploadError
  }), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
}

/* harmony default export */ var cover_edit = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
  overlayColor: 'background-color'
})])(CoverEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function cover_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    backgroundType,
    gradient,
    contentPosition,
    customGradient,
    customOverlayColor,
    dimRatio,
    focalPoint,
    useFeaturedImage,
    hasParallax,
    isDark,
    isRepeated,
    overlayColor,
    url,
    alt,
    id,
    minHeight: minHeightProp,
    minHeightUnit
  } = attributes;
  const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);

  const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);

  const minHeight = minHeightProp && minHeightUnit ? `${minHeightProp}${minHeightUnit}` : minHeightProp;
  const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
  const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
  const isImgElement = !(hasParallax || isRepeated);
  const style = { ...(isImageBackground && !isImgElement && !useFeaturedImage ? backgroundImageStyles(url) : {}),
    minHeight: minHeight || undefined
  };
  const bgStyle = {
    backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
    background: customGradient ? customGradient : undefined
  };
  const objectPosition = // prettier-ignore
  focalPoint && isImgElement ? `${Math.round(focalPoint.x * 100)}% ${Math.round(focalPoint.y * 100)}%` : undefined;
  const classes = classnames_default()({
    'is-light': !isDark,
    'has-parallax': hasParallax,
    'is-repeated': isRepeated,
    'has-custom-content-position': !isContentPositionCenter(contentPosition)
  }, getPositionClassName(contentPosition));
  const gradientValue = gradient || customGradient;
  return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className: classes,
    style
  }), (0,external_wp_element_namespaceObject.createElement)("span", {
    "aria-hidden": "true",
    className: classnames_default()('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
      'has-background-dim': dimRatio !== undefined,
      // For backwards compatibility. Former versions of the Cover Block applied
      // `.wp-block-cover__gradient-background` in the presence of
      // media, a gradient and a dim.
      'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
      'has-background-gradient': gradientValue,
      [gradientClass]: gradientClass
    }),
    style: bgStyle
  }), !useFeaturedImage && isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
    className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-${id}` : null),
    alt: alt,
    src: url,
    style: {
      objectPosition
    },
    "data-object-fit": "cover",
    "data-object-position": objectPosition
  }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
    className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
    autoPlay: true,
    muted: true,
    loop: true,
    playsInline: true,
    src: url,
    style: {
      objectPosition
    },
    "data-object-fit": "cover",
    "data-object-position": objectPosition
  }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
    className: 'wp-block-cover__inner-container'
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/transforms.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const cover_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/image'],
    transform: _ref => {
      var _style$color;

      let {
        caption,
        url,
        alt,
        align,
        id,
        anchor,
        style
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
        dimRatio: 50,
        url,
        alt,
        align,
        id,
        anchor,
        style: {
          color: {
            duotone: style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.duotone
          }
        }
      }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
        content: caption,
        fontSize: 'large',
        align: 'center'
      })]);
    }
  }, {
    type: 'block',
    blocks: ['core/video'],
    transform: _ref2 => {
      let {
        caption,
        src,
        align,
        id,
        anchor
      } = _ref2;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
        dimRatio: 50,
        url: src,
        align,
        id,
        backgroundType: VIDEO_BACKGROUND_TYPE,
        anchor
      }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
        content: caption,
        fontSize: 'large',
        align: 'center'
      })]);
    }
  }, {
    type: 'block',
    blocks: ['core/group'],
    transform: (attributes, innerBlocks) => {
      var _style$color2, _style$color3, _style$color4, _style$color5, _attributes$style;

      const {
        align,
        anchor,
        backgroundColor,
        gradient,
        style
      } = attributes; // If no background or gradient color is provided, default to 50% opacity.
      // This matches the styling of a Cover block with a background image,
      // in the state where a background image has been removed.

      const dimRatio = backgroundColor || gradient || style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background || style !== null && style !== void 0 && (_style$color3 = style.color) !== null && _style$color3 !== void 0 && _style$color3.gradient ? undefined : 50; // Move the background or gradient color to the parent Cover block.

      const parentAttributes = {
        align,
        anchor,
        dimRatio,
        overlayColor: backgroundColor,
        customOverlayColor: style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background,
        gradient,
        customGradient: style === null || style === void 0 ? void 0 : (_style$color5 = style.color) === null || _style$color5 === void 0 ? void 0 : _style$color5.gradient
      };
      const attributesWithoutBackgroundColors = { ...attributes,
        backgroundColor: undefined,
        gradient: undefined,
        style: { ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
          color: { ...(attributes === null || attributes === void 0 ? void 0 : (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : _attributes$style.color),
            background: undefined,
            gradient: undefined
          }
        }
      }; // Preserve the block by nesting it within the Cover block,
      // instead of converting the Group block directly to the Cover block.

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', parentAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/group', attributesWithoutBackgroundColors, innerBlocks)]);
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/image'],
    isMatch: _ref3 => {
      let {
        backgroundType,
        url,
        overlayColor,
        customOverlayColor,
        gradient,
        customGradient
      } = _ref3;

      if (url) {
        // If a url exists the transform could happen if that URL represents an image background.
        return backgroundType === IMAGE_BACKGROUND_TYPE;
      } // If a url is not set the transform could happen if the cover has no background color or gradient;


      return !overlayColor && !customOverlayColor && !gradient && !customGradient;
    },
    transform: _ref4 => {
      var _style$color6;

      let {
        title,
        url,
        alt,
        align,
        id,
        anchor,
        style
      } = _ref4;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
        caption: title,
        url,
        alt,
        align,
        id,
        anchor,
        style: {
          color: {
            duotone: style === null || style === void 0 ? void 0 : (_style$color6 = style.color) === null || _style$color6 === void 0 ? void 0 : _style$color6.duotone
          }
        }
      });
    }
  }, {
    type: 'block',
    blocks: ['core/video'],
    isMatch: _ref5 => {
      let {
        backgroundType,
        url,
        overlayColor,
        customOverlayColor,
        gradient,
        customGradient
      } = _ref5;

      if (url) {
        // If a url exists the transform could happen if that URL represents a video background.
        return backgroundType === VIDEO_BACKGROUND_TYPE;
      } // If a url is not set the transform could happen if the cover has no background color or gradient;


      return !overlayColor && !customOverlayColor && !gradient && !customGradient;
    },
    transform: _ref6 => {
      let {
        title,
        url,
        align,
        id,
        anchor
      } = _ref6;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
        caption: title,
        src: url,
        id,
        align,
        anchor
      });
    }
  }]
};
/* harmony default export */ var cover_transforms = (cover_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const cover_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/cover",
  title: "Cover",
  category: "media",
  description: "Add an image or video with a text overlay \u2014 great for headers.",
  textdomain: "default",
  attributes: {
    url: {
      type: "string"
    },
    useFeaturedImage: {
      type: "boolean",
      "default": false
    },
    id: {
      type: "number"
    },
    alt: {
      type: "string",
      source: "attribute",
      selector: "img",
      attribute: "alt",
      "default": ""
    },
    hasParallax: {
      type: "boolean",
      "default": false
    },
    isRepeated: {
      type: "boolean",
      "default": false
    },
    dimRatio: {
      type: "number",
      "default": 100
    },
    overlayColor: {
      type: "string"
    },
    customOverlayColor: {
      type: "string"
    },
    backgroundType: {
      type: "string",
      "default": "image"
    },
    focalPoint: {
      type: "object"
    },
    minHeight: {
      type: "number"
    },
    minHeightUnit: {
      type: "string"
    },
    gradient: {
      type: "string"
    },
    customGradient: {
      type: "string"
    },
    contentPosition: {
      type: "string"
    },
    isDark: {
      type: "boolean",
      "default": true
    },
    allowedBlocks: {
      type: "array"
    },
    templateLock: {
      type: ["string", "boolean"],
      "enum": ["all", "insert", false]
    }
  },
  usesContext: ["postId", "postType"],
  supports: {
    anchor: true,
    align: true,
    html: false,
    spacing: {
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    color: {
      __experimentalDuotone: "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
      text: false,
      background: false
    }
  },
  editorStyle: "wp-block-cover-editor",
  style: "wp-block-cover"
};


const {
  name: cover_name
} = cover_metadata;

const cover_settings = {
  icon: library_cover,
  example: {
    attributes: {
      customOverlayColor: '#065174',
      dimRatio: 40,
      url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
    },
    innerBlocks: [{
      name: 'core/paragraph',
      attributes: {
        customFontSize: 48,
        content: (0,external_wp_i18n_namespaceObject.__)('<strong>Snow Patrol</strong>'),
        align: 'center'
      }
    }]
  },
  transforms: cover_transforms,
  save: cover_save_save,
  edit: cover_edit,
  deprecated: cover_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js


/**
 * WordPress dependencies
 */

const pencil = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"
}));
/* harmony default export */ var library_pencil = (pencil);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js
/**
 * Internal dependencies
 */

/* harmony default export */ var library_edit = (library_pencil);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js


/**
 * WordPress dependencies
 */





function getResponsiveHelp(checked) {
  return checked ? (0,external_wp_i18n_namespaceObject.__)('This embed will preserve its aspect ratio when the browser is resized.') : (0,external_wp_i18n_namespaceObject.__)('This embed may not preserve its aspect ratio when the browser is resized.');
}

const EmbedControls = _ref => {
  let {
    blockSupportsResponsive,
    showEditButton,
    themeSupportsResponsive,
    allowResponsive,
    toggleResponsive,
    switchBackToURLInput
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, showEditButton && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    className: "components-toolbar__control",
    label: (0,external_wp_i18n_namespaceObject.__)('Edit URL'),
    icon: library_edit,
    onClick: switchBackToURLInput
  }))), themeSupportsResponsive && blockSupportsResponsive && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Media settings'),
    className: "blocks-responsive"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Resize for smaller devices'),
    checked: allowResponsive,
    help: getResponsiveHelp,
    onChange: toggleResponsive
  }))));
};

/* harmony default export */ var embed_controls = (EmbedControls);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/icons.js


/**
 * WordPress dependencies
 */

const embedContentIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z"
}));
const embedAudioIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z"
}));
const embedPhotoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"
}));
const embedVideoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z"
}));
const embedTwitterIcon = {
  foreground: '#1da1f2',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z"
  })))
};
const embedYouTubeIcon = {
  foreground: '#ff0000',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z"
  }))
};
const embedFacebookIcon = {
  foreground: '#3b5998',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z"
  }))
};
const embedInstagramIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z"
})));
const embedWordPressIcon = {
  foreground: '#0073AA',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z"
  })))
};
const embedSpotifyIcon = {
  foreground: '#1db954',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325"
  }))
};
const embedFlickrIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z"
}));
const embedVimeoIcon = {
  foreground: '#1ab7ea',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z"
  })))
};
const embedRedditIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M22 11.816c0-1.256-1.02-2.277-2.277-2.277-.593 0-1.122.24-1.526.613-1.48-.965-3.455-1.594-5.647-1.69l1.17-3.702 3.18.75c.01 1.027.847 1.86 1.877 1.86 1.035 0 1.877-.84 1.877-1.877 0-1.035-.842-1.877-1.877-1.877-.77 0-1.43.466-1.72 1.13L13.55 3.92c-.204-.047-.4.067-.46.26l-1.35 4.27c-2.317.037-4.412.67-5.97 1.67-.402-.355-.917-.58-1.493-.58C3.02 9.54 2 10.56 2 11.815c0 .814.433 1.523 1.078 1.925-.037.222-.06.445-.06.673 0 3.292 4.01 5.97 8.94 5.97s8.94-2.678 8.94-5.97c0-.214-.02-.424-.052-.632.687-.39 1.154-1.12 1.154-1.964zm-3.224-7.422c.606 0 1.1.493 1.1 1.1s-.493 1.1-1.1 1.1-1.1-.494-1.1-1.1.493-1.1 1.1-1.1zm-16 7.422c0-.827.673-1.5 1.5-1.5.313 0 .598.103.838.27-.85.675-1.477 1.478-1.812 2.36-.32-.274-.525-.676-.525-1.13zm9.183 7.79c-4.502 0-8.165-2.33-8.165-5.193S7.457 9.22 11.96 9.22s8.163 2.33 8.163 5.193-3.663 5.193-8.164 5.193zM20.635 13c-.326-.89-.948-1.7-1.797-2.383.247-.186.55-.3.882-.3.827 0 1.5.672 1.5 1.5 0 .482-.23.91-.586 1.184zm-11.64 1.704c-.76 0-1.397-.616-1.397-1.376 0-.76.636-1.397 1.396-1.397.76 0 1.376.638 1.376 1.398 0 .76-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.615 1.376-1.375 1.376s-1.4-.616-1.4-1.376c0-.76.64-1.397 1.4-1.397.76 0 1.376.638 1.376 1.398zm-1.17 3.38c.15.152.15.398 0 .55-.675.674-1.728 1.002-3.22 1.002l-.01-.002-.012.002c-1.492 0-2.544-.328-3.218-1.002-.152-.152-.152-.398 0-.55.152-.152.4-.15.55 0 .52.52 1.394.775 2.67.775l.01.002.01-.002c1.276 0 2.15-.253 2.67-.775.15-.152.398-.152.55 0z"
}));
const embedTumblrIcon = {
  foreground: '#35465c',
  src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    viewBox: "0 0 24 24"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: "M19 3H5a2 2 0 00-2 2v14c0 1.1.9 2 2 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-5.69 14.66c-2.72 0-3.1-1.9-3.1-3.16v-3.56H8.49V8.99c1.7-.62 2.54-1.99 2.64-2.87 0-.06.06-.41.06-.58h1.9v3.1h2.17v2.3h-2.18v3.1c0 .47.13 1.3 1.2 1.26h1.1v2.36c-1.01.02-2.07 0-2.07 0z"
  }))
};
const embedAmazonIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M18.42 14.58c-.51-.66-1.05-1.23-1.05-2.5V7.87c0-1.8.15-3.45-1.2-4.68-1.05-1.02-2.79-1.35-4.14-1.35-2.6 0-5.52.96-6.12 4.14-.06.36.18.54.4.57l2.66.3c.24-.03.42-.27.48-.5.24-1.12 1.17-1.63 2.2-1.63.56 0 1.22.21 1.55.7.4.56.33 1.31.33 1.97v.36c-1.59.18-3.66.27-5.16.93a4.63 4.63 0 0 0-2.93 4.44c0 2.82 1.8 4.23 4.1 4.23 1.95 0 3.03-.45 4.53-1.98.51.72.66 1.08 1.59 1.83.18.09.45.09.63-.1v.04l2.1-1.8c.24-.21.2-.48.03-.75zm-5.4-1.2c-.45.75-1.14 1.23-1.92 1.23-1.05 0-1.65-.81-1.65-1.98 0-2.31 2.1-2.73 4.08-2.73v.6c0 1.05.03 1.92-.5 2.88z"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M21.69 19.2a17.62 17.62 0 0 1-21.6-1.57c-.23-.2 0-.5.28-.33a23.88 23.88 0 0 0 20.93 1.3c.45-.19.84.3.39.6z"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M22.8 17.96c-.36-.45-2.22-.2-3.1-.12-.23.03-.3-.18-.05-.36 1.5-1.05 3.96-.75 4.26-.39.3.36-.1 2.82-1.5 4.02-.21.18-.42.1-.3-.15.3-.8 1.02-2.58.69-3z"
}));
const embedAnimotoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m.0206909 21 19.8160091-13.07806 3.5831 6.20826z",
  fill: "#4bc7ee"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m23.7254 19.0205-10.1074-17.18468c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418h22.5655c1.279 0 1.8019-.8905 1.1599-1.9795z",
  fill: "#d4cdcb"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m.0206909 21 15.2439091-16.38571 4.3029 7.32271z",
  fill: "#c3d82e"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z",
  fill: "#e4ecb0"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m.0206909 21 19.5468091-9.063 1.6621 2.8344z",
  fill: "#209dbd"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m.0206909 21 17.9209091-11.82623 1.6259 2.76323z",
  fill: "#7cb3c9"
}));
const embedDailymotionIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "m12.1479 18.5957c-2.4949 0-4.28131-1.7558-4.28131-4.0658 0-2.2176 1.78641-4.0965 4.09651-4.0965 2.2793 0 4.0349 1.7864 4.0349 4.1581 0 2.2794-1.7556 4.0042-3.8501 4.0042zm8.3521-18.5957-4.5329 1v7c-1.1088-1.41691-2.8028-1.8787-4.8049-1.8787-2.09443 0-3.97329.76993-5.5133 2.27917-1.72483 1.66323-2.6489 3.78863-2.6489 6.16033 0 2.5873.98562 4.8049 2.89526 6.499 1.44763 1.2936 3.17251 1.9402 5.17454 1.9402 1.9713 0 3.4498-.5236 4.8973-1.9402v1.9402h4.5329c0-7.6359 0-15.3641 0-23z",
  fill: "#333436"
}));
const embedPinterestIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"
}));
const embedWolframIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  viewBox: "0 0 44 44"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M32.59521,22.001l4.31885-4.84473-6.34131-1.38379.646-6.459-5.94336,2.61035L22,6.31934l-3.27344,5.60351L12.78418,9.3125l.645,6.458L7.08643,17.15234,11.40479,21.999,7.08594,26.84375l6.34131,1.38379-.64551,6.458,5.94287-2.60938L22,37.68066l3.27344-5.60351,5.94287,2.61035-.64551-6.458,6.34277-1.38183Zm.44385,2.75244L30.772,23.97827l-1.59558-2.07391,1.97888.735Zm-8.82147,6.1579L22.75,33.424V30.88977l1.52228-2.22168ZM18.56226,13.48816,19.819,15.09534l-2.49219-.88642L15.94037,12.337Zm6.87719.00116,2.62043-1.15027-1.38654,1.86981L24.183,15.0946Zm3.59357,2.6029-1.22546,1.7381.07525-2.73486,1.44507-1.94867ZM22,29.33008l-2.16406-3.15686L22,23.23688l2.16406,2.93634Zm-4.25458-9.582-.10528-3.836,3.60986,1.284v3.73242Zm5.00458-2.552,3.60986-1.284-.10528,3.836L22.75,20.92853Zm-7.78174-1.10559-.29352-2.94263,1.44245,1.94739.07519,2.73321Zm2.30982,5.08319,3.50817,1.18164-2.16247,2.9342-3.678-1.08447Zm2.4486,7.49285L21.25,30.88977v2.53485L19.78052,30.91Zm3.48707-6.31121,3.50817-1.18164,2.33228,3.03137-3.678,1.08447Zm10.87219-4.28113-2.714,3.04529L28.16418,19.928l1.92176-2.72565ZM24.06036,12.81769l-2.06012,2.6322-2.059-2.63318L22,9.292ZM9.91455,18.07227l4.00079-.87195,1.921,2.72735-3.20794,1.19019Zm2.93024,4.565,1.9801-.73462L13.228,23.97827l-2.26838.77429Zm-1.55591,3.58819L13.701,25.4021l2.64935.78058-2.14447.67853Zm3.64868,1.977L18.19,27.17334l.08313,3.46332L14.52979,32.2793Zm10.7876,2.43549.08447-3.464,3.25165,1.03052.407,4.07684Zm4.06824-3.77478-2.14545-.68,2.65063-.781,2.41266.825Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js


/**
 * WordPress dependencies
 */


const EmbedLoading = () => (0,external_wp_element_namespaceObject.createElement)("div", {
  className: "wp-block-embed is-loading"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));

/* harmony default export */ var embed_loading = (EmbedLoading);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js


/**
 * WordPress dependencies
 */




const EmbedPlaceholder = _ref => {
  let {
    icon,
    label,
    value,
    onSubmit,
    onChange,
    cannotEmbed,
    fallback,
    tryAgain
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: icon,
      showColors: true
    }),
    label: label,
    className: "wp-block-embed",
    instructions: (0,external_wp_i18n_namespaceObject.__)('Paste a link to the content you want to display on your site.')
  }, (0,external_wp_element_namespaceObject.createElement)("form", {
    onSubmit: onSubmit
  }, (0,external_wp_element_namespaceObject.createElement)("input", {
    type: "url",
    value: value || '',
    className: "components-placeholder__input",
    "aria-label": label,
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL to embed here…'),
    onChange: onChange
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "primary",
    type: "submit"
  }, (0,external_wp_i18n_namespaceObject._x)('Embed', 'button label'))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "components-placeholder__learn-more"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
    href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/embeds/')
  }, (0,external_wp_i18n_namespaceObject.__)('Learn more about embeds'))), cannotEmbed && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "components-placeholder__error"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "components-placeholder__instructions"
  }, (0,external_wp_i18n_namespaceObject.__)('Sorry, this content could not be embedded.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    onClick: tryAgain
  }, (0,external_wp_i18n_namespaceObject._x)('Try again', 'button label')), ' ', (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    onClick: fallback
  }, (0,external_wp_i18n_namespaceObject._x)('Convert to link', 'button label'))));
};

/* harmony default export */ var embed_placeholder = (EmbedPlaceholder);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js



/**
 * WordPress dependencies
 */


/** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */

const attributeMap = {
  class: 'className',
  frameborder: 'frameBorder',
  marginheight: 'marginHeight',
  marginwidth: 'marginWidth'
};
function WpEmbedPreview(_ref) {
  let {
    html
  } = _ref;
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const props = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const doc = new window.DOMParser().parseFromString(html, 'text/html');
    const iframe = doc.querySelector('iframe');
    const iframeProps = {};
    if (!iframe) return iframeProps;
    Array.from(iframe.attributes).forEach(_ref2 => {
      let {
        name,
        value
      } = _ref2;
      if (name === 'style') return;
      iframeProps[attributeMap[name] || name] = value;
    });
    return iframeProps;
  }, [html]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      ownerDocument
    } = ref.current;
    const {
      defaultView
    } = ownerDocument;
    /**
     * Checks for WordPress embed events signaling the height change when
     * iframe content loads or iframe's window is resized.  The event is
     * sent from WordPress core via the window.postMessage API.
     *
     * References:
     * window.postMessage:
     * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
     * WordPress core embed-template on load:
     * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143
     * WordPress core embed-template on resize:
     * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187
     *
     * @param {MessageEvent} event Message event.
     */

    function resizeWPembeds(_ref3) {
      let {
        data: {
          secret,
          message,
          value
        } = {}
      } = _ref3;

      if (message !== 'height' || secret !== props['data-secret']) {
        return;
      }

      ref.current.height = value;
    }

    defaultView.addEventListener('message', resizeWPembeds);
    return () => {
      defaultView.removeEventListener('message', resizeWPembeds);
    };
  }, []);
  return (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-embed__wrapper"
  }, (0,external_wp_element_namespaceObject.createElement)("iframe", _extends({
    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]),
    title: props.title
  }, props)));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js


/**
 * Internal dependencies
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



class EmbedPreview extends external_wp_element_namespaceObject.Component {
  constructor() {
    super(...arguments);
    this.hideOverlay = this.hideOverlay.bind(this);
    this.state = {
      interactive: false
    };
  }

  static getDerivedStateFromProps(nextProps, state) {
    if (!nextProps.isSelected && state.interactive) {
      // We only want to change this when the block is not selected, because changing it when
      // the block becomes selected makes the overlap disappear too early. Hiding the overlay
      // happens on mouseup when the overlay is clicked.
      return {
        interactive: false
      };
    }

    return null;
  }

  hideOverlay() {
    // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop
    // changing, because that happens on mouse down, and the overlay immediately disappears,
    // and the mouse event can end up in the preview content. We can't use onClick on
    // the overlay to hide it either, because then the editor misses the mouseup event, and
    // thinks we're multi-selecting blocks.
    this.setState({
      interactive: true
    });
  }

  render() {
    const {
      preview,
      previewable,
      url,
      type,
      caption,
      onCaptionChange,
      isSelected,
      className,
      icon,
      label,
      insertBlocksAfter
    } = this.props;
    const {
      scripts
    } = preview;
    const {
      interactive
    } = this.state;
    const html = 'photo' === type ? getPhotoHtml(preview) : preview.html;
    const parsedHost = new URL(url).host.split('.');
    const parsedHostBaseUrl = parsedHost.splice(parsedHost.length - 2, parsedHost.length - 1).join('.');
    const iframeTitle = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: host providing embed content e.g: www.youtube.com
    (0,external_wp_i18n_namespaceObject.__)('Embedded content from %s'), parsedHostBaseUrl);
    const sandboxClassnames = dedupe_default()(type, className, 'wp-block-embed__wrapper'); // Disabled because the overlay div doesn't actually have a role or functionality
    // as far as the user is concerned. We're just catching the first click so that
    // the block can be selected without interacting with the embed preview that the overlay covers.

    /* eslint-disable jsx-a11y/no-static-element-interactions */

    const embedWrapper = 'wp-embed' === type ? (0,external_wp_element_namespaceObject.createElement)(WpEmbedPreview, {
      html: html
    }) : (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-embed__wrapper"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SandBox, {
      html: html,
      scripts: scripts,
      title: iframeTitle,
      type: sandboxClassnames,
      onFocus: this.hideOverlay
    }), !interactive && (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "block-library-embed__interactive-overlay",
      onMouseUp: this.hideOverlay
    }));
    /* eslint-enable jsx-a11y/no-static-element-interactions */

    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: dedupe_default()(className, 'wp-block-embed', {
        'is-type-video': 'video' === type
      })
    }, previewable ? embedWrapper : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
        icon: icon,
        showColors: true
      }),
      label: label
    }, (0,external_wp_element_namespaceObject.createElement)("p", {
      className: "components-placeholder__error"
    }, (0,external_wp_element_namespaceObject.createElement)("a", {
      href: url
    }, url)), (0,external_wp_element_namespaceObject.createElement)("p", {
      className: "components-placeholder__error"
    }, (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: host providing embed content e.g: www.youtube.com */
    (0,external_wp_i18n_namespaceObject.__)("Embedded content from %s can't be previewed in the editor."), parsedHostBaseUrl))), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
      tagName: "figcaption",
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
      value: caption,
      onChange: onCaptionChange,
      inlineToolbar: true,
      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
    }));
  }

}

/* harmony default export */ var embed_preview = (EmbedPreview);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/edit.js


/**
 * Internal dependencies
 */






/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








const EmbedEdit = props => {
  const {
    attributes: {
      providerNameSlug,
      previewable,
      responsive,
      url: attributesUrl
    },
    attributes,
    isSelected,
    onReplace,
    setAttributes,
    insertBlocksAfter,
    onFocus
  } = props;
  const defaultEmbedInfo = {
    title: (0,external_wp_i18n_namespaceObject._x)('Embed', 'block title'),
    icon: embedContentIcon
  };
  const {
    icon,
    title
  } = getEmbedInfoByProvider(providerNameSlug) || defaultEmbedInfo;
  const [url, setURL] = (0,external_wp_element_namespaceObject.useState)(attributesUrl);
  const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    invalidateResolution
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    preview,
    fetching,
    themeSupportsResponsive,
    cannotEmbed
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _embedPreview$data;

    const {
      getEmbedPreview,
      isPreviewEmbedFallback,
      isRequestingEmbedPreview,
      getThemeSupports
    } = select(external_wp_coreData_namespaceObject.store);

    if (!attributesUrl) {
      return {
        fetching: false,
        cannotEmbed: false
      };
    }

    const embedPreview = getEmbedPreview(attributesUrl);
    const previewIsFallback = isPreviewEmbedFallback(attributesUrl); // The external oEmbed provider does not exist. We got no type info and no html.

    const badEmbedProvider = (embedPreview === null || embedPreview === void 0 ? void 0 : embedPreview.html) === false && (embedPreview === null || embedPreview === void 0 ? void 0 : embedPreview.type) === undefined; // Some WordPress URLs that can't be embedded will cause the API to return
    // a valid JSON response with no HTML and `data.status` set to 404, rather
    // than generating a fallback response as other embeds do.

    const wordpressCantEmbed = (embedPreview === null || embedPreview === void 0 ? void 0 : (_embedPreview$data = embedPreview.data) === null || _embedPreview$data === void 0 ? void 0 : _embedPreview$data.status) === 404;
    const validPreview = !!embedPreview && !badEmbedProvider && !wordpressCantEmbed;
    return {
      preview: validPreview ? embedPreview : undefined,
      fetching: isRequestingEmbedPreview(attributesUrl),
      themeSupportsResponsive: getThemeSupports()['responsive-embeds'],
      cannotEmbed: !validPreview || previewIsFallback
    };
  }, [attributesUrl]);
  /**
   * @return {Object} Attributes derived from the preview, merged with the current attributes.
   */

  const getMergedAttributes = () => {
    const {
      allowResponsive,
      className
    } = attributes;
    return { ...attributes,
      ...getAttributesFromPreview(preview, title, className, responsive, allowResponsive)
    };
  };

  const toggleResponsive = () => {
    const {
      allowResponsive,
      className
    } = attributes;
    const {
      html
    } = preview;
    const newAllowResponsive = !allowResponsive;
    setAttributes({
      allowResponsive: newAllowResponsive,
      className: getClassNames(html, className, responsive && newAllowResponsive)
    });
  };

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!(preview !== null && preview !== void 0 && preview.html) || !cannotEmbed || fetching) {
      return;
    } // At this stage, we're not fetching the preview and know it can't be embedded,
    // so try removing any trailing slash, and resubmit.


    const newURL = attributesUrl.replace(/\/$/, '');
    setURL(newURL);
    setIsEditingURL(false);
    setAttributes({
      url: newURL
    });
  }, [preview === null || preview === void 0 ? void 0 : preview.html, attributesUrl]); // Handle incoming preview.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (preview && !isEditingURL) {
      // Even though we set attributes that get derived from the preview,
      // we don't access them directly because for the initial render,
      // the `setAttributes` call will not have taken effect. If we're
      // rendering responsive content, setting the responsive classes
      // after the preview has been rendered can result in unwanted
      // clipping or scrollbars. The `getAttributesFromPreview` function
      // that `getMergedAttributes` uses is memoized so that we're not
      // calculating them on every render.
      setAttributes(getMergedAttributes());

      if (onReplace) {
        const upgradedBlock = createUpgradedEmbedBlock(props, getMergedAttributes());

        if (upgradedBlock) {
          onReplace(upgradedBlock);
        }
      }
    }
  }, [preview, isEditingURL]);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();

  if (fetching) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_loading, null));
  } // translators: %s: type of embed e.g: "YouTube", "Twitter", etc. "Embed" is used when no specific type exists


  const label = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s URL'), title); // No preview, or we can't embed the current URL, or we've clicked the edit button.

  const showEmbedPlaceholder = !preview || cannotEmbed || isEditingURL;

  if (showEmbedPlaceholder) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_placeholder, {
      icon: icon,
      label: label,
      onFocus: onFocus,
      onSubmit: event => {
        if (event) {
          event.preventDefault();
        }

        setIsEditingURL(false);
        setAttributes({
          url
        });
      },
      value: url,
      cannotEmbed: cannotEmbed,
      onChange: event => setURL(event.target.value),
      fallback: () => fallback(url, onReplace),
      tryAgain: () => {
        invalidateResolution('getEmbedPreview', [url]);
      }
    }));
  } // Even though we set attributes that get derived from the preview,
  // we don't access them directly because for the initial render,
  // the `setAttributes` call will not have taken effect. If we're
  // rendering responsive content, setting the responsive classes
  // after the preview has been rendered can result in unwanted
  // clipping or scrollbars. The `getAttributesFromPreview` function
  // that `getMergedAttributes` uses is memoized so that we're not
  // calculating them on every render.


  const {
    caption,
    type,
    allowResponsive,
    className: classFromPreview
  } = getMergedAttributes();
  const className = classnames_default()(classFromPreview, props.className);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(embed_controls, {
    showEditButton: preview && !cannotEmbed,
    themeSupportsResponsive: themeSupportsResponsive,
    blockSupportsResponsive: responsive,
    allowResponsive: allowResponsive,
    toggleResponsive: toggleResponsive,
    switchBackToURLInput: () => setIsEditingURL(true)
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_preview, {
    preview: preview,
    previewable: previewable,
    className: className,
    url: url,
    type: type,
    caption: caption,
    onCaptionChange: value => setAttributes({
      caption: value
    }),
    isSelected: isSelected,
    icon: icon,
    label: label,
    insertBlocksAfter: insertBlocksAfter
  })));
};

/* harmony default export */ var embed_edit = (EmbedEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function embed_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    url,
    caption,
    type,
    providerNameSlug
  } = attributes;

  if (!url) {
    return null;
  }

  const className = dedupe_default()('wp-block-embed', {
    [`is-type-${type}`]: type,
    [`is-provider-${providerNameSlug}`]: providerNameSlug,
    [`wp-block-embed-${providerNameSlug}`]: providerNameSlug
  });
  return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  }), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-embed__wrapper"
  }, `\n${url}\n`
  /* URL needs to be on its own line. */
  ), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    value: caption
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/transforms.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const transforms_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/embed",
  title: "Embed",
  category: "embed",
  description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
  textdomain: "default",
  attributes: {
    url: {
      type: "string"
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    type: {
      type: "string"
    },
    providerNameSlug: {
      type: "string"
    },
    allowResponsive: {
      type: "boolean",
      "default": true
    },
    responsive: {
      type: "boolean",
      "default": false
    },
    previewable: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    align: true
  },
  editorStyle: "wp-block-embed-editor",
  style: "wp-block-embed"
};
const {
  name: EMBED_BLOCK
} = transforms_metadata;
/**
 * Default transforms for generic embeds.
 */

const embed_transforms_transforms = {
  from: [{
    type: 'raw',
    isMatch: node => {
      var _node$textContent, _node$textContent$mat;

      return node.nodeName === 'P' && /^\s*(https?:\/\/\S+)\s*$/i.test(node.textContent) && ((_node$textContent = node.textContent) === null || _node$textContent === void 0 ? void 0 : (_node$textContent$mat = _node$textContent.match(/https/gi)) === null || _node$textContent$mat === void 0 ? void 0 : _node$textContent$mat.length) === 1;
    },
    transform: node => {
      return (0,external_wp_blocks_namespaceObject.createBlock)(EMBED_BLOCK, {
        url: node.textContent.trim()
      });
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/paragraph'],
    isMatch: _ref => {
      let {
        url
      } = _ref;
      return !!url;
    },
    transform: _ref2 => {
      let {
        url,
        caption
      } = _ref2;
      let value = `<a href="${url}">${url}</a>`;

      if (caption !== null && caption !== void 0 && caption.trim()) {
        value += `<br />${caption}`;
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
        content: value
      });
    }
  }]
};
/* harmony default export */ var embed_transforms = (embed_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/variations.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */

/**
 * Template option choices for predefined columns layouts.
 *
 * @type {WPBlockVariation[]}
 */

const variations_variations = [{
  name: 'twitter',
  title: 'Twitter',
  icon: embedTwitterIcon,
  keywords: ['tweet', (0,external_wp_i18n_namespaceObject.__)('social')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a tweet.'),
  patterns: [/^https?:\/\/(www\.)?twitter\.com\/.+/i],
  attributes: {
    providerNameSlug: 'twitter',
    responsive: true
  }
}, {
  name: 'youtube',
  title: 'YouTube',
  icon: embedYouTubeIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('video')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a YouTube video.'),
  patterns: [/^https?:\/\/((m|www)\.)?youtube\.com\/.+/i, /^https?:\/\/youtu\.be\/.+/i],
  attributes: {
    providerNameSlug: 'youtube',
    responsive: true
  }
}, {
  // Deprecate Facebook Embed per FB policy
  // See: https://developers.facebook.com/docs/plugins/oembed-legacy
  name: 'facebook',
  title: 'Facebook',
  icon: embedFacebookIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a Facebook post.'),
  scope: ['block'],
  patterns: [],
  attributes: {
    providerNameSlug: 'facebook',
    previewable: false,
    responsive: true
  }
}, {
  // Deprecate Instagram per FB policy
  // See: https://developers.facebook.com/docs/instagram/oembed-legacy
  name: 'instagram',
  title: 'Instagram',
  icon: embedInstagramIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('image'), (0,external_wp_i18n_namespaceObject.__)('social')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed an Instagram post.'),
  scope: ['block'],
  patterns: [],
  attributes: {
    providerNameSlug: 'instagram',
    responsive: true
  }
}, {
  name: 'wordpress',
  title: 'WordPress',
  icon: embedWordPressIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('post'), (0,external_wp_i18n_namespaceObject.__)('blog')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress post.'),
  attributes: {
    providerNameSlug: 'wordpress'
  }
}, {
  name: 'soundcloud',
  title: 'SoundCloud',
  icon: embedAudioIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed SoundCloud content.'),
  patterns: [/^https?:\/\/(www\.)?soundcloud\.com\/.+/i],
  attributes: {
    providerNameSlug: 'soundcloud',
    responsive: true
  }
}, {
  name: 'spotify',
  title: 'Spotify',
  icon: embedSpotifyIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Spotify content.'),
  patterns: [/^https?:\/\/(open|play)\.spotify\.com\/.+/i],
  attributes: {
    providerNameSlug: 'spotify',
    responsive: true
  }
}, {
  name: 'flickr',
  title: 'Flickr',
  icon: embedFlickrIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('image')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Flickr content.'),
  patterns: [/^https?:\/\/(www\.)?flickr\.com\/.+/i, /^https?:\/\/flic\.kr\/.+/i],
  attributes: {
    providerNameSlug: 'flickr',
    responsive: true
  }
}, {
  name: 'vimeo',
  title: 'Vimeo',
  icon: embedVimeoIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a Vimeo video.'),
  patterns: [/^https?:\/\/(www\.)?vimeo\.com\/.+/i],
  attributes: {
    providerNameSlug: 'vimeo',
    responsive: true
  }
}, {
  name: 'animoto',
  title: 'Animoto',
  icon: embedAnimotoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed an Animoto video.'),
  patterns: [/^https?:\/\/(www\.)?(animoto|video214)\.com\/.+/i],
  attributes: {
    providerNameSlug: 'animoto',
    responsive: true
  }
}, {
  name: 'cloudup',
  title: 'Cloudup',
  icon: embedContentIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Cloudup content.'),
  patterns: [/^https?:\/\/cloudup\.com\/.+/i],
  attributes: {
    providerNameSlug: 'cloudup',
    responsive: true
  }
}, {
  // Deprecated since CollegeHumor content is now powered by YouTube.
  name: 'collegehumor',
  title: 'CollegeHumor',
  icon: embedVideoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed CollegeHumor content.'),
  scope: ['block'],
  patterns: [],
  attributes: {
    providerNameSlug: 'collegehumor',
    responsive: true
  }
}, {
  name: 'crowdsignal',
  title: 'Crowdsignal',
  icon: embedContentIcon,
  keywords: ['polldaddy', (0,external_wp_i18n_namespaceObject.__)('survey')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Crowdsignal (formerly Polldaddy) content.'),
  patterns: [/^https?:\/\/((.+\.)?polldaddy\.com|poll\.fm|.+\.survey\.fm)\/.+/i],
  attributes: {
    providerNameSlug: 'crowdsignal',
    responsive: true
  }
}, {
  name: 'dailymotion',
  title: 'Dailymotion',
  icon: embedDailymotionIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a Dailymotion video.'),
  patterns: [/^https?:\/\/(www\.)?dailymotion\.com\/.+/i],
  attributes: {
    providerNameSlug: 'dailymotion',
    responsive: true
  }
}, {
  name: 'imgur',
  title: 'Imgur',
  icon: embedPhotoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Imgur content.'),
  patterns: [/^https?:\/\/(.+\.)?imgur\.com\/.+/i],
  attributes: {
    providerNameSlug: 'imgur',
    responsive: true
  }
}, {
  name: 'issuu',
  title: 'Issuu',
  icon: embedContentIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Issuu content.'),
  patterns: [/^https?:\/\/(www\.)?issuu\.com\/.+/i],
  attributes: {
    providerNameSlug: 'issuu',
    responsive: true
  }
}, {
  name: 'kickstarter',
  title: 'Kickstarter',
  icon: embedContentIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Kickstarter content.'),
  patterns: [/^https?:\/\/(www\.)?kickstarter\.com\/.+/i, /^https?:\/\/kck\.st\/.+/i],
  attributes: {
    providerNameSlug: 'kickstarter',
    responsive: true
  }
}, {
  name: 'mixcloud',
  title: 'Mixcloud',
  icon: embedAudioIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Mixcloud content.'),
  patterns: [/^https?:\/\/(www\.)?mixcloud\.com\/.+/i],
  attributes: {
    providerNameSlug: 'mixcloud',
    responsive: true
  }
}, {
  name: 'reddit',
  title: 'Reddit',
  icon: embedRedditIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a Reddit thread.'),
  patterns: [/^https?:\/\/(www\.)?reddit\.com\/.+/i],
  attributes: {
    providerNameSlug: 'reddit',
    responsive: true
  }
}, {
  name: 'reverbnation',
  title: 'ReverbNation',
  icon: embedAudioIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed ReverbNation content.'),
  patterns: [/^https?:\/\/(www\.)?reverbnation\.com\/.+/i],
  attributes: {
    providerNameSlug: 'reverbnation',
    responsive: true
  }
}, {
  name: 'screencast',
  title: 'Screencast',
  icon: embedVideoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Screencast content.'),
  patterns: [/^https?:\/\/(www\.)?screencast\.com\/.+/i],
  attributes: {
    providerNameSlug: 'screencast',
    responsive: true
  }
}, {
  name: 'scribd',
  title: 'Scribd',
  icon: embedContentIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Scribd content.'),
  patterns: [/^https?:\/\/(www\.)?scribd\.com\/.+/i],
  attributes: {
    providerNameSlug: 'scribd',
    responsive: true
  }
}, {
  name: 'slideshare',
  title: 'Slideshare',
  icon: embedContentIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Slideshare content.'),
  patterns: [/^https?:\/\/(.+?\.)?slideshare\.net\/.+/i],
  attributes: {
    providerNameSlug: 'slideshare',
    responsive: true
  }
}, {
  name: 'smugmug',
  title: 'SmugMug',
  icon: embedPhotoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed SmugMug content.'),
  patterns: [/^https?:\/\/(.+\.)?smugmug\.com\/.*/i],
  attributes: {
    providerNameSlug: 'smugmug',
    previewable: false,
    responsive: true
  }
}, {
  name: 'speaker-deck',
  title: 'Speaker Deck',
  icon: embedContentIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Speaker Deck content.'),
  patterns: [/^https?:\/\/(www\.)?speakerdeck\.com\/.+/i],
  attributes: {
    providerNameSlug: 'speaker-deck',
    responsive: true
  }
}, {
  name: 'tiktok',
  title: 'TikTok',
  icon: embedVideoIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a TikTok video.'),
  patterns: [/^https?:\/\/(www\.)?tiktok\.com\/.+/i],
  attributes: {
    providerNameSlug: 'tiktok',
    responsive: true
  }
}, {
  name: 'ted',
  title: 'TED',
  icon: embedVideoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a TED video.'),
  patterns: [/^https?:\/\/(www\.|embed\.)?ted\.com\/.+/i],
  attributes: {
    providerNameSlug: 'ted',
    responsive: true
  }
}, {
  name: 'tumblr',
  title: 'Tumblr',
  icon: embedTumblrIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a Tumblr post.'),
  patterns: [/^https?:\/\/(www\.)?tumblr\.com\/.+/i],
  attributes: {
    providerNameSlug: 'tumblr',
    responsive: true
  }
}, {
  name: 'videopress',
  title: 'VideoPress',
  icon: embedVideoIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a VideoPress video.'),
  patterns: [/^https?:\/\/videopress\.com\/.+/i],
  attributes: {
    providerNameSlug: 'videopress',
    responsive: true
  }
}, {
  name: 'wordpress-tv',
  title: 'WordPress.tv',
  icon: embedVideoIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress.tv video.'),
  patterns: [/^https?:\/\/wordpress\.tv\/.+/i],
  attributes: {
    providerNameSlug: 'wordpress-tv',
    responsive: true
  }
}, {
  name: 'amazon-kindle',
  title: 'Amazon Kindle',
  icon: embedAmazonIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('ebook')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Amazon Kindle content.'),
  patterns: [/^https?:\/\/([a-z0-9-]+\.)?(amazon|amzn)(\.[a-z]{2,4})+\/.+/i, /^https?:\/\/(www\.)?(a\.co|z\.cn)\/.+/i],
  attributes: {
    providerNameSlug: 'amazon-kindle'
  }
}, {
  name: 'pinterest',
  title: 'Pinterest',
  icon: embedPinterestIcon,
  keywords: [(0,external_wp_i18n_namespaceObject.__)('social'), (0,external_wp_i18n_namespaceObject.__)('bookmark')],
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Pinterest pins, boards, and profiles.'),
  patterns: [/^https?:\/\/([a-z]{2}|www)\.pinterest\.com(\.(au|mx))?\/.*/i],
  attributes: {
    providerNameSlug: 'pinterest'
  }
}, {
  name: 'wolfram-cloud',
  title: 'Wolfram',
  icon: embedWolframIcon,
  description: (0,external_wp_i18n_namespaceObject.__)('Embed Wolfram notebook content.'),
  patterns: [/^https?:\/\/(www\.)?wolframcloud\.com\/obj\/.+/i],
  attributes: {
    providerNameSlug: 'wolfram-cloud',
    responsive: true
  }
}];
/**
 * Add `isActive` function to all `embed` variations, if not defined.
 * `isActive` function is used to find a variation match from a created
 *  Block by providing its attributes.
 */

variations_variations.forEach(variation => {
  if (variation.isActive) return;

  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.providerNameSlug === variationAttributes.providerNameSlug;
});
/* harmony default export */ var embed_variations = (variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/deprecated.js


/**
 * External dependencies
 */

/**
 * Internal dependencies
 */

const embed_deprecated_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/embed",
  title: "Embed",
  category: "embed",
  description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
  textdomain: "default",
  attributes: {
    url: {
      type: "string"
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    type: {
      type: "string"
    },
    providerNameSlug: {
      type: "string"
    },
    allowResponsive: {
      type: "boolean",
      "default": true
    },
    responsive: {
      type: "boolean",
      "default": false
    },
    previewable: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    align: true
  },
  editorStyle: "wp-block-embed-editor",
  style: "wp-block-embed"
};
/**
 * WordPress dependencies
 */


const {
  attributes: embed_deprecated_blockAttributes
} = embed_deprecated_metadata;
const embed_deprecated_deprecated = [{
  attributes: embed_deprecated_blockAttributes,

  save(_ref) {
    let {
      attributes: {
        url,
        caption,
        type,
        providerNameSlug
      }
    } = _ref;

    if (!url) {
      return null;
    }

    const embedClassName = classnames_default()('wp-block-embed', {
      [`is-type-${type}`]: type,
      [`is-provider-${providerNameSlug}`]: providerNameSlug
    });
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: embedClassName
    }, `\n${url}\n`
    /* URL needs to be on its own line. */
    , !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));
  }

}];
/* harmony default export */ var embed_deprecated = (embed_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/index.js
/**
 * Internal dependencies
 */


const embed_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/embed",
  title: "Embed",
  category: "embed",
  description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
  textdomain: "default",
  attributes: {
    url: {
      type: "string"
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    type: {
      type: "string"
    },
    providerNameSlug: {
      type: "string"
    },
    allowResponsive: {
      type: "boolean",
      "default": true
    },
    responsive: {
      type: "boolean",
      "default": false
    },
    previewable: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    align: true
  },
  editorStyle: "wp-block-embed-editor",
  style: "wp-block-embed"
};




const {
  name: embed_name
} = embed_metadata;

const embed_settings = {
  icon: embedContentIcon,
  edit: embed_edit,
  save: embed_save_save,
  transforms: embed_transforms,
  variations: embed_variations,
  deprecated: embed_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js


/**
 * WordPress dependencies
 */

const file = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5z"
}));
/* harmony default export */ var library_file = (file);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/deprecated.js


/**
 * WordPress dependencies
 */

 // Version of the file block without PR#28062 accessibility fix.

const file_deprecated_deprecated = [{
  attributes: {
    id: {
      type: 'number'
    },
    href: {
      type: 'string'
    },
    fileName: {
      type: 'string',
      source: 'html',
      selector: 'a:not([download])'
    },
    textLinkHref: {
      type: 'string',
      source: 'attribute',
      selector: 'a:not([download])',
      attribute: 'href'
    },
    textLinkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'a:not([download])',
      attribute: 'target'
    },
    showDownloadButton: {
      type: 'boolean',
      default: true
    },
    downloadButtonText: {
      type: 'string',
      source: 'html',
      selector: 'a[download]'
    },
    displayPreview: {
      type: 'boolean'
    },
    previewHeight: {
      type: 'number',
      default: 600
    }
  },
  supports: {
    anchor: true,
    align: true
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      href,
      fileName,
      textLinkHref,
      textLinkTarget,
      showDownloadButton,
      downloadButtonText,
      displayPreview,
      previewHeight
    } = attributes;
    const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: filename. */
    (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
    return href && (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("object", {
      className: "wp-block-file__embed",
      data: href,
      type: "application/pdf",
      style: {
        width: '100%',
        height: `${previewHeight}px`
      },
      "aria-label": pdfEmbedLabel
    })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) && (0,external_wp_element_namespaceObject.createElement)("a", {
      href: textLinkHref,
      target: textLinkTarget,
      rel: textLinkTarget ? 'noreferrer noopener' : undefined
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: fileName
    })), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("a", {
      href: href,
      className: "wp-block-file__button",
      download: true
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: downloadButtonText
    })));
  }

}];
/* harmony default export */ var file_deprecated = (file_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/inspector.js


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function FileBlockInspector(_ref) {
  let {
    hrefs,
    openInNewWindow,
    showDownloadButton,
    changeLinkDestinationOption,
    changeOpenInNewWindow,
    changeShowDownloadButton,
    displayPreview,
    changeDisplayPreview,
    previewHeight,
    changePreviewHeight
  } = _ref;
  const {
    href,
    textLinkHref,
    attachmentPage
  } = hrefs;
  let linkDestinationOptions = [{
    value: href,
    label: (0,external_wp_i18n_namespaceObject.__)('URL')
  }];

  if (attachmentPage) {
    linkDestinationOptions = [{
      value: href,
      label: (0,external_wp_i18n_namespaceObject.__)('Media file')
    }, {
      value: attachmentPage,
      label: (0,external_wp_i18n_namespaceObject.__)('Attachment page')
    }];
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, href.endsWith('.pdf') && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('PDF settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show inline embed'),
    help: displayPreview ? (0,external_wp_i18n_namespaceObject.__)("Note: Most phone and tablet browsers won't display embedded PDFs.") : null,
    checked: !!displayPreview,
    onChange: changeDisplayPreview
  }), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Height in pixels'),
    min: MIN_PREVIEW_HEIGHT,
    max: Math.max(MAX_PREVIEW_HEIGHT, previewHeight),
    value: previewHeight,
    onChange: changePreviewHeight
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Text link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
    value: textLinkHref,
    options: linkDestinationOptions,
    onChange: changeLinkDestinationOption
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    checked: openInNewWindow,
    onChange: changeOpenInNewWindow
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Download button settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show download button'),
    checked: showDownloadButton,
    onChange: changeShowDownloadButton
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/utils.js
/**
 * Uses a combination of user agent matching and feature detection to determine whether
 * the current browser supports rendering PDFs inline.
 *
 * @return {boolean} Whether or not the browser supports inline PDFs.
 */
const browserSupportsPdfs = () => {
  // Most mobile devices include "Mobi" in their UA.
  if (window.navigator.userAgent.indexOf('Mobi') > -1) {
    return false;
  } // Android tablets are the noteable exception.


  if (window.navigator.userAgent.indexOf('Android') > -1) {
    return false;
  } // iPad pretends to be a Mac.


  if (window.navigator.userAgent.indexOf('Macintosh') > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) {
    return false;
  } // IE only supports PDFs when there's an ActiveX object available for it.


  if (!!(window.ActiveXObject || 'ActiveXObject' in window) && !(createActiveXObject('AcroPDF.PDF') || createActiveXObject('PDF.PdfCtrl'))) {
    return false;
  }

  return true;
};
/**
 * Helper function for creating ActiveX objects, catching any errors that are thrown
 * when it's generated.
 *
 * @param {string} type The name of the ActiveX object to create.
 * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.
 */

const createActiveXObject = type => {
  let ax;

  try {
    ax = new window.ActiveXObject(type);
  } catch (e) {
    ax = undefined;
  }

  return ax;
};
/**
 * Hides all .wp-block-file__embed elements on the document. This function is only intended
 * to be run on the front-end, it may have weird side effects running in the block editor.
 */


const hidePdfEmbedsOnUnsupportedBrowsers = () => {
  if (!browserSupportsPdfs()) {
    const embeds = document.getElementsByClassName('wp-block-file__embed');
    Array.from(embeds).forEach(embed => {
      embed.style.display = 'none';
    });
  }
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */



const MIN_PREVIEW_HEIGHT = 200;
const MAX_PREVIEW_HEIGHT = 2000;

function ClipboardToolbarButton(_ref) {
  let {
    text,
    disabled
  } = _ref;
  const {
    createNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
    createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), {
      isDismissible: true,
      type: 'snackbar'
    });
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    className: "components-clipboard-toolbar-button",
    ref: ref,
    disabled: disabled
  }, (0,external_wp_i18n_namespaceObject.__)('Copy URL'));
}

function FileEdit(_ref2) {
  let {
    attributes,
    isSelected,
    setAttributes,
    noticeUI,
    noticeOperations,
    clientId
  } = _ref2;
  const {
    id,
    fileId,
    fileName,
    href,
    textLinkHref,
    textLinkTarget,
    showDownloadButton,
    downloadButtonText,
    displayPreview,
    previewHeight
  } = attributes;
  const {
    media,
    mediaUpload
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    media: id === undefined ? undefined : select(external_wp_coreData_namespaceObject.store).getMedia(id),
    mediaUpload: select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload
  }), [id]);
  const {
    toggleSelection,
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Upload a file drag-and-dropped into the editor.
    if ((0,external_wp_blob_namespaceObject.isBlobURL)(href)) {
      const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(href);
      mediaUpload({
        filesList: [file],
        onFileChange: _ref3 => {
          let [newMedia] = _ref3;
          return onSelectFile(newMedia);
        },
        onError: onUploadError
      });
      (0,external_wp_blob_namespaceObject.revokeBlobURL)(href);
    }

    if (downloadButtonText === undefined) {
      changeDownloadButtonText((0,external_wp_i18n_namespaceObject._x)('Download', 'button label'));
    }
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!fileId && href) {
      // Add a unique fileId to each file block.
      __unstableMarkNextChangeAsNotPersistent();

      setAttributes({
        fileId: `wp-block-file--media-${clientId}`
      });
    }
  }, [href, fileId, clientId]);

  function onSelectFile(newMedia) {
    if (newMedia && newMedia.url) {
      const isPdf = newMedia.url.endsWith('.pdf');
      setAttributes({
        href: newMedia.url,
        fileName: newMedia.title,
        textLinkHref: newMedia.url,
        id: newMedia.id,
        displayPreview: isPdf ? true : undefined,
        previewHeight: isPdf ? 600 : undefined
      });
    }
  }

  function onUploadError(message) {
    setAttributes({
      href: undefined
    });
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
  }

  function changeLinkDestinationOption(newHref) {
    // Choose Media File or Attachment Page (when file is in Media Library).
    setAttributes({
      textLinkHref: newHref
    });
  }

  function changeOpenInNewWindow(newValue) {
    setAttributes({
      textLinkTarget: newValue ? '_blank' : false
    });
  }

  function changeShowDownloadButton(newValue) {
    setAttributes({
      showDownloadButton: newValue
    });
  }

  function changeDownloadButtonText(newValue) {
    // Remove anchor tags from button text content.
    setAttributes({
      downloadButtonText: newValue.replace(/<\/?a[^>]*>/g, '')
    });
  }

  function changeDisplayPreview(newValue) {
    setAttributes({
      displayPreview: newValue
    });
  }

  function handleOnResizeStop(event, direction, elt, delta) {
    toggleSelection(true);
    const newHeight = parseInt(previewHeight + delta.height, 10);
    setAttributes({
      previewHeight: newHeight
    });
  }

  function changePreviewHeight(newValue) {
    const newHeight = Math.max(parseInt(newValue, 10), MIN_PREVIEW_HEIGHT);
    setAttributes({
      previewHeight: newHeight
    });
  }

  const attachmentPage = media && media.link;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()((0,external_wp_blob_namespaceObject.isBlobURL)(href) && (0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({
      type: 'loading'
    }), {
      'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(href)
    })
  });
  const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;

  if (!href) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
        icon: library_file
      }),
      labels: {
        title: (0,external_wp_i18n_namespaceObject.__)('File'),
        instructions: (0,external_wp_i18n_namespaceObject.__)('Upload a file or pick one from your media library.')
      },
      onSelect: onSelectFile,
      notices: noticeUI,
      onError: onUploadError,
      accept: "*"
    }));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(FileBlockInspector, {
    hrefs: {
      href,
      textLinkHref,
      attachmentPage
    },
    openInNewWindow: !!textLinkTarget,
    showDownloadButton,
    changeLinkDestinationOption,
    changeOpenInNewWindow,
    changeShowDownloadButton,
    displayPreview,
    changeDisplayPreview,
    previewHeight,
    changePreviewHeight
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: id,
    mediaURL: href,
    accept: "*",
    onSelect: onSelectFile,
    onError: onUploadError
  }), (0,external_wp_element_namespaceObject.createElement)(ClipboardToolbarButton, {
    text: href,
    disabled: (0,external_wp_blob_namespaceObject.isBlobURL)(href)
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, displayPreviewInEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
    size: {
      height: previewHeight
    },
    minHeight: MIN_PREVIEW_HEIGHT,
    maxHeight: MAX_PREVIEW_HEIGHT,
    minWidth: "100%",
    grid: [10, 10],
    enable: {
      top: false,
      right: false,
      bottom: true,
      left: false,
      topRight: false,
      bottomRight: false,
      bottomLeft: false,
      topLeft: false
    },
    onResizeStart: () => toggleSelection(false),
    onResizeStop: handleOnResizeStop,
    showHandle: isSelected
  }, (0,external_wp_element_namespaceObject.createElement)("object", {
    className: "wp-block-file__preview",
    data: href,
    type: "application/pdf",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Embed of the selected PDF file.')
  }), !isSelected && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-file__preview-overlay"
  })), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: 'wp-block-file__content-wrapper'
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "a",
    value: fileName,
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write file name…'),
    withoutInteractiveFormatting: true,
    onChange: text => setAttributes({
      fileName: text
    }),
    href: textLinkHref
  }), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: 'wp-block-file__button-richtext-wrapper'
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "div" // Must be block-level or else cursor disappears.
    ,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Download button text'),
    className: 'wp-block-file__button',
    value: downloadButtonText,
    withoutInteractiveFormatting: true,
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text…'),
    onChange: text => changeDownloadButtonText(text)
  })))));
}

/* harmony default export */ var file_edit = ((0,external_wp_components_namespaceObject.withNotices)(FileEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/save.js


/**
 * WordPress dependencies
 */


function file_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    href,
    fileId,
    fileName,
    textLinkHref,
    textLinkTarget,
    showDownloadButton,
    downloadButtonText,
    displayPreview,
    previewHeight
  } = attributes;
  const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)(
  /* translators: %s: filename. */
  (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
  const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName); // Only output an `aria-describedby` when the element it's referring to is
  // actually rendered.

  const describedById = hasFilename ? fileId : undefined;
  return href && (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("object", {
    className: "wp-block-file__embed",
    data: href,
    type: "application/pdf",
    style: {
      width: '100%',
      height: `${previewHeight}px`
    },
    "aria-label": pdfEmbedLabel
  })), hasFilename && (0,external_wp_element_namespaceObject.createElement)("a", {
    id: describedById,
    href: textLinkHref,
    target: textLinkTarget,
    rel: textLinkTarget ? 'noreferrer noopener' : undefined
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: fileName
  })), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("a", {
    href: href,
    className: "wp-block-file__button",
    download: true,
    "aria-describedby": describedById
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: downloadButtonText
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/transforms.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






const file_transforms_transforms = {
  from: [{
    type: 'files',

    isMatch(files) {
      return files.length > 0;
    },

    // We define a lower priorty (higher number) than the default of 10. This
    // ensures that the File block is only created as a fallback.
    priority: 15,
    transform: files => {
      const blocks = [];
      files.forEach(file => {
        const blobURL = (0,external_wp_blob_namespaceObject.createBlobURL)(file); // File will be uploaded in componentDidMount()

        blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
          href: blobURL,
          fileName: file.name,
          textLinkHref: blobURL
        }));
      });
      return blocks;
    }
  }, {
    type: 'block',
    blocks: ['core/audio'],
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
        href: attributes.src,
        fileName: attributes.caption,
        textLinkHref: attributes.src,
        id: attributes.id,
        anchor: attributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/video'],
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
        href: attributes.src,
        fileName: attributes.caption,
        textLinkHref: attributes.src,
        id: attributes.id,
        anchor: attributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/image'],
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
        href: attributes.url,
        fileName: attributes.caption || (0,external_wp_url_namespaceObject.getFilename)(attributes.url),
        textLinkHref: attributes.url,
        id: attributes.id,
        anchor: attributes.anchor
      });
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/audio'],
    isMatch: _ref => {
      let {
        id
      } = _ref;

      if (!id) {
        return false;
      }

      const {
        getMedia
      } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
      const media = getMedia(id);
      return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'audio');
    },
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
        src: attributes.href,
        caption: attributes.fileName,
        id: attributes.id,
        anchor: attributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/video'],
    isMatch: _ref2 => {
      let {
        id
      } = _ref2;

      if (!id) {
        return false;
      }

      const {
        getMedia
      } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
      const media = getMedia(id);
      return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'video');
    },
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
        src: attributes.href,
        caption: attributes.fileName,
        id: attributes.id,
        anchor: attributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/image'],
    isMatch: _ref3 => {
      let {
        id
      } = _ref3;

      if (!id) {
        return false;
      }

      const {
        getMedia
      } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
      const media = getMedia(id);
      return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'image');
    },
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
        url: attributes.href,
        caption: attributes.fileName,
        id: attributes.id,
        anchor: attributes.anchor
      });
    }
  }]
};
/* harmony default export */ var file_transforms = (file_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const file_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/file",
  title: "File",
  category: "media",
  description: "Add a link to a downloadable file.",
  keywords: ["document", "pdf", "download"],
  textdomain: "default",
  attributes: {
    id: {
      type: "number"
    },
    href: {
      type: "string"
    },
    fileId: {
      type: "string",
      source: "attribute",
      selector: "a:not([download])",
      attribute: "id"
    },
    fileName: {
      type: "string",
      source: "html",
      selector: "a:not([download])"
    },
    textLinkHref: {
      type: "string",
      source: "attribute",
      selector: "a:not([download])",
      attribute: "href"
    },
    textLinkTarget: {
      type: "string",
      source: "attribute",
      selector: "a:not([download])",
      attribute: "target"
    },
    showDownloadButton: {
      type: "boolean",
      "default": true
    },
    downloadButtonText: {
      type: "string",
      source: "html",
      selector: "a[download]"
    },
    displayPreview: {
      type: "boolean"
    },
    previewHeight: {
      type: "number",
      "default": 600
    }
  },
  supports: {
    anchor: true,
    align: true
  },
  viewScript: "file:./view.min.js",
  editorStyle: "wp-block-file-editor",
  style: "wp-block-file"
};


const {
  name: file_name
} = file_metadata;

const file_settings = {
  icon: library_file,
  example: {
    attributes: {
      href: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',
      fileName: (0,external_wp_i18n_namespaceObject._x)('Armstrong_Small_Step', 'Name of the file')
    }
  },
  transforms: file_transforms,
  deprecated: file_deprecated,
  edit: file_edit,
  save: file_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/gallery.js


/**
 * WordPress dependencies
 */

const gallery = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8h-1.5zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zM4.5 4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1V12l-2.3-1.7c-.3-.2-.6-.2-.9 0l-2.9 2.1L8 11.3c-.2-.1-.5-.1-.7 0l-2.9 1.5V4.6zm0 11.8v-1.8l3.2-1.7 2.4 1.2c.2.1.5.1.8-.1l2.8-2 2.8 2v2.5c0 .1-.1.1-.1.1H4.6c0-.1-.1-.2-.1-.2z"
}));
/* harmony default export */ var library_gallery = (gallery);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/constants.js
const LINK_DESTINATION_NONE = 'none';
const LINK_DESTINATION_MEDIA = 'media';
const LINK_DESTINATION_ATTACHMENT = 'attachment';
const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared.js
/**
 * External dependencies
 */

function defaultColumnsNumber(imageCount) {
  return imageCount ? Math.min(3, imageCount) : 3;
}
const pickRelevantMediaFiles = function (image) {
  let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
  const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']);
  imageProps.url = (0,external_lodash_namespaceObject.get)(image, ['sizes', sizeSlug, 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url;
  const fullUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', 'full', 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', 'full', 'source_url']);

  if (fullUrl) {
    imageProps.fullUrl = fullUrl;
  }

  return imageProps;
};
/**
 * The new gallery block format is not compatible with the use_BalanceTags option
 * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The
 * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method
 * can be removed when minimum supported WP version >=5.9.
 */

function isGalleryV2Enabled() {
  // Only run the Gallery version compat check if the plugin is running, otherwise
  // assume we are in 5.9 core and enable by default.
  if (false) {}

  return true;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
/**
 * Original function to determine default number of columns from a block's
 * attributes.
 *
 * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks.
 *
 * @param {Object} attributes Block attributes.
 * @return {number}           Default number of columns for the gallery.
 */

function defaultColumnsNumberV1(attributes) {
  var _attributes$images;

  return Math.min(3, attributes === null || attributes === void 0 ? void 0 : (_attributes$images = attributes.images) === null || _attributes$images === void 0 ? void 0 : _attributes$images.length);
}
/**
 * Original function to determine new href and linkDestination values for an image block from the
 * supplied Gallery link destination.
 *
 * Used in deprecations: v1-6.
 *
 * @param {Object} image       Gallery image.
 * @param {string} destination Gallery's selected link destination.
 * @return {Object}            New attributes to assign to image block.
 */

function getHrefAndDestination(image, destination) {
  // Need to determine the URL that the selected destination maps to.
  // Gutenberg and WordPress use different constants so the new link
  // destination also needs to be tweaked.
  switch (destination) {
    case DEPRECATED_LINK_DESTINATION_MEDIA:
      return {
        href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
        // eslint-disable-line camelcase
        linkDestination: LINK_DESTINATION_MEDIA
      };

    case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
      return {
        href: image === null || image === void 0 ? void 0 : image.link,
        linkDestination: LINK_DESTINATION_ATTACHMENT
      };

    case LINK_DESTINATION_MEDIA:
      return {
        href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
        // eslint-disable-line camelcase
        linkDestination: LINK_DESTINATION_MEDIA
      };

    case LINK_DESTINATION_ATTACHMENT:
      return {
        href: image === null || image === void 0 ? void 0 : image.link,
        linkDestination: LINK_DESTINATION_ATTACHMENT
      };

    case LINK_DESTINATION_NONE:
      return {
        href: undefined,
        linkDestination: LINK_DESTINATION_NONE
      };
  }

  return {};
}

function runV2Migration(attributes) {
  let linkTo = attributes.linkTo ? attributes.linkTo : 'none';

  if (linkTo === 'post') {
    linkTo = 'attachment';
  } else if (linkTo === 'file') {
    linkTo = 'media';
  }

  const imageBlocks = attributes.images.map(image => {
    return getImageBlock(image, attributes.sizeSlug, linkTo);
  });
  return [{ ...(0,external_lodash_namespaceObject.omit)(attributes, ['images', 'ids']),
    linkTo,
    allowResize: false
  }, imageBlocks];
}
/**
 * Gets an Image block from gallery image data
 *
 * Used to migrate Galleries to nested Image InnerBlocks.
 *
 * @param {Object} image    Image properties.
 * @param {string} sizeSlug Gallery sizeSlug attribute.
 * @param {string} linkTo   Gallery linkTo attribute.
 * @return {Object}         Image block.
 */


function getImageBlock(image, sizeSlug, linkTo) {
  return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { ...(image.id && {
      id: parseInt(image.id)
    }),
    url: image.url,
    alt: image.alt,
    caption: image.caption,
    sizeSlug,
    ...getHrefAndDestination(image, linkTo)
  });
}
const deprecated_v6 = {
  attributes: {
    images: {
      type: 'array',
      default: [],
      source: 'query',
      selector: '.blocks-gallery-item',
      query: {
        url: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'src'
        },
        fullUrl: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'data-full-url'
        },
        link: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'data-link'
        },
        alt: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'alt',
          default: ''
        },
        id: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'data-id'
        },
        caption: {
          type: 'string',
          source: 'html',
          selector: '.blocks-gallery-item__caption'
        }
      }
    },
    ids: {
      type: 'array',
      items: {
        type: 'number'
      },
      default: []
    },
    columns: {
      type: 'number',
      minimum: 1,
      maximum: 8
    },
    caption: {
      type: 'string',
      source: 'html',
      selector: '.blocks-gallery-caption'
    },
    imageCrop: {
      type: 'boolean',
      default: true
    },
    fixedHeight: {
      type: 'boolean',
      default: true
    },
    linkTo: {
      type: 'string'
    },
    sizeSlug: {
      type: 'string',
      default: 'large'
    }
  },
  supports: {
    anchor: true,
    align: true
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      images,
      columns = defaultColumnsNumberV1(attributes),
      imageCrop,
      caption,
      linkTo
    } = attributes;
    const className = `columns-${columns} ${imageCrop ? 'is-cropped' : ''}`;
    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className
    }), (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: "blocks-gallery-grid"
    }, images.map(image => {
      let href;

      switch (linkTo) {
        case DEPRECATED_LINK_DESTINATION_MEDIA:
          href = image.fullUrl || image.url;
          break;

        case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
          href = image.link;
          break;
      }

      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
        src: image.url,
        alt: image.alt,
        "data-id": image.id,
        "data-full-url": image.fullUrl,
        "data-link": image.link,
        className: image.id ? `wp-image-${image.id}` : null
      });
      return (0,external_wp_element_namespaceObject.createElement)("li", {
        key: image.id || image.url,
        className: "blocks-gallery-item"
      }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
        tagName: "figcaption",
        className: "blocks-gallery-item__caption",
        value: image.caption
      })));
    })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      className: "blocks-gallery-caption",
      value: caption
    }));
  },

  migrate(attributes) {
    if (isGalleryV2Enabled()) {
      return runV2Migration(attributes);
    }

    return attributes;
  }

};
const deprecated_v5 = {
  attributes: {
    images: {
      type: 'array',
      default: [],
      source: 'query',
      selector: '.blocks-gallery-item',
      query: {
        url: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'src'
        },
        fullUrl: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'data-full-url'
        },
        link: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'data-link'
        },
        alt: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'alt',
          default: ''
        },
        id: {
          type: 'string',
          source: 'attribute',
          selector: 'img',
          attribute: 'data-id'
        },
        caption: {
          type: 'string',
          source: 'html',
          selector: '.blocks-gallery-item__caption'
        }
      }
    },
    ids: {
      type: 'array',
      items: {
        type: 'number'
      },
      default: []
    },
    columns: {
      type: 'number',
      minimum: 1,
      maximum: 8
    },
    caption: {
      type: 'string',
      source: 'html',
      selector: '.blocks-gallery-caption'
    },
    imageCrop: {
      type: 'boolean',
      default: true
    },
    linkTo: {
      type: 'string',
      default: 'none'
    },
    sizeSlug: {
      type: 'string',
      default: 'large'
    }
  },
  supports: {
    align: true
  },

  isEligible(_ref2) {
    let {
      linkTo
    } = _ref2;
    return !linkTo || linkTo === 'attachment' || linkTo === 'media';
  },

  migrate(attributes) {
    if (isGalleryV2Enabled()) {
      return runV2Migration(attributes);
    }

    let linkTo = attributes.linkTo;

    if (!attributes.linkTo) {
      linkTo = 'none';
    } else if (attributes.linkTo === 'attachment') {
      linkTo = 'post';
    } else if (attributes.linkTo === 'media') {
      linkTo = 'file';
    }

    return { ...attributes,
      linkTo
    };
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      images,
      columns = defaultColumnsNumberV1(attributes),
      imageCrop,
      caption,
      linkTo
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: `columns-${columns} ${imageCrop ? 'is-cropped' : ''}`
    }, (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: "blocks-gallery-grid"
    }, images.map(image => {
      let href;

      switch (linkTo) {
        case 'media':
          href = image.fullUrl || image.url;
          break;

        case 'attachment':
          href = image.link;
          break;
      }

      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
        src: image.url,
        alt: image.alt,
        "data-id": image.id,
        "data-full-url": image.fullUrl,
        "data-link": image.link,
        className: image.id ? `wp-image-${image.id}` : null
      });
      return (0,external_wp_element_namespaceObject.createElement)("li", {
        key: image.id || image.url,
        className: "blocks-gallery-item"
      }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
        tagName: "figcaption",
        className: "blocks-gallery-item__caption",
        value: image.caption
      })));
    })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      className: "blocks-gallery-caption",
      value: caption
    }));
  }

};
const deprecated_v4 = {
  attributes: {
    images: {
      type: 'array',
      default: [],
      source: 'query',
      selector: '.blocks-gallery-item',
      query: {
        url: {
          source: 'attribute',
          selector: 'img',
          attribute: 'src'
        },
        fullUrl: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-full-url'
        },
        link: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-link'
        },
        alt: {
          source: 'attribute',
          selector: 'img',
          attribute: 'alt',
          default: ''
        },
        id: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-id'
        },
        caption: {
          type: 'string',
          source: 'html',
          selector: '.blocks-gallery-item__caption'
        }
      }
    },
    ids: {
      type: 'array',
      default: []
    },
    columns: {
      type: 'number'
    },
    caption: {
      type: 'string',
      source: 'html',
      selector: '.blocks-gallery-caption'
    },
    imageCrop: {
      type: 'boolean',
      default: true
    },
    linkTo: {
      type: 'string',
      default: 'none'
    }
  },
  supports: {
    align: true
  },

  isEligible(_ref4) {
    let {
      ids
    } = _ref4;
    return ids && ids.some(id => typeof id === 'string');
  },

  migrate(attributes) {
    if (isGalleryV2Enabled()) {
      return runV2Migration(attributes);
    }

    return { ...attributes,
      ids: (0,external_lodash_namespaceObject.map)(attributes.ids, id => {
        const parsedId = parseInt(id, 10);
        return Number.isInteger(parsedId) ? parsedId : null;
      })
    };
  },

  save(_ref5) {
    let {
      attributes
    } = _ref5;
    const {
      images,
      columns = defaultColumnsNumberV1(attributes),
      imageCrop,
      caption,
      linkTo
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: `columns-${columns} ${imageCrop ? 'is-cropped' : ''}`
    }, (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: "blocks-gallery-grid"
    }, images.map(image => {
      let href;

      switch (linkTo) {
        case 'media':
          href = image.fullUrl || image.url;
          break;

        case 'attachment':
          href = image.link;
          break;
      }

      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
        src: image.url,
        alt: image.alt,
        "data-id": image.id,
        "data-full-url": image.fullUrl,
        "data-link": image.link,
        className: image.id ? `wp-image-${image.id}` : null
      });
      return (0,external_wp_element_namespaceObject.createElement)("li", {
        key: image.id || image.url,
        className: "blocks-gallery-item"
      }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
        tagName: "figcaption",
        className: "blocks-gallery-item__caption",
        value: image.caption
      })));
    })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      className: "blocks-gallery-caption",
      value: caption
    }));
  }

};
const deprecated_v3 = {
  attributes: {
    images: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'ul.wp-block-gallery .blocks-gallery-item',
      query: {
        url: {
          source: 'attribute',
          selector: 'img',
          attribute: 'src'
        },
        fullUrl: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-full-url'
        },
        alt: {
          source: 'attribute',
          selector: 'img',
          attribute: 'alt',
          default: ''
        },
        id: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-id'
        },
        link: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-link'
        },
        caption: {
          type: 'array',
          source: 'children',
          selector: 'figcaption'
        }
      }
    },
    ids: {
      type: 'array',
      default: []
    },
    columns: {
      type: 'number'
    },
    imageCrop: {
      type: 'boolean',
      default: true
    },
    linkTo: {
      type: 'string',
      default: 'none'
    }
  },
  supports: {
    align: true
  },

  save(_ref6) {
    let {
      attributes
    } = _ref6;
    const {
      images,
      columns = defaultColumnsNumberV1(attributes),
      imageCrop,
      linkTo
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: `columns-${columns} ${imageCrop ? 'is-cropped' : ''}`
    }, images.map(image => {
      let href;

      switch (linkTo) {
        case 'media':
          href = image.fullUrl || image.url;
          break;

        case 'attachment':
          href = image.link;
          break;
      }

      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
        src: image.url,
        alt: image.alt,
        "data-id": image.id,
        "data-full-url": image.fullUrl,
        "data-link": image.link,
        className: image.id ? `wp-image-${image.id}` : null
      });
      return (0,external_wp_element_namespaceObject.createElement)("li", {
        key: image.id || image.url,
        className: "blocks-gallery-item"
      }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img, image.caption && image.caption.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
        tagName: "figcaption",
        value: image.caption
      })));
    }));
  },

  migrate(attributes) {
    if (isGalleryV2Enabled()) {
      return runV2Migration(attributes);
    }

    return attributes;
  }

};
const deprecated_v2 = {
  attributes: {
    images: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'ul.wp-block-gallery .blocks-gallery-item',
      query: {
        url: {
          source: 'attribute',
          selector: 'img',
          attribute: 'src'
        },
        alt: {
          source: 'attribute',
          selector: 'img',
          attribute: 'alt',
          default: ''
        },
        id: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-id'
        },
        link: {
          source: 'attribute',
          selector: 'img',
          attribute: 'data-link'
        },
        caption: {
          type: 'array',
          source: 'children',
          selector: 'figcaption'
        }
      }
    },
    columns: {
      type: 'number'
    },
    imageCrop: {
      type: 'boolean',
      default: true
    },
    linkTo: {
      type: 'string',
      default: 'none'
    }
  },

  isEligible(_ref7) {
    let {
      images,
      ids
    } = _ref7;
    return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || (0,external_lodash_namespaceObject.some)(images, (id, index) => {
      if (!id && ids[index] !== null) {
        return true;
      }

      return parseInt(id, 10) !== ids[index];
    }));
  },

  migrate(attributes) {
    if (isGalleryV2Enabled()) {
      return runV2Migration(attributes);
    }

    return { ...attributes,
      ids: (0,external_lodash_namespaceObject.map)(attributes.images, _ref8 => {
        let {
          id
        } = _ref8;

        if (!id) {
          return null;
        }

        return parseInt(id, 10);
      })
    };
  },

  supports: {
    align: true
  },

  save(_ref9) {
    let {
      attributes
    } = _ref9;
    const {
      images,
      columns = defaultColumnsNumberV1(attributes),
      imageCrop,
      linkTo
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: `columns-${columns} ${imageCrop ? 'is-cropped' : ''}`
    }, images.map(image => {
      let href;

      switch (linkTo) {
        case 'media':
          href = image.url;
          break;

        case 'attachment':
          href = image.link;
          break;
      }

      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
        src: image.url,
        alt: image.alt,
        "data-id": image.id,
        "data-link": image.link,
        className: image.id ? `wp-image-${image.id}` : null
      });
      return (0,external_wp_element_namespaceObject.createElement)("li", {
        key: image.id || image.url,
        className: "blocks-gallery-item"
      }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img, image.caption && image.caption.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
        tagName: "figcaption",
        value: image.caption
      })));
    }));
  }

};
const gallery_deprecated_v1 = {
  attributes: {
    images: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'div.wp-block-gallery figure.blocks-gallery-image img',
      query: {
        url: {
          source: 'attribute',
          attribute: 'src'
        },
        alt: {
          source: 'attribute',
          attribute: 'alt',
          default: ''
        },
        id: {
          source: 'attribute',
          attribute: 'data-id'
        }
      }
    },
    columns: {
      type: 'number'
    },
    imageCrop: {
      type: 'boolean',
      default: true
    },
    linkTo: {
      type: 'string',
      default: 'none'
    },
    align: {
      type: 'string',
      default: 'none'
    }
  },
  supports: {
    align: true
  },

  save(_ref10) {
    let {
      attributes
    } = _ref10;
    const {
      images,
      columns = defaultColumnsNumberV1(attributes),
      align,
      imageCrop,
      linkTo
    } = attributes;
    const className = classnames_default()(`columns-${columns}`, {
      alignnone: align === 'none',
      'is-cropped': imageCrop
    });
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className
    }, images.map(image => {
      let href;

      switch (linkTo) {
        case 'media':
          href = image.url;
          break;

        case 'attachment':
          href = image.link;
          break;
      }

      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
        src: image.url,
        alt: image.alt,
        "data-id": image.id
      });
      return (0,external_wp_element_namespaceObject.createElement)("figure", {
        key: image.id || image.url,
        className: "blocks-gallery-image"
      }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img);
    }));
  },

  migrate(attributes) {
    if (isGalleryV2Enabled()) {
      return runV2Migration(attributes);
    }

    return attributes;
  }

};
/* harmony default export */ var gallery_deprecated = ([deprecated_v6, deprecated_v5, deprecated_v4, deprecated_v3, deprecated_v2, gallery_deprecated_v1]);

;// CONCATENATED MODULE: external ["wp","viewport"]
var external_wp_viewport_namespaceObject = window["wp"]["viewport"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js


/**
 * WordPress dependencies
 */


const sharedIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
  icon: library_gallery
});

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/constants.js
const MIN_SIZE = 20;
const constants_LINK_DESTINATION_NONE = 'none';
const constants_LINK_DESTINATION_MEDIA = 'media';
const constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
const LINK_DESTINATION_CUSTOM = 'custom';
const constants_NEW_TAB_REL = ['noreferrer', 'noopener'];
const constants_ALLOWED_MEDIA_TYPES = ['image'];
const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0;

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/utils.js
/**
 * Internal dependencies
 */


/**
 * Determines new href and linkDestination values for an image block from the
 * supplied Gallery link destination.
 *
 * @param {Object} image       Gallery image.
 * @param {string} destination Gallery's selected link destination.
 * @return {Object}            New attributes to assign to image block.
 */

function utils_getHrefAndDestination(image, destination) {
  // Gutenberg and WordPress use different constants so if image_default_link_type
  // option is set we need to map from the WP Core values.
  switch (destination) {
    case LINK_DESTINATION_MEDIA_WP_CORE:
    case LINK_DESTINATION_MEDIA:
      return {
        href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
        // eslint-disable-line camelcase
        linkDestination: constants_LINK_DESTINATION_MEDIA
      };

    case LINK_DESTINATION_ATTACHMENT_WP_CORE:
    case LINK_DESTINATION_ATTACHMENT:
      return {
        href: image === null || image === void 0 ? void 0 : image.link,
        linkDestination: constants_LINK_DESTINATION_ATTACHMENT
      };

    case LINK_DESTINATION_NONE:
      return {
        href: undefined,
        linkDestination: constants_LINK_DESTINATION_NONE
      };
  }

  return {};
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/utils.js
/**
 * External dependencies
 */

/**
 * Internal dependencies
 */


function removeNewTabRel(currentRel) {
  let newRel = currentRel;

  if (currentRel !== undefined && !(0,external_lodash_namespaceObject.isEmpty)(newRel)) {
    if (!(0,external_lodash_namespaceObject.isEmpty)(newRel)) {
      (0,external_lodash_namespaceObject.each)(constants_NEW_TAB_REL, relVal => {
        const regExp = new RegExp('\\b' + relVal + '\\b', 'gi');
        newRel = newRel.replace(regExp, '');
      }); // Only trim if NEW_TAB_REL values was replaced.

      if (newRel !== currentRel) {
        newRel = newRel.trim();
      }

      if ((0,external_lodash_namespaceObject.isEmpty)(newRel)) {
        newRel = undefined;
      }
    }
  }

  return newRel;
}
/**
 * Helper to get the link target settings to be stored.
 *
 * @param {boolean} value          The new link target value.
 * @param {Object}  attributes     Block attributes.
 * @param {Object}  attributes.rel Image block's rel attribute.
 *
 * @return {Object} Updated link target settings.
 */

function getUpdatedLinkTargetSettings(value, _ref) {
  let {
    rel
  } = _ref;
  const linkTarget = value ? '_blank' : undefined;
  let updatedRel;

  if (!linkTarget && !rel) {
    updatedRel = undefined;
  } else {
    updatedRel = removeNewTabRel(rel);
  }

  return {
    linkTarget,
    rel: updatedRel
  };
}
/**
 * Determines new Image block attributes size selection.
 *
 * @param {Object} image Media file object for gallery image.
 * @param {string} size  Selected size slug to apply.
 */

function getImageSizeAttributes(image, size) {
  const url = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size, 'source_url']);

  if (url) {
    return {
      url,
      width: undefined,
      height: undefined,
      sizeSlug: size
    };
  }

  return {};
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







const allowedBlocks = ['core/image'];
const Gallery = props => {
  const {
    attributes,
    isSelected,
    setAttributes,
    mediaPlaceholder,
    insertBlocksAfter,
    blockProps
  } = props;
  const {
    align,
    columns,
    caption,
    imageCrop
  } = attributes;
  const {
    children,
    ...innerBlocksProps
  } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    allowedBlocks,
    orientation: 'horizontal',
    renderAppender: false,
    __experimentalLayout: {
      type: 'default',
      alignments: []
    }
  });
  const [captionFocused, setCaptionFocused] = (0,external_wp_element_namespaceObject.useState)(false);

  function onFocusCaption() {
    if (!captionFocused) {
      setCaptionFocused(true);
    }
  }

  function removeCaptionFocus() {
    if (captionFocused) {
      setCaptionFocused(false);
    }
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setCaptionFocused(false);
    }
  }, [isSelected]);
  return (0,external_wp_element_namespaceObject.createElement)("figure", _extends({}, innerBlocksProps, {
    className: classnames_default()(blockProps.className, 'blocks-gallery-grid', {
      [`align${align}`]: align,
      [`columns-${columns}`]: columns !== undefined,
      [`columns-default`]: columns === undefined,
      'is-cropped': imageCrop
    })
  }), children, isSelected && !children && (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, {
    className: "blocks-gallery-media-placeholder-wrapper",
    onClick: removeCaptionFocus
  }, mediaPlaceholder), (0,external_wp_element_namespaceObject.createElement)(RichTextVisibilityHelper, {
    isHidden: !isSelected && external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption),
    captionFocused: captionFocused,
    onFocusCaption: onFocusCaption,
    tagName: "figcaption",
    className: "blocks-gallery-caption",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write gallery caption…'),
    value: caption,
    onChange: value => setAttributes({
      caption: value
    }),
    inlineToolbar: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  }));
};

function RichTextVisibilityHelper(_ref) {
  let {
    isHidden,
    captionFocused,
    onFocusCaption,
    className,
    value,
    placeholder,
    tagName,
    captionRef,
    ...richTextProps
  } = _ref;

  if (isHidden) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, _extends({
      as: external_wp_blockEditor_namespaceObject.RichText
    }, richTextProps));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    ref: captionRef,
    value: value,
    placeholder: placeholder,
    className: className,
    tagName: tagName,
    isSelected: captionFocused,
    onClick: onFocusCaption
  }, richTextProps));
}

/* harmony default export */ var gallery_gallery = (Gallery);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-image-sizes.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * Calculates the image sizes that are avaible for the current gallery images in order to
 * populate the 'Image size' selector.
 *
 * @param {Array}    images      Basic image block data taken from current gallery innerBlock
 * @param {boolean}  isSelected  Is the block currently selected in the editor.
 * @param {Function} getSettings Block editor store selector.
 *
 * @return {Array} An array of image size options.
 */

function useImageSizes(images, isSelected, getSettings) {
  return (0,external_wp_element_namespaceObject.useMemo)(() => getImageSizing(), [images, isSelected]);

  function getImageSizing() {
    if (!images || images.length === 0) {
      return;
    }

    const {
      imageSizes
    } = getSettings();
    let resizedImages = {};

    if (isSelected) {
      resizedImages = images.reduce((currentResizedImages, img) => {
        if (!img.id) {
          return currentResizedImages;
        }

        const sizes = imageSizes.reduce((currentSizes, size) => {
          const defaultUrl = (0,external_lodash_namespaceObject.get)(img, ['sizes', size.slug, 'url']);
          const mediaDetailsUrl = (0,external_lodash_namespaceObject.get)(img, ['media_details', 'sizes', size.slug, 'source_url']);
          return { ...currentSizes,
            [size.slug]: defaultUrl || mediaDetailsUrl
          };
        }, {});
        return { ...currentResizedImages,
          [parseInt(img.id, 10)]: sizes
        };
      }, {});
    }

    return imageSizes.filter(_ref => {
      let {
        slug
      } = _ref;
      return (0,external_lodash_namespaceObject.some)(resizedImages, sizes => sizes[slug]);
    }).map(_ref2 => {
      let {
        name,
        slug
      } = _ref2;
      return {
        value: slug,
        label: name
      };
    });
  }
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-short-code-transform.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Shortcode transforms don't currently have a tranform method and so can't use a selector to
 * retrieve the data for each image being transformer, so this selector handle this post transformation.
 *
 * @param {Array} shortCodeTransforms An array of image data passed from the shortcode transform.
 *
 * @return {Array} An array of extended image data objects for each of the shortcode transform images.
 */

function useShortCodeTransform(shortCodeTransforms) {
  const newImageData = (0,external_wp_data_namespaceObject.useSelect)(select => {
    if (!shortCodeTransforms || shortCodeTransforms.length === 0) {
      return;
    }

    const getMedia = select(external_wp_coreData_namespaceObject.store).getMedia;
    return shortCodeTransforms.map(image => {
      const imageData = getMedia(image.id);

      if (imageData) {
        return {
          id: imageData.id,
          type: 'image',
          url: imageData.source_url,
          mime: imageData.mime_type,
          alt: imageData.alt_text,
          link: imageData.link
        };
      }

      return undefined;
    });
  }, [shortCodeTransforms]);

  if (!newImageData) {
    return;
  }

  if ((0,external_lodash_namespaceObject.every)(newImageData, img => img && img.url)) {
    return newImageData;
  }
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-new-images.js
/**
 * WordPress dependencies
 */

/**
 * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This
 * is required so default gallery attributes can be applied without overwriting any custom
 * attributes applied to existing images.
 *
 * @param {Array} images    Basic image block data taken from current gallery innerBlock
 * @param {Array} imageData The related image data for each of the current gallery images.
 *
 * @return {Array} An array of any new images that have been added to the gallery.
 */

function useGetNewImages(images, imageData) {
  const [currentImages, setCurrentImages] = (0,external_wp_element_namespaceObject.useState)([]);
  return (0,external_wp_element_namespaceObject.useMemo)(() => getNewImages(), [images, imageData]);

  function getNewImages() {
    let imagesUpdated = false; // First lets check if any images have been deleted.

    const newCurrentImages = currentImages.filter(currentImg => images.find(img => {
      return currentImg.clientId === img.clientId;
    }));

    if (newCurrentImages.length < currentImages.length) {
      imagesUpdated = true;
    } // Now lets see if we have any images hydrated from saved content and if so
    // add them to currentImages state.


    images.forEach(image => {
      if (image.fromSavedContent && !newCurrentImages.find(currentImage => currentImage.id === image.id)) {
        imagesUpdated = true;
        newCurrentImages.push(image);
      }
    }); // Now check for any new images that have been added to InnerBlocks and for which
    // we have the imageData we need for setting default block attributes.

    const newImages = images.filter(image => !newCurrentImages.find(currentImage => image.clientId && currentImage.clientId === image.clientId) && (imageData === null || imageData === void 0 ? void 0 : imageData.find(img => img.id === image.id)) && !image.fromSavedConent);

    if (imagesUpdated || (newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) {
      setCurrentImages([...newCurrentImages, ...newImages]);
    }

    return newImages.length > 0 ? newImages : null;
  }
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-media.js
/**
 * WordPress dependencies
 */



/**
 * Retrieves the extended media info for each gallery image from the store. This is used to
 * determine which image size options are available for the current gallery.
 *
 * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.
 *
 * @return {Array} An array of media info options for each gallery image.
 */

function useGetMedia(innerBlockImages) {
  const [currentImageMedia, setCurrentImageMedia] = (0,external_wp_element_namespaceObject.useState)([]);
  const imageMedia = (0,external_wp_data_namespaceObject.useSelect)(select => {
    if (!(innerBlockImages !== null && innerBlockImages !== void 0 && innerBlockImages.length)) {
      return currentImageMedia;
    }

    const imageIds = innerBlockImages.map(imageBlock => imageBlock.attributes.id).filter(id => id !== undefined);

    if (imageIds.length === 0) {
      return currentImageMedia;
    }

    return select(external_wp_coreData_namespaceObject.store).getMediaItems({
      include: imageIds.join(','),
      per_page: -1
    });
  }, [innerBlockImages]);

  if ((imageMedia === null || imageMedia === void 0 ? void 0 : imageMedia.length) !== (currentImageMedia === null || currentImageMedia === void 0 ? void 0 : currentImageMedia.length) || imageMedia !== null && imageMedia !== void 0 && imageMedia.some(newImage => !currentImageMedia.find(currentImage => currentImage.id === newImage.id))) {
    setCurrentImageMedia(imageMedia);
    return imageMedia;
  }

  return currentImageMedia;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gap-styles.js


/**
 * WordPress dependencies
 */


function GapStyles(_ref) {
  let {
    blockGap,
    clientId
  } = _ref;
  const styleElement = (0,external_wp_element_namespaceObject.useContext)(external_wp_blockEditor_namespaceObject.BlockList.__unstableElementContext); // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
  // gap on the gallery.

  const fallbackValue = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
  let gapValue = fallbackValue;
  let column = fallbackValue;
  let row; // Check for the possibility of split block gap values. See: https://github.com/WordPress/gutenberg/pull/37736

  if (!!blockGap) {
    row = typeof blockGap === 'string' ? blockGap : (blockGap === null || blockGap === void 0 ? void 0 : blockGap.top) || fallbackValue;
    column = typeof blockGap === 'string' ? blockGap : (blockGap === null || blockGap === void 0 ? void 0 : blockGap.left) || fallbackValue;
    gapValue = row === column ? row : `${row} ${column}`;
  }

  const gap = `#block-${clientId} {
		--wp--style--unstable-gallery-gap: ${column};
		gap: ${gapValue}
	}`;

  const GapStyle = () => {
    return (0,external_wp_element_namespaceObject.createElement)("style", null, gap);
  };

  return gap && styleElement ? (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(GapStyle, null), styleElement) : null;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit.js



/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */












/**
 * Internal dependencies
 */












const MAX_COLUMNS = 8;
const linkOptions = [{
  value: LINK_DESTINATION_ATTACHMENT,
  label: (0,external_wp_i18n_namespaceObject.__)('Attachment Page')
}, {
  value: LINK_DESTINATION_MEDIA,
  label: (0,external_wp_i18n_namespaceObject.__)('Media File')
}, {
  value: LINK_DESTINATION_NONE,
  label: (0,external_wp_i18n_namespaceObject._x)('None', 'Media item link option')
}];
const edit_ALLOWED_MEDIA_TYPES = ['image'];
const PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.isNative ? (0,external_wp_i18n_namespaceObject.__)('ADD MEDIA') : (0,external_wp_i18n_namespaceObject.__)('Drag images, upload new ones or select files from your library.');
const MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.isNative ? {
  type: 'stepper'
} : {};

function GalleryEdit(props) {
  var _attributes$style, _attributes$style$spa;

  const {
    setAttributes,
    attributes,
    className,
    clientId,
    noticeOperations,
    isSelected,
    noticeUI,
    insertBlocksAfter
  } = props;
  const {
    columns,
    imageCrop,
    linkTarget,
    linkTo,
    shortCodeTransforms,
    sizeSlug
  } = attributes;
  const {
    __unstableMarkNextChangeAsNotPersistent,
    replaceInnerBlocks,
    updateBlockAttributes,
    selectBlock,
    clearSelectedBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const {
    createSuccessNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    getBlock,
    getSettings,
    preferredStyle
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _preferredStyleVariat;

    const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
    const preferredStyleVariations = settings.__experimentalPreferredStyleVariations;
    return {
      getBlock: select(external_wp_blockEditor_namespaceObject.store).getBlock,
      getSettings: select(external_wp_blockEditor_namespaceObject.store).getSettings,
      preferredStyle: preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat['core/image']
    };
  }, []);
  const innerBlockImages = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getBlock;

    return (_select$getBlock = select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId)) === null || _select$getBlock === void 0 ? void 0 : _select$getBlock.innerBlocks;
  }, [clientId]);
  const wasBlockJustInserted = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(external_wp_blockEditor_namespaceObject.store).wasBlockJustInserted(clientId, 'inserter_menu');
  }, [clientId]);
  const images = (0,external_wp_element_namespaceObject.useMemo)(() => innerBlockImages === null || innerBlockImages === void 0 ? void 0 : innerBlockImages.map(block => ({
    clientId: block.clientId,
    id: block.attributes.id,
    url: block.attributes.url,
    attributes: block.attributes,
    fromSavedContent: Boolean(block.originalContent)
  })), [innerBlockImages]);
  const imageData = useGetMedia(innerBlockImages);
  const newImages = useGetNewImages(images, imageData);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    newImages === null || newImages === void 0 ? void 0 : newImages.forEach(newImage => {
      updateBlockAttributes(newImage.clientId, { ...buildImageAttributes(newImage.attributes),
        id: newImage.id,
        align: undefined
      });
    });

    if ((newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) {
      clearSelectedBlock();
    }
  }, [newImages]);
  const shortCodeImages = useShortCodeTransform(shortCodeTransforms);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!shortCodeTransforms || !shortCodeImages) {
      return;
    }

    updateImages(shortCodeImages);
    setAttributes({
      shortCodeTransforms: undefined
    });
  }, [shortCodeTransforms, shortCodeImages]);
  const imageSizeOptions = useImageSizes(imageData, isSelected, getSettings);
  /**
   * Determines the image attributes that should be applied to an image block
   * after the gallery updates.
   *
   * The gallery will receive the full collection of images when a new image
   * is added. As a result we need to reapply the image's original settings if
   * it already existed in the gallery. If the image is in fact new, we need
   * to apply the gallery's current settings to the image.
   *
   * @param {Object} imageAttributes Media object for the actual image.
   * @return {Object}                Attributes to set on the new image block.
   */

  function buildImageAttributes(imageAttributes) {
    const image = imageAttributes.id ? (0,external_lodash_namespaceObject.find)(imageData, {
      id: imageAttributes.id
    }) : null;
    let newClassName;

    if (imageAttributes.className && imageAttributes.className !== '') {
      newClassName = imageAttributes.className;
    } else {
      newClassName = preferredStyle ? `is-style-${preferredStyle}` : undefined;
    }

    return { ...pickRelevantMediaFiles(imageAttributes, sizeSlug),
      ...utils_getHrefAndDestination(image, linkTo),
      ...getUpdatedLinkTargetSettings(linkTarget, attributes),
      className: newClassName,
      sizeSlug
    };
  }

  function isValidFileType(file) {
    var _file$url;

    return edit_ALLOWED_MEDIA_TYPES.some(mediaType => {
      var _file$type;

      return ((_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf(mediaType)) === 0;
    }) || ((_file$url = file.url) === null || _file$url === void 0 ? void 0 : _file$url.indexOf('blob:')) === 0;
  }

  function updateImages(selectedImages) {
    const newFileUploads = Object.prototype.toString.call(selectedImages) === '[object FileList]';
    const imageArray = newFileUploads ? Array.from(selectedImages).map(file => {
      if (!file.url) {
        return pickRelevantMediaFiles({
          url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
        });
      }

      return file;
    }) : selectedImages;

    if (!imageArray.every(isValidFileType)) {
      noticeOperations.removeAllNotices();
      noticeOperations.createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
        id: 'gallery-upload-invalid-file'
      });
    }

    const processedImages = imageArray.filter(file => file.url || isValidFileType(file)).map(file => {
      if (!file.url) {
        return pickRelevantMediaFiles({
          url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
        });
      }

      return file;
    }); // Because we are reusing existing innerImage blocks any reordering
    // done in the media library will be lost so we need to reapply that ordering
    // once the new image blocks are merged in with existing.

    const newOrderMap = processedImages.reduce((result, image, index) => (result[image.id] = index, result), {});
    const existingImageBlocks = !newFileUploads ? innerBlockImages.filter(block => processedImages.find(img => img.id === block.attributes.id)) : innerBlockImages;
    const newImageList = processedImages.filter(img => !existingImageBlocks.find(existingImg => img.id === existingImg.attributes.id));
    const newBlocks = newImageList.map(image => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
        id: image.id,
        url: image.url,
        caption: image.caption,
        alt: image.alt
      });
    });

    if ((newBlocks === null || newBlocks === void 0 ? void 0 : newBlocks.length) > 0) {
      selectBlock(newBlocks[0].clientId);
    }

    replaceInnerBlocks(clientId, (0,external_lodash_namespaceObject.concat)(existingImageBlocks, newBlocks).sort((a, b) => newOrderMap[a.attributes.id] - newOrderMap[b.attributes.id]));
  }

  function onUploadError(message) {
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
  }

  function setLinkTo(value) {
    setAttributes({
      linkTo: value
    });
    const changedAttributes = {};
    const blocks = [];
    getBlock(clientId).innerBlocks.forEach(block => {
      blocks.push(block.clientId);
      const image = block.attributes.id ? (0,external_lodash_namespaceObject.find)(imageData, {
        id: block.attributes.id
      }) : null;
      changedAttributes[block.clientId] = utils_getHrefAndDestination(image, value);
    });
    updateBlockAttributes(blocks, changedAttributes, true);
    const linkToText = [...linkOptions].find(linkType => linkType.value === value);
    createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: image size settings */
    (0,external_wp_i18n_namespaceObject.__)('All gallery image links updated to: %s'), linkToText.label), {
      id: 'gallery-attributes-linkTo',
      type: 'snackbar'
    });
  }

  function setColumnsNumber(value) {
    setAttributes({
      columns: value
    });
  }

  function toggleImageCrop() {
    setAttributes({
      imageCrop: !imageCrop
    });
  }

  function getImageCropHelp(checked) {
    return checked ? (0,external_wp_i18n_namespaceObject.__)('Thumbnails are cropped to align.') : (0,external_wp_i18n_namespaceObject.__)('Thumbnails are not cropped.');
  }

  function toggleOpenInNewTab(openInNewTab) {
    const newLinkTarget = openInNewTab ? '_blank' : undefined;
    setAttributes({
      linkTarget: newLinkTarget
    });
    const changedAttributes = {};
    const blocks = [];
    getBlock(clientId).innerBlocks.forEach(block => {
      blocks.push(block.clientId);
      changedAttributes[block.clientId] = getUpdatedLinkTargetSettings(newLinkTarget, block.attributes);
    });
    updateBlockAttributes(blocks, changedAttributes, true);
    const noticeText = openInNewTab ? (0,external_wp_i18n_namespaceObject.__)('All gallery images updated to open in new tab') : (0,external_wp_i18n_namespaceObject.__)('All gallery images updated to not open in new tab');
    createSuccessNotice(noticeText, {
      id: 'gallery-attributes-openInNewTab',
      type: 'snackbar'
    });
  }

  function updateImagesSize(newSizeSlug) {
    setAttributes({
      sizeSlug: newSizeSlug
    });
    const changedAttributes = {};
    const blocks = [];
    getBlock(clientId).innerBlocks.forEach(block => {
      blocks.push(block.clientId);
      const image = block.attributes.id ? (0,external_lodash_namespaceObject.find)(imageData, {
        id: block.attributes.id
      }) : null;
      changedAttributes[block.clientId] = getImageSizeAttributes(image, newSizeSlug);
    });
    updateBlockAttributes(blocks, changedAttributes, true);
    const imageSize = imageSizeOptions.find(size => size.value === newSizeSlug);
    createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: image size settings */
    (0,external_wp_i18n_namespaceObject.__)('All gallery image sizes updated to: %s'), imageSize.label), {
      id: 'gallery-attributes-sizeSlug',
      type: 'snackbar'
    });
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.
    if (!linkTo) {
      var _window, _window$wp, _window$wp$media, _window$wp$media$view, _window$wp$media$view2, _window$wp$media$view3;

      __unstableMarkNextChangeAsNotPersistent();

      setAttributes({
        linkTo: ((_window = window) === null || _window === void 0 ? void 0 : (_window$wp = _window.wp) === null || _window$wp === void 0 ? void 0 : (_window$wp$media = _window$wp.media) === null || _window$wp$media === void 0 ? void 0 : (_window$wp$media$view = _window$wp$media.view) === null || _window$wp$media$view === void 0 ? void 0 : (_window$wp$media$view2 = _window$wp$media$view.settings) === null || _window$wp$media$view2 === void 0 ? void 0 : (_window$wp$media$view3 = _window$wp$media$view2.defaultProps) === null || _window$wp$media$view3 === void 0 ? void 0 : _window$wp$media$view3.link) || LINK_DESTINATION_NONE
      });
    }
  }, [linkTo]);
  const hasImages = !!images.length;
  const hasImageIds = hasImages && images.some(image => !!image.id);
  const imagesUploading = images.some(img => {
    var _img$url;

    return !img.id && ((_img$url = img.url) === null || _img$url === void 0 ? void 0 : _img$url.indexOf('blob:')) === 0;
  }); // MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.

  const mediaPlaceholderProps = external_wp_element_namespaceObject.Platform.select({
    web: {
      addToGallery: false,
      disableMediaButtons: imagesUploading,
      value: {}
    },
    native: {
      addToGallery: hasImageIds,
      isAppender: hasImages,
      disableMediaButtons: hasImages && !isSelected || imagesUploading,
      value: hasImageIds ? images : {},
      autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted
    }
  });
  const mediaPlaceholder = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, _extends({
    handleUpload: false,
    icon: sharedIcon,
    labels: {
      title: (0,external_wp_i18n_namespaceObject.__)('Gallery'),
      instructions: PLACEHOLDER_TEXT
    },
    onSelect: updateImages,
    accept: "image/*",
    allowedTypes: edit_ALLOWED_MEDIA_TYPES,
    multiple: true,
    onError: onUploadError,
    notices: noticeUI
  }, mediaPlaceholderProps));
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()(className, 'has-nested-images')
  });

  if (!hasImages) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, mediaPlaceholder);
  }

  const hasLinkTo = linkTo && linkTo !== 'none';
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Gallery settings')
  }, images.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, _extends({
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: columns ? columns : defaultColumnsNumber(images.length),
    onChange: setColumnsNumber,
    min: 1,
    max: Math.min(MAX_COLUMNS, images.length)
  }, MOBILE_CONTROL_PROPS_RANGE_CONTROL, {
    required: true
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Crop images'),
    checked: !!imageCrop,
    onChange: toggleImageCrop,
    help: getImageCropHelp
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
    value: linkTo,
    onChange: setLinkTo,
    options: linkOptions,
    hideCancelButton: true
  }), hasLinkTo && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    checked: linkTarget === '_blank',
    onChange: toggleOpenInNewTab
  }), (imageSizeOptions === null || imageSizeOptions === void 0 ? void 0 : imageSizeOptions.length) > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
    value: sizeSlug,
    options: imageSizeOptions,
    onChange: updateImagesSize,
    hideCancelButton: true
  }), external_wp_element_namespaceObject.Platform.isWeb && !imageSizeOptions && hasImageIds && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
    className: 'gallery-image-sizes'
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, (0,external_wp_i18n_namespaceObject.__)('Image size')), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, {
    className: 'gallery-image-sizes__loading'
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_i18n_namespaceObject.__)('Loading options…'))))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    allowedTypes: edit_ALLOWED_MEDIA_TYPES,
    accept: "image/*",
    handleUpload: false,
    onSelect: updateImages,
    name: (0,external_wp_i18n_namespaceObject.__)('Add'),
    multiple: true,
    mediaIds: images.map(image => image.id),
    addToGallery: hasImageIds
  })), noticeUI, external_wp_element_namespaceObject.Platform.isWeb && (0,external_wp_element_namespaceObject.createElement)(GapStyles, {
    blockGap: (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : (_attributes$style$spa = _attributes$style.spacing) === null || _attributes$style$spa === void 0 ? void 0 : _attributes$style$spa.blockGap,
    clientId: clientId
  }), (0,external_wp_element_namespaceObject.createElement)(gallery_gallery, _extends({}, props, {
    images: images,
    mediaPlaceholder: !hasImages || external_wp_element_namespaceObject.Platform.isNative ? mediaPlaceholder : undefined,
    blockProps: blockProps,
    insertBlocksAfter: insertBlocksAfter
  })));
}

/* harmony default export */ var gallery_edit = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices, (0,external_wp_viewport_namespaceObject.withViewportMatch)({
  isNarrow: '< small'
})])(GalleryEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/shared.js
/**
 * External dependencies
 */

const shared_pickRelevantMediaFiles = function (image) {
  let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
  const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']);
  imageProps.url = (0,external_lodash_namespaceObject.get)(image, ['sizes', sizeSlug, 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url;
  const fullUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', 'full', 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', 'full', 'source_url']);

  if (fullUrl) {
    imageProps.fullUrl = fullUrl;
  }

  return imageProps;
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/image.js


/**
 * WordPress dependencies
 */

const image_image = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"
}));
/* harmony default export */ var library_image = (image_image);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js


/**
 * WordPress dependencies
 */

const chevronLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
}));
/* harmony default export */ var chevron_left = (chevronLeft);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js


/**
 * WordPress dependencies
 */

const chevronRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
}));
/* harmony default export */ var chevron_right = (chevronRight);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js


/**
 * WordPress dependencies
 */

const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
}));
/* harmony default export */ var close_small = (closeSmall);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/constants.js
const v1_constants_LINK_DESTINATION_NONE = 'none';
const v1_constants_LINK_DESTINATION_MEDIA = 'file';
const v1_constants_LINK_DESTINATION_ATTACHMENT = 'post';

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/gallery-image.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */




const isTemporaryImage = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);

class GalleryImage extends external_wp_element_namespaceObject.Component {
  constructor() {
    super(...arguments);
    this.onSelectImage = this.onSelectImage.bind(this);
    this.onRemoveImage = this.onRemoveImage.bind(this);
    this.bindContainer = this.bindContainer.bind(this);
    this.onEdit = this.onEdit.bind(this);
    this.onSelectImageFromLibrary = this.onSelectImageFromLibrary.bind(this);
    this.onSelectCustomURL = this.onSelectCustomURL.bind(this);
    this.state = {
      isEditing: false
    };
  }

  bindContainer(ref) {
    this.container = ref;
  }

  onSelectImage() {
    if (!this.props.isSelected) {
      this.props.onSelect();
    }
  }

  onRemoveImage(event) {
    if (this.container === this.container.ownerDocument.activeElement && this.props.isSelected && [external_wp_keycodes_namespaceObject.BACKSPACE, external_wp_keycodes_namespaceObject.DELETE].indexOf(event.keyCode) !== -1) {
      event.preventDefault();
      this.props.onRemove();
    }
  }

  onEdit() {
    this.setState({
      isEditing: true
    });
  }

  componentDidUpdate() {
    const {
      image,
      url,
      __unstableMarkNextChangeAsNotPersistent
    } = this.props;

    if (image && !url) {
      __unstableMarkNextChangeAsNotPersistent();

      this.props.setAttributes({
        url: image.source_url,
        alt: image.alt_text
      });
    }
  }

  deselectOnBlur() {
    this.props.onDeselect();
  }

  onSelectImageFromLibrary(media) {
    const {
      setAttributes,
      id,
      url,
      alt,
      caption,
      sizeSlug
    } = this.props;

    if (!media || !media.url) {
      return;
    }

    let mediaAttributes = shared_pickRelevantMediaFiles(media, sizeSlug); // If the current image is temporary but an alt text was meanwhile
    // written by the user, make sure the text is not overwritten.

    if (isTemporaryImage(id, url)) {
      if (alt) {
        mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['alt']);
      }
    } // If a caption text was meanwhile written by the user,
    // make sure the text is not overwritten by empty captions.


    if (caption && !(0,external_lodash_namespaceObject.get)(mediaAttributes, ['caption'])) {
      mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['caption']);
    }

    setAttributes(mediaAttributes);
    this.setState({
      isEditing: false
    });
  }

  onSelectCustomURL(newURL) {
    const {
      setAttributes,
      url
    } = this.props;

    if (newURL !== url) {
      setAttributes({
        url: newURL,
        id: undefined
      });
      this.setState({
        isEditing: false
      });
    }
  }

  render() {
    const {
      url,
      alt,
      id,
      linkTo,
      link,
      isFirstItem,
      isLastItem,
      isSelected,
      caption,
      onRemove,
      onMoveForward,
      onMoveBackward,
      setAttributes,
      'aria-label': ariaLabel
    } = this.props;
    const {
      isEditing
    } = this.state;
    let href;

    switch (linkTo) {
      case v1_constants_LINK_DESTINATION_MEDIA:
        href = url;
        break;

      case v1_constants_LINK_DESTINATION_ATTACHMENT:
        href = link;
        break;
    }

    const img = // Disable reason: Image itself is not meant to be interactive, but should
    // direct image selection and unfocus caption fields.

    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
    (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("img", {
      src: url,
      alt: alt,
      "data-id": id,
      onKeyDown: this.onRemoveImage,
      tabIndex: "0",
      "aria-label": ariaLabel,
      ref: this.bindContainer
    }), (0,external_wp_blob_namespaceObject.isBlobURL)(url) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))
    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
    ;
    const className = classnames_default()({
      'is-selected': isSelected,
      'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(url)
    });
    return (// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
      (0,external_wp_element_namespaceObject.createElement)("figure", {
        className: className,
        onClick: this.onSelectImage,
        onFocus: this.onSelectImage
      }, !isEditing && (href ? (0,external_wp_element_namespaceObject.createElement)("a", {
        href: href
      }, img) : img), isEditing && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
        labels: {
          title: (0,external_wp_i18n_namespaceObject.__)('Edit gallery image')
        },
        icon: library_image,
        onSelect: this.onSelectImageFromLibrary,
        onSelectURL: this.onSelectCustomURL,
        accept: "image/*",
        allowedTypes: ['image'],
        value: {
          id,
          src: url
        }
      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
        className: "block-library-gallery-item__inline-menu is-left"
      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        icon: chevron_left,
        onClick: isFirstItem ? undefined : onMoveBackward,
        label: (0,external_wp_i18n_namespaceObject.__)('Move image backward'),
        "aria-disabled": isFirstItem,
        disabled: !isSelected
      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        icon: chevron_right,
        onClick: isLastItem ? undefined : onMoveForward,
        label: (0,external_wp_i18n_namespaceObject.__)('Move image forward'),
        "aria-disabled": isLastItem,
        disabled: !isSelected
      })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
        className: "block-library-gallery-item__inline-menu is-right"
      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        icon: library_edit,
        onClick: this.onEdit,
        label: (0,external_wp_i18n_namespaceObject.__)('Replace image'),
        disabled: !isSelected
      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        icon: close_small,
        onClick: onRemove,
        label: (0,external_wp_i18n_namespaceObject.__)('Remove image'),
        disabled: !isSelected
      })), !isEditing && (isSelected || caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
        tagName: "figcaption",
        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
        placeholder: isSelected ? (0,external_wp_i18n_namespaceObject.__)('Add caption') : null,
        value: caption,
        onChange: newCaption => setAttributes({
          caption: newCaption
        }),
        inlineToolbar: true
      }))
    );
  }

}

/* harmony default export */ var gallery_image = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, ownProps) => {
  const {
    getMedia
  } = select(external_wp_coreData_namespaceObject.store);
  const {
    id
  } = ownProps;
  return {
    image: id ? getMedia(parseInt(id, 10)) : null
  };
}), (0,external_wp_data_namespaceObject.withDispatch)(dispatch => {
  const {
    __unstableMarkNextChangeAsNotPersistent
  } = dispatch(external_wp_blockEditor_namespaceObject.store);
  return {
    __unstableMarkNextChangeAsNotPersistent
  };
})])(GalleryImage));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/gallery.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



const gallery_Gallery = props => {
  const {
    attributes,
    isSelected,
    setAttributes,
    selectedImage,
    mediaPlaceholder,
    onMoveBackward,
    onMoveForward,
    onRemoveImage,
    onSelectImage,
    onDeselectImage,
    onSetImageAttributes,
    insertBlocksAfter,
    blockProps
  } = props;
  const {
    align,
    columns = defaultColumnsNumberV1(attributes),
    caption,
    imageCrop,
    images
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)("figure", _extends({}, blockProps, {
    className: classnames_default()(blockProps.className, {
      [`align${align}`]: align,
      [`columns-${columns}`]: columns,
      'is-cropped': imageCrop
    })
  }), (0,external_wp_element_namespaceObject.createElement)("ul", {
    className: "blocks-gallery-grid"
  }, images.map((img, index) => {
    const ariaLabel = (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: 1: the order number of the image. 2: the total number of images. */
    (0,external_wp_i18n_namespaceObject.__)('image %1$d of %2$d in gallery'), index + 1, images.length);
    return (0,external_wp_element_namespaceObject.createElement)("li", {
      className: "blocks-gallery-item",
      key: img.id ? `${img.id}-${index}` : img.url
    }, (0,external_wp_element_namespaceObject.createElement)(gallery_image, {
      url: img.url,
      alt: img.alt,
      id: img.id,
      isFirstItem: index === 0,
      isLastItem: index + 1 === images.length,
      isSelected: isSelected && selectedImage === index,
      onMoveBackward: onMoveBackward(index),
      onMoveForward: onMoveForward(index),
      onRemove: onRemoveImage(index),
      onSelect: onSelectImage(index),
      onDeselect: onDeselectImage(index),
      setAttributes: attrs => onSetImageAttributes(index, attrs),
      caption: img.caption,
      "aria-label": ariaLabel,
      sizeSlug: attributes.sizeSlug
    }));
  })), mediaPlaceholder, (0,external_wp_element_namespaceObject.createElement)(gallery_RichTextVisibilityHelper, {
    isHidden: !isSelected && external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption),
    tagName: "figcaption",
    className: "blocks-gallery-caption",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write gallery caption…'),
    value: caption,
    onChange: value => setAttributes({
      caption: value
    }),
    inlineToolbar: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  }));
};

function gallery_RichTextVisibilityHelper(_ref) {
  let {
    isHidden,
    ...richTextProps
  } = _ref;
  return isHidden ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, _extends({
    as: external_wp_blockEditor_namespaceObject.RichText
  }, richTextProps)) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, richTextProps);
}

/* harmony default export */ var v1_gallery = (gallery_Gallery);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */






const edit_MAX_COLUMNS = 8;
const edit_linkOptions = [{
  value: v1_constants_LINK_DESTINATION_ATTACHMENT,
  label: (0,external_wp_i18n_namespaceObject.__)('Attachment Page')
}, {
  value: v1_constants_LINK_DESTINATION_MEDIA,
  label: (0,external_wp_i18n_namespaceObject.__)('Media File')
}, {
  value: v1_constants_LINK_DESTINATION_NONE,
  label: (0,external_wp_i18n_namespaceObject.__)('None')
}];
const v1_edit_ALLOWED_MEDIA_TYPES = ['image'];
const edit_PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.select({
  web: (0,external_wp_i18n_namespaceObject.__)('Drag images, upload new ones or select files from your library.'),
  native: (0,external_wp_i18n_namespaceObject.__)('ADD MEDIA')
});
const edit_MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.select({
  web: {},
  native: {
    type: 'stepper'
  }
});

function edit_GalleryEdit(props) {
  const {
    attributes,
    clientId,
    isSelected,
    noticeUI,
    noticeOperations,
    onFocus
  } = props;
  const {
    columns = defaultColumnsNumberV1(attributes),
    imageCrop,
    images,
    linkTo,
    sizeSlug
  } = attributes;
  const [selectedImage, setSelectedImage] = (0,external_wp_element_namespaceObject.useState)();
  const [attachmentCaptions, setAttachmentCaptions] = (0,external_wp_element_namespaceObject.useState)();
  const {
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const {
    imageSizes,
    mediaUpload,
    getMedia,
    wasBlockJustInserted
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
    return {
      imageSizes: settings.imageSizes,
      mediaUpload: settings.mediaUpload,
      getMedia: select(external_wp_coreData_namespaceObject.store).getMedia,
      wasBlockJustInserted: select(external_wp_blockEditor_namespaceObject.store).wasBlockJustInserted(clientId, 'inserter_menu')
    };
  });
  const resizedImages = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (isSelected) {
      return (0,external_lodash_namespaceObject.reduce)(attributes.ids, (currentResizedImages, id) => {
        if (!id) {
          return currentResizedImages;
        }

        const image = getMedia(id);
        const sizes = (0,external_lodash_namespaceObject.reduce)(imageSizes, (currentSizes, size) => {
          const defaultUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', size.slug, 'url']);
          const mediaDetailsUrl = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size.slug, 'source_url']);
          return { ...currentSizes,
            [size.slug]: defaultUrl || mediaDetailsUrl
          };
        }, {});
        return { ...currentResizedImages,
          [parseInt(id, 10)]: sizes
        };
      }, {});
    }

    return {};
  }, [isSelected, attributes.ids, imageSizes]);

  function onFocusGalleryCaption() {
    setSelectedImage();
  }

  function setAttributes(newAttrs) {
    if (newAttrs.ids) {
      throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');
    }

    if (newAttrs.images) {
      newAttrs = { ...newAttrs,
        // Unlike images[ n ].id which is a string, always ensure the
        // ids array contains numbers as per its attribute type.
        ids: (0,external_lodash_namespaceObject.map)(newAttrs.images, _ref => {
          let {
            id
          } = _ref;
          return parseInt(id, 10);
        })
      };
    }

    props.setAttributes(newAttrs);
  }

  function onSelectImage(index) {
    return () => {
      setSelectedImage(index);
    };
  }

  function onDeselectImage() {
    return () => {
      setSelectedImage();
    };
  }

  function onMove(oldIndex, newIndex) {
    const newImages = [...images];
    newImages.splice(newIndex, 1, images[oldIndex]);
    newImages.splice(oldIndex, 1, images[newIndex]);
    setSelectedImage(newIndex);
    setAttributes({
      images: newImages
    });
  }

  function onMoveForward(oldIndex) {
    return () => {
      if (oldIndex === images.length - 1) {
        return;
      }

      onMove(oldIndex, oldIndex + 1);
    };
  }

  function onMoveBackward(oldIndex) {
    return () => {
      if (oldIndex === 0) {
        return;
      }

      onMove(oldIndex, oldIndex - 1);
    };
  }

  function onRemoveImage(index) {
    return () => {
      const newImages = (0,external_lodash_namespaceObject.filter)(images, (img, i) => index !== i);
      setSelectedImage();
      setAttributes({
        images: newImages,
        columns: attributes.columns ? Math.min(newImages.length, attributes.columns) : attributes.columns
      });
    };
  }

  function selectCaption(newImage) {
    // The image id in both the images and attachmentCaptions arrays is a
    // string, so ensure comparison works correctly by converting the
    // newImage.id to a string.
    const newImageId = (0,external_lodash_namespaceObject.toString)(newImage.id);
    const currentImage = (0,external_lodash_namespaceObject.find)(images, {
      id: newImageId
    });
    const currentImageCaption = currentImage ? currentImage.caption : newImage.caption;

    if (!attachmentCaptions) {
      return currentImageCaption;
    }

    const attachment = (0,external_lodash_namespaceObject.find)(attachmentCaptions, {
      id: newImageId
    }); // If the attachment caption is updated.

    if (attachment && attachment.caption !== newImage.caption) {
      return newImage.caption;
    }

    return currentImageCaption;
  }

  function onSelectImages(newImages) {
    setAttachmentCaptions(newImages.map(newImage => ({
      // Store the attachmentCaption id as a string for consistency
      // with the type of the id in the images attribute.
      id: (0,external_lodash_namespaceObject.toString)(newImage.id),
      caption: newImage.caption
    })));
    setAttributes({
      images: newImages.map(newImage => ({ ...shared_pickRelevantMediaFiles(newImage, sizeSlug),
        caption: selectCaption(newImage, images, attachmentCaptions),
        // The id value is stored in a data attribute, so when the
        // block is parsed it's converted to a string. Converting
        // to a string here ensures it's type is consistent.
        id: (0,external_lodash_namespaceObject.toString)(newImage.id)
      })),
      columns: attributes.columns ? Math.min(newImages.length, attributes.columns) : attributes.columns
    });
  }

  function onUploadError(message) {
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
  }

  function setLinkTo(value) {
    setAttributes({
      linkTo: value
    });
  }

  function setColumnsNumber(value) {
    setAttributes({
      columns: value
    });
  }

  function toggleImageCrop() {
    setAttributes({
      imageCrop: !imageCrop
    });
  }

  function getImageCropHelp(checked) {
    return checked ? (0,external_wp_i18n_namespaceObject.__)('Thumbnails are cropped to align.') : (0,external_wp_i18n_namespaceObject.__)('Thumbnails are not cropped.');
  }

  function setImageAttributes(index, newAttributes) {
    if (!images[index]) {
      return;
    }

    setAttributes({
      images: [...images.slice(0, index), { ...images[index],
        ...newAttributes
      }, ...images.slice(index + 1)]
    });
  }

  function getImagesSizeOptions() {
    return (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref2 => {
      let {
        slug
      } = _ref2;
      return (0,external_lodash_namespaceObject.some)(resizedImages, sizes => sizes[slug]);
    }), _ref3 => {
      let {
        name,
        slug
      } = _ref3;
      return {
        value: slug,
        label: name
      };
    });
  }

  function updateImagesSize(newSizeSlug) {
    const updatedImages = (0,external_lodash_namespaceObject.map)(images, image => {
      if (!image.id) {
        return image;
      }

      const url = (0,external_lodash_namespaceObject.get)(resizedImages, [parseInt(image.id, 10), newSizeSlug]);
      return { ...image,
        ...(url && {
          url
        })
      };
    });
    setAttributes({
      images: updatedImages,
      sizeSlug: newSizeSlug
    });
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (external_wp_element_namespaceObject.Platform.OS === 'web' && images && images.length > 0 && (0,external_lodash_namespaceObject.every)(images, _ref4 => {
      let {
        url
      } = _ref4;
      return (0,external_wp_blob_namespaceObject.isBlobURL)(url);
    })) {
      const filesList = (0,external_lodash_namespaceObject.map)(images, _ref5 => {
        let {
          url
        } = _ref5;
        return (0,external_wp_blob_namespaceObject.getBlobByURL)(url);
      });
      (0,external_lodash_namespaceObject.forEach)(images, _ref6 => {
        let {
          url
        } = _ref6;
        return (0,external_wp_blob_namespaceObject.revokeBlobURL)(url);
      });
      mediaUpload({
        filesList,
        onFileChange: onSelectImages,
        allowedTypes: ['image']
      });
    }
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Deselect images when deselecting the block.
    if (!isSelected) {
      setSelectedImage();
    }
  }, [isSelected]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // linkTo attribute must be saved so blocks don't break when changing
    // image_default_link_type in options.php.
    if (!linkTo) {
      var _window, _window$wp, _window$wp$media, _window$wp$media$view, _window$wp$media$view2, _window$wp$media$view3;

      __unstableMarkNextChangeAsNotPersistent();

      setAttributes({
        linkTo: ((_window = window) === null || _window === void 0 ? void 0 : (_window$wp = _window.wp) === null || _window$wp === void 0 ? void 0 : (_window$wp$media = _window$wp.media) === null || _window$wp$media === void 0 ? void 0 : (_window$wp$media$view = _window$wp$media.view) === null || _window$wp$media$view === void 0 ? void 0 : (_window$wp$media$view2 = _window$wp$media$view.settings) === null || _window$wp$media$view2 === void 0 ? void 0 : (_window$wp$media$view3 = _window$wp$media$view2.defaultProps) === null || _window$wp$media$view3 === void 0 ? void 0 : _window$wp$media$view3.link) || v1_constants_LINK_DESTINATION_NONE
      });
    }
  }, [linkTo]);
  const hasImages = !!images.length;
  const hasImageIds = hasImages && images.some(image => !!image.id);
  const mediaPlaceholder = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
    addToGallery: hasImageIds,
    isAppender: hasImages,
    disableMediaButtons: hasImages && !isSelected,
    icon: !hasImages && sharedIcon,
    labels: {
      title: !hasImages && (0,external_wp_i18n_namespaceObject.__)('Gallery'),
      instructions: !hasImages && edit_PLACEHOLDER_TEXT
    },
    onSelect: onSelectImages,
    accept: "image/*",
    allowedTypes: v1_edit_ALLOWED_MEDIA_TYPES,
    multiple: true,
    value: hasImageIds ? images : {},
    onError: onUploadError,
    notices: hasImages ? undefined : noticeUI,
    onFocus: onFocus,
    autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();

  if (!hasImages) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, mediaPlaceholder);
  }

  const imageSizeOptions = getImagesSizeOptions();
  const shouldShowSizeOptions = hasImages && !(0,external_lodash_namespaceObject.isEmpty)(imageSizeOptions);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Gallery settings')
  }, images.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, _extends({
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: columns,
    onChange: setColumnsNumber,
    min: 1,
    max: Math.min(edit_MAX_COLUMNS, images.length)
  }, edit_MOBILE_CONTROL_PROPS_RANGE_CONTROL, {
    required: true
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Crop images'),
    checked: !!imageCrop,
    onChange: toggleImageCrop,
    help: getImageCropHelp
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
    value: linkTo,
    onChange: setLinkTo,
    options: edit_linkOptions,
    hideCancelButton: true
  }), shouldShowSizeOptions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
    value: sizeSlug,
    options: imageSizeOptions,
    onChange: updateImagesSize,
    hideCancelButton: true
  }))), noticeUI, (0,external_wp_element_namespaceObject.createElement)(v1_gallery, _extends({}, props, {
    selectedImage: selectedImage,
    mediaPlaceholder: mediaPlaceholder,
    onMoveBackward: onMoveBackward,
    onMoveForward: onMoveForward,
    onRemoveImage: onRemoveImage,
    onSelectImage: onSelectImage,
    onDeselectImage: onDeselectImage,
    onSetImageAttributes: setImageAttributes,
    blockProps: blockProps // This prop is used by gallery.native.js.
    ,
    onFocusGalleryCaption: onFocusGalleryCaption
  })));
}

/* harmony default export */ var v1_edit = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices, (0,external_wp_viewport_namespaceObject.withViewportMatch)({
  isNarrow: '< small'
})])(edit_GalleryEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit-wrapper.js


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




/*
 * Using a wrapper around the logic to load the edit for v1 of Gallery block
 * or the refactored version with InnerBlocks. This is to prevent conditional
 * use of hooks lint errors if adding this logic to the top of the edit component.
 */

function GalleryEditWrapper(props) {
  if (!isGalleryV2Enabled()) {
    return (0,external_wp_element_namespaceObject.createElement)(v1_edit, props);
  }

  return (0,external_wp_element_namespaceObject.createElement)(gallery_edit, props);
}

/* harmony default export */ var edit_wrapper = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices])(GalleryEditWrapper));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/save.js


/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



function saveV1(_ref) {
  let {
    attributes
  } = _ref;
  const {
    images,
    columns = defaultColumnsNumberV1(attributes),
    imageCrop,
    caption,
    linkTo
  } = attributes;
  const className = `columns-${columns} ${imageCrop ? 'is-cropped' : ''}`;
  return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  }), (0,external_wp_element_namespaceObject.createElement)("ul", {
    className: "blocks-gallery-grid"
  }, images.map(image => {
    let href;

    switch (linkTo) {
      case v1_constants_LINK_DESTINATION_MEDIA:
        href = image.fullUrl || image.url;
        break;

      case v1_constants_LINK_DESTINATION_ATTACHMENT:
        href = image.link;
        break;
    }

    const img = (0,external_wp_element_namespaceObject.createElement)("img", {
      src: image.url,
      alt: image.alt,
      "data-id": image.id,
      "data-full-url": image.fullUrl,
      "data-link": image.link,
      className: image.id ? `wp-image-${image.id}` : null
    });
    return (0,external_wp_element_namespaceObject.createElement)("li", {
      key: image.id || image.url,
      className: "blocks-gallery-item"
    }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
      href: href
    }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      className: "blocks-gallery-item__caption",
      value: image.caption
    })));
  })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    className: "blocks-gallery-caption",
    value: caption
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function saveWithInnerBlocks(_ref) {
  let {
    attributes
  } = _ref;

  if (!isGalleryV2Enabled()) {
    return saveV1({
      attributes
    });
  }

  const {
    caption,
    columns,
    imageCrop
  } = attributes;
  const className = classnames_default()('has-nested-images', {
    [`columns-${columns}`]: columns !== undefined,
    [`columns-default`]: columns === undefined,
    'is-cropped': imageCrop
  });
  const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  });
  const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
  return (0,external_wp_element_namespaceObject.createElement)("figure", innerBlocksProps, innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    className: "blocks-gallery-caption",
    value: caption
  }));
}

;// CONCATENATED MODULE: external ["wp","hooks"]
var external_wp_hooks_namespaceObject = window["wp"]["hooks"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */





const parseShortcodeIds = ids => {
  if (!ids) {
    return [];
  }

  return ids.split(',').map(id => parseInt(id, 10));
};
/**
 * Third party block plugins don't have an easy way to detect if the
 * innerBlocks version of the Gallery is running when they run a
 * 3rdPartyBlock -> GalleryBlock transform so this tranform filter
 * will handle this. Once the innerBlocks version is the default
 * in a core release, this could be deprecated and removed after
 * plugin authors have been given time to update transforms.
 *
 * @typedef  {Object} Attributes
 * @typedef  {Object} Block
 * @property {Attributes} attributes The attributes of the block.
 * @param    {Block}      block      The transformed block.
 * @return   {Block}                 The transformed block.
 */


function updateThirdPartyTransformToGallery(block) {
  var _block$attributes;

  if (isGalleryV2Enabled() && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) {
    const innerBlocks = block.attributes.images.map(_ref => {
      let {
        url,
        id,
        alt
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
        url,
        id: id ? parseInt(id, 10) : null,
        alt,
        sizeSlug: block.attributes.sizeSlug,
        linkDestination: block.attributes.linkDestination
      });
    });
    delete block.attributes.ids;
    delete block.attributes.images;
    block.innerBlocks = innerBlocks;
  }

  return block;
}

(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-to', updateThirdPartyTransformToGallery);
/**
 * Third party block plugins don't have an easy way to detect if the
 * innerBlocks version of the Gallery is running when they run a
 * GalleryBlock -> 3rdPartyBlock transform so this transform filter
 * will handle this. Once the innerBlocks version is the default
 * in a core release, this could be deprecated and removed after
 * plugin authors have been given time to update transforms.
 *
 * @typedef  {Object} Attributes
 * @typedef  {Object} Block
 * @property {Attributes} attributes The attributes of the block.
 * @param    {Block}      toBlock    The block to transform to.
 * @param    {Block[]}    fromBlocks The blocks to transform from.
 * @return   {Block}                 The transformed block.
 */

function updateThirdPartyTransformFromGallery(toBlock, fromBlocks) {
  const from = Array.isArray(fromBlocks) ? fromBlocks : [fromBlocks];
  const galleryBlock = from.find(transformedBlock => {
    var _transformedBlock$att;

    return transformedBlock.name === 'core/gallery' && transformedBlock.innerBlocks.length > 0 && !((_transformedBlock$att = transformedBlock.attributes.images) !== null && _transformedBlock$att !== void 0 && _transformedBlock$att.length) > 0 && !toBlock.name.includes('core/');
  });

  if (galleryBlock) {
    const images = galleryBlock.innerBlocks.map(_ref2 => {
      let {
        attributes: {
          url,
          id,
          alt
        }
      } = _ref2;
      return {
        url,
        id: id ? parseInt(id, 10) : null,
        alt
      };
    });
    const ids = images.map(_ref3 => {
      let {
        id
      } = _ref3;
      return id;
    });
    galleryBlock.attributes.images = images;
    galleryBlock.attributes.ids = ids;
  }

  return toBlock;
}

(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-from', updateThirdPartyTransformFromGallery);
const gallery_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/image'],
    transform: attributes => {
      // Init the align and size from the first item which may be either the placeholder or an image.
      let {
        align,
        sizeSlug
      } = attributes[0]; // Loop through all the images and check if they have the same align and size.

      align = (0,external_lodash_namespaceObject.every)(attributes, ['align', align]) ? align : undefined;
      sizeSlug = (0,external_lodash_namespaceObject.every)(attributes, ['sizeSlug', sizeSlug]) ? sizeSlug : undefined;
      const validImages = (0,external_lodash_namespaceObject.filter)(attributes, _ref4 => {
        let {
          url
        } = _ref4;
        return url;
      });

      if (isGalleryV2Enabled()) {
        const innerBlocks = validImages.map(image => {
          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', image);
        });
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
          align,
          sizeSlug
        }, innerBlocks);
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
        images: validImages.map(_ref5 => {
          let {
            id,
            url,
            alt,
            caption
          } = _ref5;
          return {
            id: (0,external_lodash_namespaceObject.toString)(id),
            url,
            alt,
            caption
          };
        }),
        ids: validImages.map(_ref6 => {
          let {
            id
          } = _ref6;
          return parseInt(id, 10);
        }),
        align,
        sizeSlug
      });
    }
  }, {
    type: 'shortcode',
    tag: 'gallery',
    attributes: {
      images: {
        type: 'array',
        shortcode: _ref7 => {
          let {
            named: {
              ids
            }
          } = _ref7;

          if (!isGalleryV2Enabled()) {
            return parseShortcodeIds(ids).map(id => ({
              id: (0,external_lodash_namespaceObject.toString)(id)
            }));
          }
        }
      },
      ids: {
        type: 'array',
        shortcode: _ref8 => {
          let {
            named: {
              ids
            }
          } = _ref8;

          if (!isGalleryV2Enabled()) {
            return parseShortcodeIds(ids);
          }
        }
      },
      shortCodeTransforms: {
        type: 'array',
        shortcode: _ref9 => {
          let {
            named: {
              ids
            }
          } = _ref9;

          if (isGalleryV2Enabled()) {
            return parseShortcodeIds(ids).map(id => ({
              id: parseInt(id)
            }));
          }
        }
      },
      columns: {
        type: 'number',
        shortcode: _ref10 => {
          let {
            named: {
              columns = '3'
            }
          } = _ref10;
          return parseInt(columns, 10);
        }
      },
      linkTo: {
        type: 'string',
        shortcode: _ref11 => {
          let {
            named: {
              link
            }
          } = _ref11;

          if (!isGalleryV2Enabled()) {
            switch (link) {
              case 'post':
                return v1_constants_LINK_DESTINATION_ATTACHMENT;

              case 'file':
                return v1_constants_LINK_DESTINATION_MEDIA;

              default:
                return v1_constants_LINK_DESTINATION_ATTACHMENT;
            }
          }

          switch (link) {
            case 'post':
              return LINK_DESTINATION_ATTACHMENT;

            case 'file':
              return LINK_DESTINATION_MEDIA;

            default:
              return LINK_DESTINATION_NONE;
          }
        }
      }
    },

    isMatch(_ref12) {
      let {
        named
      } = _ref12;
      return undefined !== named.ids;
    }

  }, {
    // When created by drag and dropping multiple files on an insertion point. Because multiple
    // files must not be transformed to a gallery when dropped within a gallery there is another transform
    // within the image block to handle that case. Therefore this transform has to have priority 1
    // set so that it overrrides the image block transformation when mulitple images are dropped outside
    // of a gallery block.
    type: 'files',
    priority: 1,

    isMatch(files) {
      return files.length !== 1 && (0,external_lodash_namespaceObject.every)(files, file => file.type.indexOf('image/') === 0);
    },

    transform(files) {
      if (isGalleryV2Enabled()) {
        const innerBlocks = files.map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
          url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
        }));
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, innerBlocks);
      }

      const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
        images: files.map(file => pickRelevantMediaFiles({
          url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
        }))
      });
      return block;
    }

  }],
  to: [{
    type: 'block',
    blocks: ['core/image'],
    transform: (_ref13, innerBlocks) => {
      let {
        align,
        images,
        ids,
        sizeSlug
      } = _ref13;

      if (isGalleryV2Enabled()) {
        if (innerBlocks.length > 0) {
          return innerBlocks.map(_ref14 => {
            let {
              attributes: {
                id,
                url,
                alt,
                caption,
                sizeSlug: imageSizeSlug,
                linkDestination,
                href,
                linkTarget
              }
            } = _ref14;
            return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
              id,
              url,
              alt,
              caption,
              sizeSlug: imageSizeSlug,
              align,
              linkDestination,
              href,
              linkTarget
            });
          });
        }

        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
          align
        });
      }

      if (images.length > 0) {
        return images.map((_ref15, index) => {
          let {
            url,
            alt,
            caption
          } = _ref15;
          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
            id: ids[index],
            url,
            alt,
            caption,
            align,
            sizeSlug
          });
        });
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
        align
      });
    }
  }]
};
/* harmony default export */ var gallery_transforms = (gallery_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const gallery_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/gallery",
  title: "Gallery",
  category: "media",
  description: "Display multiple images in a rich gallery.",
  keywords: ["images", "photos"],
  textdomain: "default",
  attributes: {
    images: {
      type: "array",
      "default": [],
      source: "query",
      selector: ".blocks-gallery-item",
      query: {
        url: {
          type: "string",
          source: "attribute",
          selector: "img",
          attribute: "src"
        },
        fullUrl: {
          type: "string",
          source: "attribute",
          selector: "img",
          attribute: "data-full-url"
        },
        link: {
          type: "string",
          source: "attribute",
          selector: "img",
          attribute: "data-link"
        },
        alt: {
          type: "string",
          source: "attribute",
          selector: "img",
          attribute: "alt",
          "default": ""
        },
        id: {
          type: "string",
          source: "attribute",
          selector: "img",
          attribute: "data-id"
        },
        caption: {
          type: "string",
          source: "html",
          selector: ".blocks-gallery-item__caption"
        }
      }
    },
    ids: {
      type: "array",
      items: {
        type: "number"
      },
      "default": []
    },
    shortCodeTransforms: {
      type: "array",
      "default": [],
      items: {
        type: "object"
      }
    },
    columns: {
      type: "number",
      minimum: 1,
      maximum: 8
    },
    caption: {
      type: "string",
      source: "html",
      selector: ".blocks-gallery-caption"
    },
    imageCrop: {
      type: "boolean",
      "default": true
    },
    fixedHeight: {
      type: "boolean",
      "default": true
    },
    linkTarget: {
      type: "string"
    },
    linkTo: {
      type: "string"
    },
    sizeSlug: {
      type: "string",
      "default": "large"
    },
    allowResize: {
      type: "boolean",
      "default": false
    }
  },
  providesContext: {
    allowResize: "allowResize",
    imageCrop: "imageCrop",
    fixedHeight: "fixedHeight"
  },
  supports: {
    anchor: true,
    align: true,
    html: false,
    units: ["px", "em", "rem", "vh", "vw"],
    spacing: {
      blockGap: true,
      __experimentalSkipSerialization: ["blockGap"],
      __experimentalDefaultControls: {
        blockGap: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      allowEditing: false,
      "default": {
        type: "flex"
      }
    }
  },
  editorStyle: "wp-block-gallery-editor",
  style: "wp-block-gallery"
};


const {
  name: gallery_name
} = gallery_metadata;

const gallery_settings = {
  icon: library_gallery,
  example: {
    attributes: {
      columns: 2
    },
    innerBlocks: [{
      name: 'core/image',
      attributes: {
        url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg'
      }
    }, {
      name: 'core/image',
      attributes: {
        url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg'
      }
    }]
  },
  transforms: gallery_transforms,
  edit: edit_wrapper,
  save: saveWithInnerBlocks,
  deprecated: gallery_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js


/**
 * WordPress dependencies
 */

const group = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z"
}));
/* harmony default export */ var library_group = (group);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



const migrateAttributes = attributes => {
  if (!attributes.tagName) {
    attributes = { ...attributes,
      tagName: 'div'
    };
  }

  if (!attributes.customTextColor && !attributes.customBackgroundColor) {
    return attributes;
  }

  const style = {
    color: {}
  };

  if (attributes.customTextColor) {
    style.color.text = attributes.customTextColor;
  }

  if (attributes.customBackgroundColor) {
    style.color.background = attributes.customBackgroundColor;
  }

  return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor']),
    style
  };
};

const group_deprecated_deprecated = [// Version of the block with the double div.
{
  attributes: {
    tagName: {
      type: 'string',
      default: 'div'
    },
    templateLock: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    color: {
      gradients: true,
      link: true
    },
    spacing: {
      padding: true
    },
    __experimentalBorder: {
      radius: true
    }
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      tagName: Tag
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-group__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  }

}, // Version of the block without global styles support
{
  attributes: {
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false
  },
  migrate: migrateAttributes,

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      backgroundColor,
      customBackgroundColor,
      textColor,
      customTextColor
    } = attributes;
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const className = classnames_default()(backgroundClass, textClass, {
      'has-text-color': textColor || customTextColor,
      'has-background': backgroundColor || customBackgroundColor
    });
    const styles = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className,
      style: styles
    }, (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-group__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  }

}, // Version of the group block with a bug that made text color class not applied.
{
  attributes: {
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    }
  },
  migrate: migrateAttributes,
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      backgroundColor,
      customBackgroundColor,
      textColor,
      customTextColor
    } = attributes;
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const className = classnames_default()(backgroundClass, {
      'has-text-color': textColor || customTextColor,
      'has-background': backgroundColor || customBackgroundColor
    });
    const styles = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className,
      style: styles
    }, (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-group__inner-container"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  }

}, // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.
{
  attributes: {
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false
  },
  migrate: migrateAttributes,

  save(_ref4) {
    let {
      attributes
    } = _ref4;
    const {
      backgroundColor,
      customBackgroundColor
    } = attributes;
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const className = classnames_default()(backgroundClass, {
      'has-background': backgroundColor || customBackgroundColor
    });
    const styles = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className,
      style: styles
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}];
/* harmony default export */ var group_deprecated = (group_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/edit.js


/**
 * WordPress dependencies
 */




const htmlElementMessages = {
  header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
  main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only. '),
  section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
  article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self contained, syndicatable portion of the document.'),
  aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
  footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
};

function GroupEdit(_ref) {
  let {
    attributes,
    setAttributes,
    clientId
  } = _ref;
  const {
    hasInnerBlocks,
    themeSupportsLayout
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getSettings;

    const {
      getBlock,
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const block = getBlock(clientId);
    return {
      hasInnerBlocks: !!(block && block.innerBlocks.length),
      themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout
    };
  }, [clientId]);
  const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
  const {
    tagName: TagName = 'div',
    templateLock,
    layout = {}
  } = attributes;
  const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
  const {
    type = 'default'
  } = usedLayout;
  const layoutSupportEnabled = themeSupportsLayout || type !== 'default';
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: `is-layout-${type}`
  });
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(layoutSupportEnabled ? blockProps : {
    className: 'wp-block-group__inner-container'
  }, {
    templateLock,
    renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender,
    __experimentalLayout: layoutSupportEnabled ? usedLayout : undefined
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
    options: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
      value: 'div'
    }, {
      label: '<header>',
      value: 'header'
    }, {
      label: '<main>',
      value: 'main'
    }, {
      label: '<section>',
      value: 'section'
    }, {
      label: '<article>',
      value: 'article'
    }, {
      label: '<aside>',
      value: 'aside'
    }, {
      label: '<footer>',
      value: 'footer'
    }],
    value: TagName,
    onChange: value => setAttributes({
      tagName: value
    }),
    help: htmlElementMessages[TagName]
  })), layoutSupportEnabled && (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps), !layoutSupportEnabled && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
}

/* harmony default export */ var group_edit = (GroupEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/save.js


/**
 * WordPress dependencies
 */

function group_save_save(_ref) {
  let {
    attributes: {
      tagName: Tag
    }
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save()));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/transforms.js
/**
 * WordPress dependencies
 */

const group_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['*'],

    __experimentalConvert(blocks) {
      const alignments = ['wide', 'full']; // Determine the widest setting of all the blocks to be grouped

      const widestAlignment = blocks.reduce((accumulator, block) => {
        const {
          align
        } = block.attributes;
        return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator;
      }, undefined); // Clone the Blocks to be Grouped
      // Failing to create new block references causes the original blocks
      // to be replaced in the switchToBlockType call thereby meaning they
      // are removed both from their original location and within the
      // new group block.

      const groupInnerBlocks = blocks.map(block => {
        return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks);
      });
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
        align: widestAlignment
      }, groupInnerBlocks);
    }

  }]
};
/* harmony default export */ var group_transforms = (group_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/row.js


/**
 * WordPress dependencies
 */

const row = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M9.2 6.5H4V8h5.2c.3 0 .5.2.5.5v7c0 .3-.2.5-.5.5H4v1.5h5.2c1.1 0 2-.9 2-2v-7c0-1.1-.8-2-2-2zM14.8 8H20V6.5h-5.2c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2H20V16h-5.2c-.3 0-.5-.2-.5-.5v-7c-.1-.3.2-.5.5-.5z"
}));
/* harmony default export */ var library_row = (row);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js


/**
 * WordPress dependencies
 */

const stack = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16 4v5.2c0 .3-.2.5-.5.5h-7c-.3.1-.5-.2-.5-.5V4H6.5v5.2c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V4H16zm-.5 8.8h-7c-1.1 0-2 .9-2 2V20H8v-5.2c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5V20h1.5v-5.2c0-1.2-.9-2-2-2z"
}));
/* harmony default export */ var library_stack = (stack);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/variations.js
/**
 * WordPress dependencies
 */


const group_variations_variations = [{
  name: 'group',
  title: (0,external_wp_i18n_namespaceObject.__)('Group'),
  description: (0,external_wp_i18n_namespaceObject.__)('Gather blocks in a layout container.'),
  attributes: {
    layout: {
      type: 'default'
    }
  },
  scope: ['transform'],
  isActive: blockAttributes => {
    var _blockAttributes$layo, _blockAttributes$layo2;

    return !blockAttributes.layout || !((_blockAttributes$layo = blockAttributes.layout) !== null && _blockAttributes$layo !== void 0 && _blockAttributes$layo.type) || ((_blockAttributes$layo2 = blockAttributes.layout) === null || _blockAttributes$layo2 === void 0 ? void 0 : _blockAttributes$layo2.type) === 'default';
  },
  icon: library_group
}, {
  name: 'group-row',
  title: (0,external_wp_i18n_namespaceObject.__)('Row'),
  description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks horizontally.'),
  attributes: {
    layout: {
      type: 'flex',
      flexWrap: 'nowrap'
    }
  },
  scope: ['inserter', 'transform'],
  isActive: blockAttributes => {
    var _blockAttributes$layo3, _blockAttributes$layo4, _blockAttributes$layo5;

    return ((_blockAttributes$layo3 = blockAttributes.layout) === null || _blockAttributes$layo3 === void 0 ? void 0 : _blockAttributes$layo3.type) === 'flex' && (!((_blockAttributes$layo4 = blockAttributes.layout) !== null && _blockAttributes$layo4 !== void 0 && _blockAttributes$layo4.orientation) || ((_blockAttributes$layo5 = blockAttributes.layout) === null || _blockAttributes$layo5 === void 0 ? void 0 : _blockAttributes$layo5.orientation) === 'horizontal');
  },
  icon: library_row
}, {
  name: 'group-stack',
  title: (0,external_wp_i18n_namespaceObject.__)('Stack'),
  description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks vertically.'),
  attributes: {
    layout: {
      type: 'flex',
      orientation: 'vertical'
    }
  },
  scope: ['inserter', 'transform'],
  isActive: blockAttributes => {
    var _blockAttributes$layo6, _blockAttributes$layo7;

    return ((_blockAttributes$layo6 = blockAttributes.layout) === null || _blockAttributes$layo6 === void 0 ? void 0 : _blockAttributes$layo6.type) === 'flex' && ((_blockAttributes$layo7 = blockAttributes.layout) === null || _blockAttributes$layo7 === void 0 ? void 0 : _blockAttributes$layo7.orientation) === 'vertical';
  },
  icon: library_stack
}];
/* harmony default export */ var group_variations = (group_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const group_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/group",
  title: "Group",
  category: "design",
  description: "Gather blocks in a layout container.",
  keywords: ["container", "wrapper", "row", "section"],
  textdomain: "default",
  attributes: {
    tagName: {
      type: "string",
      "default": "div"
    },
    templateLock: {
      type: ["string", "boolean"],
      "enum": ["all", "insert", false]
    }
  },
  supports: {
    align: ["wide", "full"],
    anchor: true,
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: ["top", "bottom"],
      padding: true,
      blockGap: true,
      __experimentalDefaultControls: {
        padding: true,
        blockGap: true
      }
    },
    __experimentalBorder: {
      color: true,
      radius: true,
      style: true,
      width: true,
      __experimentalDefaultControls: {
        color: true,
        radius: true,
        style: true,
        width: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    __experimentalLayout: true
  },
  editorStyle: "wp-block-group-editor",
  style: "wp-block-group"
};



const {
  name: group_name
} = group_metadata;

const group_settings = {
  icon: library_group,
  example: {
    attributes: {
      style: {
        color: {
          text: '#000000',
          background: '#ffffff'
        }
      }
    },
    innerBlocks: [{
      name: 'core/paragraph',
      attributes: {
        customTextColor: '#cf2e2e',
        fontSize: 'large',
        content: (0,external_wp_i18n_namespaceObject.__)('One.')
      }
    }, {
      name: 'core/paragraph',
      attributes: {
        customTextColor: '#ff6900',
        fontSize: 'large',
        content: (0,external_wp_i18n_namespaceObject.__)('Two.')
      }
    }, {
      name: 'core/paragraph',
      attributes: {
        customTextColor: '#fcb900',
        fontSize: 'large',
        content: (0,external_wp_i18n_namespaceObject.__)('Three.')
      }
    }, {
      name: 'core/paragraph',
      attributes: {
        customTextColor: '#00d084',
        fontSize: 'large',
        content: (0,external_wp_i18n_namespaceObject.__)('Four.')
      }
    }, {
      name: 'core/paragraph',
      attributes: {
        customTextColor: '#0693e3',
        fontSize: 'large',
        content: (0,external_wp_i18n_namespaceObject.__)('Five.')
      }
    }, {
      name: 'core/paragraph',
      attributes: {
        customTextColor: '#9b51e0',
        fontSize: 'large',
        content: (0,external_wp_i18n_namespaceObject.__)('Six.')
      }
    }]
  },
  transforms: group_transforms,
  edit: group_edit,
  save: group_save_save,
  deprecated: group_deprecated,
  variations: group_variations
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading.js


/**
 * WordPress dependencies
 */

const heading = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.2 5.2v13.4l5.8-4.8 5.8 4.8V5.2z"
}));
/* harmony default export */ var library_heading = (heading);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


const blockSupports = {
  className: false,
  anchor: true
};
const heading_deprecated_blockAttributes = {
  align: {
    type: 'string'
  },
  content: {
    type: 'string',
    source: 'html',
    selector: 'h1,h2,h3,h4,h5,h6',
    default: ''
  },
  level: {
    type: 'number',
    default: 2
  },
  placeholder: {
    type: 'string'
  }
};

const deprecated_migrateCustomColors = attributes => {
  if (!attributes.customTextColor) {
    return attributes;
  }

  const style = {
    color: {
      text: attributes.customTextColor
    }
  };
  return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor']),
    style
  };
};

const TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];

const migrateTextAlign = attributes => {
  const {
    align,
    ...rest
  } = attributes;
  return TEXT_ALIGN_OPTIONS.includes(align) ? { ...rest,
    textAlign: align
  } : attributes;
};

const heading_deprecated_deprecated = [{
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    className: false,
    color: {
      link: true
    },
    fontSize: true,
    lineHeight: true,
    __experimentalSelector: {
      'core/heading/h1': 'h1',
      'core/heading/h2': 'h2',
      'core/heading/h3': 'h3',
      'core/heading/h4': 'h4',
      'core/heading/h5': 'h5',
      'core/heading/h6': 'h6'
    },
    __unstablePasteTextInline: true
  },
  attributes: heading_deprecated_blockAttributes,
  isEligible: _ref => {
    let {
      align
    } = _ref;
    return TEXT_ALIGN_OPTIONS.includes(align);
  },
  migrate: migrateTextAlign,

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      align,
      content,
      level
    } = attributes;
    const TagName = 'h' + level;
    const className = classnames_default()({
      [`has-text-align-${align}`]: align
    });
    return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: content
    }));
  }

}, {
  supports: blockSupports,
  attributes: { ...heading_deprecated_blockAttributes,
    customTextColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    }
  },
  migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      align,
      content,
      customTextColor,
      level,
      textColor
    } = attributes;
    const tagName = 'h' + level;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const className = classnames_default()({
      [textClass]: textClass,
      'has-text-color': textColor || customTextColor,
      [`has-text-align-${align}`]: align
    });
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      className: className ? className : undefined,
      tagName: tagName,
      style: {
        color: textClass ? undefined : customTextColor
      },
      value: content
    });
  }

}, {
  attributes: { ...heading_deprecated_blockAttributes,
    customTextColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    }
  },
  migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),

  save(_ref4) {
    let {
      attributes
    } = _ref4;
    const {
      align,
      content,
      customTextColor,
      level,
      textColor
    } = attributes;
    const tagName = 'h' + level;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const className = classnames_default()({
      [textClass]: textClass,
      [`has-text-align-${align}`]: align
    });
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      className: className ? className : undefined,
      tagName: tagName,
      style: {
        color: textClass ? undefined : customTextColor
      },
      value: content
    });
  },

  supports: blockSupports
}, {
  supports: blockSupports,
  attributes: { ...heading_deprecated_blockAttributes,
    customTextColor: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    }
  },
  migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),

  save(_ref5) {
    let {
      attributes
    } = _ref5;
    const {
      align,
      level,
      content,
      textColor,
      customTextColor
    } = attributes;
    const tagName = 'h' + level;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const className = classnames_default()({
      [textClass]: textClass
    });
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      className: className ? className : undefined,
      tagName: tagName,
      style: {
        textAlign: align,
        color: textClass ? undefined : customTextColor
      },
      value: content
    });
  }

}];
/* harmony default export */ var heading_deprecated = (heading_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/autogenerate-anchors.js
/**
 * External dependencies
 */

/**
 * Object map tracking anchors.
 *
 * @type {Record<string, string | null>}
 */

const autogenerate_anchors_anchors = {};
/**
 * Returns the text without markup.
 *
 * @param {string} text The text.
 *
 * @return {string} The text without markup.
 */

const getTextWithoutMarkup = text => {
  const dummyElement = document.createElement('div');
  dummyElement.innerHTML = text;
  return dummyElement.innerText;
};
/**
 * Get the slug from the content.
 *
 * @param {string} content The block content.
 *
 * @return {string} Returns the slug.
 */


const getSlug = content => {
  // Get the slug.
  return (0,external_lodash_namespaceObject.trim)((0,external_lodash_namespaceObject.deburr)(getTextWithoutMarkup(content)).replace(/[^\p{L}\p{N}]+/gu, '-').toLowerCase(), '-');
};
/**
 * Generate the anchor for a heading.
 *
 * @param {string} clientId The block ID.
 * @param {string} content  The block content.
 *
 * @return {string|null} Return the heading anchor.
 */


const generateAnchor = (clientId, content) => {
  const slug = getSlug(content); // If slug is empty, then return null.
  // Returning null instead of an empty string allows us to check again when the content changes.

  if ('' === slug) {
    return null;
  }

  delete autogenerate_anchors_anchors[clientId];
  let anchor = slug;
  let i = 0; // If the anchor already exists in another heading, append -i.

  while (Object.values(autogenerate_anchors_anchors).includes(anchor)) {
    i += 1;
    anchor = slug + '-' + i;
  }

  return anchor;
};
/**
 * Set the anchor for a heading.
 *
 * @param {string}      clientId The block ID.
 * @param {string|null} anchor   The block anchor.
 */

const setAnchor = (clientId, anchor) => {
  autogenerate_anchors_anchors[clientId] = anchor;
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */




function HeadingEdit(_ref) {
  let {
    attributes,
    setAttributes,
    mergeBlocks,
    onReplace,
    style,
    clientId
  } = _ref;
  const {
    textAlign,
    content,
    level,
    placeholder,
    anchor
  } = attributes;
  const tagName = 'h' + level;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    }),
    style
  });
  const {
    canGenerateAnchors
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
    return {
      canGenerateAnchors: !!settings.generateAnchors
    };
  }, []);
  const {
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); // Initially set anchor for headings that have content but no anchor set.
  // This is used when transforming a block to heading, or for legacy anchors.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!canGenerateAnchors) {
      return;
    }

    if (!anchor && content) {
      // This side-effect should not create an undo level.
      __unstableMarkNextChangeAsNotPersistent();

      setAttributes({
        anchor: generateAnchor(clientId, content)
      });
    }

    setAnchor(clientId, anchor); // Remove anchor map when block unmounts.

    return () => setAnchor(clientId, null);
  }, [anchor, content, clientId, canGenerateAnchors]);

  const onContentChange = value => {
    const newAttrs = {
      content: value
    };

    if (canGenerateAnchors && (!anchor || !value || generateAnchor(clientId, content) === anchor)) {
      newAttrs.anchor = generateAnchor(clientId, value);
    }

    setAttributes(newAttrs);
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
    selectedLevel: level,
    onChange: newLevel => setAttributes({
      level: newLevel
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    identifier: "content",
    tagName: tagName,
    value: content,
    onChange: onContentChange,
    onMerge: mergeBlocks,
    onSplit: (value, isOriginal) => {
      let block;

      if (isOriginal || value) {
        block = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { ...attributes,
          content: value
        });
      } else {
        var _getDefaultBlockName;

        block = (0,external_wp_blocks_namespaceObject.createBlock)((_getDefaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)()) !== null && _getDefaultBlockName !== void 0 ? _getDefaultBlockName : 'core/heading');
      }

      if (isOriginal) {
        block.clientId = clientId;
      }

      return block;
    },
    onReplace: onReplace,
    onRemove: () => onReplace([]),
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Heading text'),
    placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Heading'),
    textAlign: textAlign
  }, external_wp_element_namespaceObject.Platform.isNative && {
    deleteEnter: true
  }, blockProps)));
}

/* harmony default export */ var heading_edit = (HeadingEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function heading_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    textAlign,
    content,
    level
  } = attributes;
  const TagName = 'h' + level;
  const className = classnames_default()({
    [`has-text-align-${textAlign}`]: textAlign
  });
  return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: content
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/shared.js
/**
 * Given a node name string for a heading node, returns its numeric level.
 *
 * @param {string} nodeName Heading node name.
 *
 * @return {number} Heading level.
 */
function getLevelFromHeadingNodeName(nodeName) {
  return Number(nodeName.substr(1));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/transforms.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const {
  name: heading_transforms_name
} = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/heading",
  title: "Heading",
  category: "text",
  description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
  keywords: ["title", "subtitle"],
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    },
    content: {
      type: "string",
      source: "html",
      selector: "h1,h2,h3,h4,h5,h6",
      "default": "",
      __experimentalRole: "content"
    },
    level: {
      type: "number",
      "default": 2
    },
    placeholder: {
      type: "string"
    }
  },
  supports: {
    align: ["wide", "full"],
    anchor: true,
    className: false,
    color: {
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true,
        textTransform: true
      }
    },
    __experimentalSelector: "h1,h2,h3,h4,h5,h6",
    __unstablePasteTextInline: true,
    __experimentalSlashInserter: true
  },
  editorStyle: "wp-block-heading-editor",
  style: "wp-block-heading"
};
const heading_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/paragraph'],
    transform: attributes => attributes.map(_ref => {
      let {
        content,
        anchor
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, {
        content,
        anchor
      });
    })
  }, {
    type: 'raw',
    selector: 'h1,h2,h3,h4,h5,h6',
    schema: _ref2 => {
      let {
        phrasingContentSchema,
        isPaste
      } = _ref2;
      const schema = {
        children: phrasingContentSchema,
        attributes: isPaste ? [] : ['style', 'id']
      };
      return {
        h1: schema,
        h2: schema,
        h3: schema,
        h4: schema,
        h5: schema,
        h6: schema
      };
    },

    transform(node) {
      const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(heading_transforms_name, node.outerHTML);
      const {
        textAlign
      } = node.style || {};
      attributes.level = getLevelFromHeadingNodeName(node.nodeName);

      if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
        attributes.align = textAlign;
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, attributes);
    }

  }, ...[1, 2, 3, 4, 5, 6].map(level => ({
    type: 'prefix',
    prefix: Array(level + 1).join('#'),

    transform(content) {
      return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, {
        level,
        content
      });
    }

  })), ...[1, 2, 3, 4, 5, 6].map(level => ({
    type: 'enter',
    regExp: new RegExp(`^/(h|H)${level}$`),

    transform(content) {
      return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, {
        level,
        content
      });
    }

  }))],
  to: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/paragraph'],
    transform: attributes => attributes.map(_ref3 => {
      let {
        content
      } = _ref3;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
        content
      });
    })
  }]
};
/* harmony default export */ var heading_transforms = (heading_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/index.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const heading_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/heading",
  title: "Heading",
  category: "text",
  description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
  keywords: ["title", "subtitle"],
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    },
    content: {
      type: "string",
      source: "html",
      selector: "h1,h2,h3,h4,h5,h6",
      "default": "",
      __experimentalRole: "content"
    },
    level: {
      type: "number",
      "default": 2
    },
    placeholder: {
      type: "string"
    }
  },
  supports: {
    align: ["wide", "full"],
    anchor: true,
    className: false,
    color: {
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true,
        textTransform: true
      }
    },
    __experimentalSelector: "h1,h2,h3,h4,h5,h6",
    __unstablePasteTextInline: true,
    __experimentalSlashInserter: true
  },
  editorStyle: "wp-block-heading-editor",
  style: "wp-block-heading"
};


const {
  name: heading_name
} = heading_metadata;

const heading_settings = {
  icon: library_heading,
  example: {
    attributes: {
      content: (0,external_wp_i18n_namespaceObject.__)('Code is Poetry'),
      level: 2
    }
  },

  __experimentalLabel(attributes, _ref) {
    let {
      context
    } = _ref;

    if (context === 'accessibility') {
      const {
        content,
        level
      } = attributes;
      return (0,external_lodash_namespaceObject.isEmpty)(content) ? (0,external_wp_i18n_namespaceObject.sprintf)(
      /* translators: accessibility text. %s: heading level. */
      (0,external_wp_i18n_namespaceObject.__)('Level %s. Empty.'), level) : (0,external_wp_i18n_namespaceObject.sprintf)(
      /* translators: accessibility text. 1: heading level. 2: heading content. */
      (0,external_wp_i18n_namespaceObject.__)('Level %1$s. %2$s'), level, content);
    }
  },

  transforms: heading_transforms,
  deprecated: heading_deprecated,

  merge(attributes, attributesToMerge) {
    return {
      content: (attributes.content || '') + (attributesToMerge.content || '')
    };
  },

  edit: heading_edit,
  save: heading_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/home.js


/**
 * WordPress dependencies
 */

const home = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"
}));
/* harmony default export */ var library_home = (home);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







const preventDefault = event => event.preventDefault();

function HomeEdit(_ref) {
  var _style$color, _style$color2, _style$color3, _style$color4;

  let {
    attributes,
    setAttributes,
    context,
    clientId
  } = _ref;
  const {
    homeUrl
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getUnstableBase;

    const {
      getUnstableBase // Site index.

    } = select(external_wp_coreData_namespaceObject.store);
    return {
      homeUrl: (_getUnstableBase = getUnstableBase()) === null || _getUnstableBase === void 0 ? void 0 : _getUnstableBase.home
    };
  }, [clientId]);
  const {
    textColor,
    backgroundColor,
    style
  } = context;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()('wp-block-navigation-item', {
      'has-text-color': !!textColor || !!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text),
      [`has-${textColor}-color`]: !!textColor,
      'has-background': !!backgroundColor || !!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background),
      [`has-${backgroundColor}-background-color`]: !!backgroundColor
    }),
    style: {
      color: style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.text,
      backgroundColor: style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background
    }
  });
  const {
    label
  } = attributes;
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (label === undefined) {
      setAttributes({
        label: (0,external_wp_i18n_namespaceObject.__)('Home')
      });
    }
  }, [clientId, label]);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
    className: "wp-block-home-link__content wp-block-navigation-item__content",
    href: homeUrl,
    onClick: preventDefault
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    identifier: "label",
    className: "wp-block-home-link__label",
    value: label,
    onChange: labelValue => {
      setAttributes({
        label: labelValue
      });
    },
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home link text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add home link'),
    withoutInteractiveFormatting: true,
    allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough']
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/save.js


/**
 * WordPress dependencies
 */

function home_link_save_save() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const home_link_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/home-link",
  category: "design",
  parent: ["core/navigation"],
  title: "Home Link",
  description: "Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    }
  },
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style"],
  supports: {
    reusable: false,
    html: false
  },
  editorStyle: "wp-block-home-link-editor",
  style: "wp-block-home-link"
};


const {
  name: home_link_name
} = home_link_metadata;

const home_link_settings = {
  icon: library_home,
  edit: HomeEdit,
  save: home_link_save_save,
  example: {
    attributes: {
      label: (0,external_wp_i18n_namespaceObject._x)('Home Link', 'block example')
    }
  }
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/html.js


/**
 * WordPress dependencies
 */

const html = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4.8 11.4H2.1V9H1v6h1.1v-2.6h2.7V15h1.1V9H4.8v2.4zm1.9-1.3h1.7V15h1.1v-4.9h1.7V9H6.7v1.1zM16.2 9l-1.5 2.7L13.3 9h-.9l-.8 6h1.1l.5-4 1.5 2.8 1.5-2.8.5 4h1.1L17 9h-.8zm3.8 5V9h-1.1v6h3.6v-1H20z"
}));
/* harmony default export */ var library_html = (html);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/edit.js


/**
 * WordPress dependencies
 */





function HTMLEdit(_ref) {
  let {
    attributes,
    setAttributes,
    isSelected
  } = _ref;
  const [isPreview, setIsPreview] = (0,external_wp_element_namespaceObject.useState)();
  const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
  const styles = (0,external_wp_data_namespaceObject.useSelect)(select => {
    // Default styles used to unset some of the styles
    // that might be inherited from the editor style.
    const defaultStyles = `
			html,body,:root {
				margin: 0 !important;
				padding: 0 !important;
				overflow: visible !important;
				min-height: auto !important;
			}
		`;
    return [defaultStyles, ...(0,external_wp_blockEditor_namespaceObject.transformStyles)(select(external_wp_blockEditor_namespaceObject.store).getSettings().styles)];
  }, []);

  function switchToPreview() {
    setIsPreview(true);
  }

  function switchToHTML() {
    setIsPreview(false);
  }

  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: 'block-library-html__edit'
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    className: "components-tab-button",
    isPressed: !isPreview,
    onClick: switchToHTML
  }, (0,external_wp_element_namespaceObject.createElement)("span", null, "HTML")), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    className: "components-tab-button",
    isPressed: isPreview,
    onClick: switchToPreview
  }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Preview'))))), isPreview || isDisabled ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SandBox, {
    html: attributes.content,
    styles: styles
  }), !isSelected && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "block-library-html__preview-overlay"
  })) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
    value: attributes.content,
    onChange: content => setAttributes({
      content
    }),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write HTML…'),
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('HTML')
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/save.js


/**
 * WordPress dependencies
 */

function html_save_save(_ref) {
  let {
    attributes
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.content);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/transforms.js
/**
 * WordPress dependencies
 */

const html_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/code'],
    transform: _ref => {
      let {
        content
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
        content
      });
    }
  }]
};
/* harmony default export */ var html_transforms = (html_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const html_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/html",
  title: "Custom HTML",
  category: "widgets",
  description: "Add custom HTML code and preview it as you edit.",
  keywords: ["embed"],
  textdomain: "default",
  attributes: {
    content: {
      type: "string",
      source: "html"
    }
  },
  supports: {
    customClassName: false,
    className: false,
    html: false
  },
  editorStyle: "wp-block-html-editor"
};


const {
  name: html_name
} = html_metadata;

const html_settings = {
  icon: library_html,
  example: {
    attributes: {
      content: '<marquee>' + (0,external_wp_i18n_namespaceObject.__)('Welcome to the wonderful world of blocks…') + '</marquee>'
    }
  },
  edit: HTMLEdit,
  save: html_save_save,
  transforms: html_transforms
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/deprecated.js



/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


const image_deprecated_blockAttributes = {
  align: {
    type: 'string'
  },
  url: {
    type: 'string',
    source: 'attribute',
    selector: 'img',
    attribute: 'src'
  },
  alt: {
    type: 'string',
    source: 'attribute',
    selector: 'img',
    attribute: 'alt',
    default: ''
  },
  caption: {
    type: 'string',
    source: 'html',
    selector: 'figcaption'
  },
  href: {
    type: 'string',
    source: 'attribute',
    selector: 'figure > a',
    attribute: 'href'
  },
  rel: {
    type: 'string',
    source: 'attribute',
    selector: 'figure > a',
    attribute: 'rel'
  },
  linkClass: {
    type: 'string',
    source: 'attribute',
    selector: 'figure > a',
    attribute: 'class'
  },
  id: {
    type: 'number'
  },
  width: {
    type: 'number'
  },
  height: {
    type: 'number'
  },
  linkDestination: {
    type: 'string'
  },
  linkTarget: {
    type: 'string',
    source: 'attribute',
    selector: 'figure > a',
    attribute: 'target'
  }
};
const deprecated_blockSupports = {
  anchor: true,
  color: {
    __experimentalDuotone: 'img',
    text: false,
    background: false
  },
  __experimentalBorder: {
    radius: true,
    __experimentalDefaultControls: {
      radius: true
    }
  }
};
const image_deprecated_deprecated = [{
  attributes: { ...image_deprecated_blockAttributes,
    title: {
      type: 'string',
      source: 'attribute',
      selector: 'img',
      attribute: 'title'
    },
    sizeSlug: {
      type: 'string'
    }
  },
  supports: deprecated_blockSupports,

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      url,
      alt,
      caption,
      align,
      href,
      rel,
      linkClass,
      width,
      height,
      id,
      linkTarget,
      sizeSlug,
      title
    } = attributes;
    const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
    const classes = classnames_default()({
      [`align${align}`]: align,
      [`size-${sizeSlug}`]: sizeSlug,
      'is-resized': width || height
    });
    const image = (0,external_wp_element_namespaceObject.createElement)("img", {
      src: url,
      alt: alt,
      className: id ? `wp-image-${id}` : null,
      width: width,
      height: height,
      title: title
    });
    const figure = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
      className: linkClass,
      href: href,
      target: linkTarget,
      rel: newRel
    }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));

    if ('left' === align || 'right' === align || 'center' === align) {
      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("figure", {
        className: classes
      }, figure));
    }

    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: classes
    }), figure);
  }

}, {
  attributes: image_deprecated_blockAttributes,

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      url,
      alt,
      caption,
      align,
      href,
      width,
      height,
      id
    } = attributes;
    const classes = classnames_default()({
      [`align${align}`]: align,
      'is-resized': width || height
    });
    const image = (0,external_wp_element_namespaceObject.createElement)("img", {
      src: url,
      alt: alt,
      className: id ? `wp-image-${id}` : null,
      width: width,
      height: height
    });
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: classes
    }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
      href: href
    }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));
  }

}, {
  attributes: image_deprecated_blockAttributes,

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      url,
      alt,
      caption,
      align,
      href,
      width,
      height,
      id
    } = attributes;
    const image = (0,external_wp_element_namespaceObject.createElement)("img", {
      src: url,
      alt: alt,
      className: id ? `wp-image-${id}` : null,
      width: width,
      height: height
    });
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: align ? `align${align}` : null
    }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
      href: href
    }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));
  }

}, {
  attributes: image_deprecated_blockAttributes,

  save(_ref4) {
    let {
      attributes
    } = _ref4;
    const {
      url,
      alt,
      caption,
      align,
      href,
      width,
      height
    } = attributes;
    const extraImageProps = width || height ? {
      width,
      height
    } : {};
    const image = (0,external_wp_element_namespaceObject.createElement)("img", _extends({
      src: url,
      alt: alt
    }, extraImageProps));
    let figureStyle = {};

    if (width) {
      figureStyle = {
        width
      };
    } else if (align === 'left' || align === 'right') {
      figureStyle = {
        maxWidth: '50%'
      };
    }

    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: align ? `align${align}` : null,
      style: figureStyle
    }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
      href: href
    }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));
  }

}];
/* harmony default export */ var image_deprecated = (image_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/crop.js


/**
 * WordPress dependencies
 */

const crop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16.5 7.8v7H18v-7c0-1-.8-1.8-1.8-1.8h-7v1.5h7c.2 0 .3.1.3.3zm-8.7 8.7c-.1 0-.2-.1-.2-.2V2H6v4H2v1.5h4v8.8c0 1 .8 1.8 1.8 1.8h8.8v4H18v-4h4v-1.5H7.8z"
}));
/* harmony default export */ var library_crop = (crop);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js


/**
 * WordPress dependencies
 */

const upload = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
}));
/* harmony default export */ var library_upload = (upload);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/overlay-text.js


/**
 * WordPress dependencies
 */

const overlayText = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12-9.8c.4 0 .8-.3.9-.7l1.1-3h3.6l.5 1.7h1.9L13 9h-2.2l-3.4 9.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12H20V6c0-1.1-.9-2-2-2zm-6 7l1.4 3.9h-2.7L12 11z"
}));
/* harmony default export */ var overlay_text = (overlayText);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/use-client-width.js
/**
 * WordPress dependencies
 */

function useClientWidth(ref, dependencies) {
  const [clientWidth, setClientWidth] = (0,external_wp_element_namespaceObject.useState)();

  function calculateClientWidth() {
    setClientWidth(ref.current.clientWidth);
  }

  (0,external_wp_element_namespaceObject.useEffect)(calculateClientWidth, dependencies);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      defaultView
    } = ref.current.ownerDocument;
    defaultView.addEventListener('resize', calculateClientWidth);
    return () => {
      defaultView.removeEventListener('resize', calculateClientWidth);
    };
  }, []);
  return clientWidth;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/image.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */













/**
 * Internal dependencies
 */




/**
 * Module constants
 */


function Image(_ref) {
  var _imageRef$current3;

  let {
    temporaryURL,
    attributes: {
      url = '',
      alt,
      caption,
      align,
      id,
      href,
      rel,
      linkClass,
      linkDestination,
      title,
      width,
      height,
      linkTarget,
      sizeSlug
    },
    setAttributes,
    isSelected,
    insertBlocksAfter,
    onReplace,
    onSelectImage,
    onSelectURL,
    onUploadError,
    containerRef,
    context,
    clientId
  } = _ref;
  const imageRef = (0,external_wp_element_namespaceObject.useRef)();
  const captionRef = (0,external_wp_element_namespaceObject.useRef)();
  const prevUrl = (0,external_wp_compose_namespaceObject.usePrevious)(url);
  const {
    allowResize = true
  } = context;
  const {
    getBlock
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
  const {
    image,
    multiImageSelection
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getMedia
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getMultiSelectedBlockClientIds,
      getBlockName
    } = select(external_wp_blockEditor_namespaceObject.store);
    const multiSelectedClientIds = getMultiSelectedBlockClientIds();
    return {
      image: id && isSelected ? getMedia(id, {
        context: 'view'
      }) : null,
      multiImageSelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/image')
    };
  }, [id, isSelected]);
  const {
    canInsertCover,
    imageEditing,
    imageSizes,
    maxWidth,
    mediaUpload
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockRootClientId,
      getSettings,
      canInsertBlockType
    } = select(external_wp_blockEditor_namespaceObject.store);
    const rootClientId = getBlockRootClientId(clientId);
    const settings = (0,external_lodash_namespaceObject.pick)(getSettings(), ['imageEditing', 'imageSizes', 'maxWidth', 'mediaUpload']);
    return { ...settings,
      canInsertCover: canInsertBlockType('core/cover', rootClientId)
    };
  }, [clientId]);
  const {
    replaceBlocks,
    toggleSelection
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const {
    createErrorNotice,
    createSuccessNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const isWideAligned = (0,external_lodash_namespaceObject.includes)(['wide', 'full'], align);
  const [{
    loadedNaturalWidth,
    loadedNaturalHeight
  }, setLoadedNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
  const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
  const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)();
  const clientWidth = useClientWidth(containerRef, [align]);
  const isResizable = allowResize && !(isWideAligned && isLargeViewport);
  const imageSizeOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref2 => {
    let {
      slug
    } = _ref2;
    return (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', slug, 'source_url']);
  }), _ref3 => {
    let {
      name,
      slug
    } = _ref3;
    return {
      value: slug,
      label: name
    };
  }); // If an image is externally hosted, try to fetch the image data. This may
  // fail if the image host doesn't allow CORS with the domain. If it works,
  // we can enable a button in the toolbar to upload the image.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isExternalImage(id, url) || !isSelected || externalBlob) {
      return;
    }

    window.fetch(url).then(response => response.blob()).then(blob => setExternalBlob(blob)) // Do nothing, cannot upload.
    .catch(() => {});
  }, [id, url, isSelected, externalBlob]); // Focus the caption after inserting an image from the placeholder. This is
  // done to preserve the behaviour of focussing the first tabbable element
  // when a block is mounted. Previously, the image block would remount when
  // the placeholder is removed. Maybe this behaviour could be removed.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (url && !prevUrl && isSelected) {
      captionRef.current.focus();
    }
  }, [url, prevUrl]); // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
  // width and height. This resolves an issue in Safari where the loaded natural
  // witdth and height is otherwise lost when switching between alignments.
  // See: https://github.com/WordPress/gutenberg/pull/37210.

  const {
    naturalWidth,
    naturalHeight
  } = (0,external_wp_element_namespaceObject.useMemo)(() => {
    var _imageRef$current, _imageRef$current2;

    return {
      naturalWidth: ((_imageRef$current = imageRef.current) === null || _imageRef$current === void 0 ? void 0 : _imageRef$current.naturalWidth) || loadedNaturalWidth || undefined,
      naturalHeight: ((_imageRef$current2 = imageRef.current) === null || _imageRef$current2 === void 0 ? void 0 : _imageRef$current2.naturalHeight) || loadedNaturalHeight || undefined
    };
  }, [loadedNaturalWidth, loadedNaturalHeight, (_imageRef$current3 = imageRef.current) === null || _imageRef$current3 === void 0 ? void 0 : _imageRef$current3.complete]);

  function onResizeStart() {
    toggleSelection(false);
  }

  function onResizeStop() {
    toggleSelection(true);
  }

  function onImageError() {
    // Check if there's an embed block that handles this URL.
    const embedBlock = createUpgradedEmbedBlock({
      attributes: {
        url
      }
    });

    if (undefined !== embedBlock) {
      onReplace(embedBlock);
    }
  }

  function onSetHref(props) {
    setAttributes(props);
  }

  function onSetTitle(value) {
    // This is the HTML title attribute, separate from the media object
    // title.
    setAttributes({
      title: value
    });
  }

  function updateAlt(newAlt) {
    setAttributes({
      alt: newAlt
    });
  }

  function updateImage(newSizeSlug) {
    const newUrl = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', newSizeSlug, 'source_url']);

    if (!newUrl) {
      return null;
    }

    setAttributes({
      url: newUrl,
      width: undefined,
      height: undefined,
      sizeSlug: newSizeSlug
    });
  }

  function uploadExternal() {
    mediaUpload({
      filesList: [externalBlob],

      onFileChange(_ref4) {
        let [img] = _ref4;
        onSelectImage(img);

        if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) {
          return;
        }

        setExternalBlob();
        createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded.'), {
          type: 'snackbar'
        });
      },

      allowedTypes: constants_ALLOWED_MEDIA_TYPES,

      onError(message) {
        createErrorNotice(message, {
          type: 'snackbar'
        });
      }

    });
  }

  function updateAlignment(nextAlign) {
    const extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? {
      width: undefined,
      height: undefined
    } : {};
    setAttributes({ ...extraUpdatedAttributes,
      align: nextAlign
    });
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setIsEditingImage(false);
    }
  }, [isSelected]);
  const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
  const allowCrop = !multiImageSelection && canEditImage && !isEditingImage;

  function switchToCover() {
    replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), 'core/cover'));
  }

  const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentControl, {
    value: align,
    onChange: updateAlignment
  }), !multiImageSelection && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
    url: href || '',
    onChangeUrl: onSetHref,
    linkDestination: linkDestination,
    mediaUrl: image && image.source_url || url,
    mediaLink: image && image.link,
    linkTarget: linkTarget,
    linkClass: linkClass,
    rel: rel
  }), allowCrop && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: () => setIsEditingImage(true),
    icon: library_crop,
    label: (0,external_wp_i18n_namespaceObject.__)('Crop')
  }), externalBlob && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: uploadExternal,
    icon: library_upload,
    label: (0,external_wp_i18n_namespaceObject.__)('Upload external image')
  }), !multiImageSelection && canInsertCover && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    icon: overlay_text,
    label: (0,external_wp_i18n_namespaceObject.__)('Add text over image'),
    onClick: switchToCover
  })), !multiImageSelection && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: id,
    mediaURL: url,
    allowedTypes: constants_ALLOWED_MEDIA_TYPES,
    accept: "image/*",
    onSelect: onSelectImage,
    onSelectURL: onSelectURL,
    onError: onUploadError
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Image settings')
  }, !multiImageSelection && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'),
    value: alt,
    onChange: updateAlt,
    help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
      href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
    }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.'))
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
    onChangeImage: updateImage,
    onChange: value => setAttributes(value),
    slug: sizeSlug,
    width: width,
    height: height,
    imageSizeOptions: imageSizeOptions,
    isResizable: isResizable,
    imageWidth: naturalWidth,
    imageHeight: naturalHeight
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
    value: title || '',
    onChange: onSetTitle,
    help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Describe the role of this image on the page.'), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
      href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute"
    }, (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')))
  })));
  const filename = (0,external_wp_url_namespaceObject.getFilename)(url);
  let defaultedAlt;

  if (alt) {
    defaultedAlt = alt;
  } else if (filename) {
    defaultedAlt = (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: file name */
    (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute; its file name is %s'), filename);
  } else {
    defaultedAlt = (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute');
  }

  let img = // Disable reason: Image itself is not meant to be interactive, but
  // should direct focus to block.

  /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
  (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("img", {
    src: temporaryURL || url,
    alt: defaultedAlt,
    onError: () => onImageError(),
    onLoad: event => {
      var _event$target, _event$target2;

      setLoadedNaturalSize({
        loadedNaturalWidth: (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.naturalWidth,
        loadedNaturalHeight: (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.naturalHeight
      });
    },
    ref: imageRef
  }), temporaryURL && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))
  /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
  ;
  let imageWidthWithinContainer;
  let imageHeightWithinContainer;

  if (clientWidth && naturalWidth && naturalHeight) {
    const exceedMaxWidth = naturalWidth > clientWidth;
    const ratio = naturalHeight / naturalWidth;
    imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;
    imageHeightWithinContainer = exceedMaxWidth ? clientWidth * ratio : naturalHeight;
  }

  if (canEditImage && isEditingImage) {
    img = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
      url: url,
      width: width,
      height: height,
      clientWidth: clientWidth,
      naturalHeight: naturalHeight,
      naturalWidth: naturalWidth
    });
  } else if (!isResizable || !imageWidthWithinContainer) {
    img = (0,external_wp_element_namespaceObject.createElement)("div", {
      style: {
        width,
        height
      }
    }, img);
  } else {
    const currentWidth = width || imageWidthWithinContainer;
    const currentHeight = height || imageHeightWithinContainer;
    const ratio = naturalWidth / naturalHeight;
    const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;
    const minHeight = naturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio; // With the current implementation of ResizableBox, an image needs an
    // explicit pixel value for the max-width. In absence of being able to
    // set the content-width, this max-width is currently dictated by the
    // vanilla editor style. The following variable adds a buffer to this
    // vanilla style, so 3rd party themes have some wiggleroom. This does,
    // in most cases, allow you to scale the image beyond the width of the
    // main column, though not infinitely.
    // @todo It would be good to revisit this once a content-width variable
    // becomes available.

    const maxWidthBuffer = maxWidth * 2.5;
    let showRightHandle = false;
    let showLeftHandle = false;
    /* eslint-disable no-lonely-if */
    // See https://github.com/WordPress/gutenberg/issues/7584.

    if (align === 'center') {
      // When the image is centered, show both handles.
      showRightHandle = true;
      showLeftHandle = true;
    } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
      // In RTL mode the image is on the right by default.
      // Show the right handle and hide the left handle only when it is
      // aligned left. Otherwise always show the left handle.
      if (align === 'left') {
        showRightHandle = true;
      } else {
        showLeftHandle = true;
      }
    } else {
      // Show the left handle and hide the right handle only when the
      // image is aligned right. Otherwise always show the right handle.
      if (align === 'right') {
        showLeftHandle = true;
      } else {
        showRightHandle = true;
      }
    }
    /* eslint-enable no-lonely-if */


    img = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
      size: {
        width: width !== null && width !== void 0 ? width : 'auto',
        height: height !== null && height !== void 0 ? height : 'auto'
      },
      showHandle: isSelected,
      minWidth: minWidth,
      maxWidth: maxWidthBuffer,
      minHeight: minHeight,
      maxHeight: maxWidthBuffer / ratio,
      lockAspectRatio: true,
      enable: {
        top: false,
        right: showRightHandle,
        bottom: true,
        left: showLeftHandle
      },
      onResizeStart: onResizeStart,
      onResizeStop: (event, direction, elt, delta) => {
        onResizeStop();
        setAttributes({
          width: parseInt(currentWidth + delta.width, 10),
          height: parseInt(currentHeight + delta.height, 10)
        });
      }
    }, img);
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditingProvider, {
    id: id,
    url: url,
    naturalWidth: naturalWidth,
    naturalHeight: naturalHeight,
    clientWidth: clientWidth,
    onSaveImage: imageAttributes => setAttributes(imageAttributes),
    isEditing: isEditingImage,
    onFinishEditing: () => setIsEditingImage(false)
  }, !temporaryURL && controls, img, (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    ref: captionRef,
    tagName: "figcaption",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
    value: caption,
    onChange: value => setAttributes({
      caption: value
    }),
    inlineToolbar: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








/* global wp */

/**
 * Internal dependencies
 */


/**
 * Module constants
 */


const edit_pickRelevantMediaFiles = (image, size) => {
  const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']);
  imageProps.url = (0,external_lodash_namespaceObject.get)(image, ['sizes', size, 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size, 'source_url']) || image.url;
  return imageProps;
};
/**
 * Is the URL a temporary blob URL? A blob URL is one that is used temporarily
 * while the image is being uploaded and will not have an id yet allocated.
 *
 * @param {number=} id  The id of the image.
 * @param {string=} url The url of the image.
 *
 * @return {boolean} Is the URL a Blob URL
 */

const edit_isTemporaryImage = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);
/**
 * Is the url for the image hosted externally. An externally hosted image has no
 * id and is not a blob url.
 *
 * @param {number=} id  The id of the image.
 * @param {string=} url The url of the image.
 *
 * @return {boolean} Is the url an externally hosted url?
 */


const isExternalImage = (id, url) => url && !id && !(0,external_wp_blob_namespaceObject.isBlobURL)(url);
/**
 * Checks if WP generated default image size. Size generation is skipped
 * when the image is smaller than the said size.
 *
 * @param {Object} image
 * @param {string} defaultSize
 *
 * @return {boolean} Whether or not it has default image size.
 */

function hasDefaultSize(image, defaultSize) {
  return (0,external_lodash_namespaceObject.has)(image, ['sizes', defaultSize, 'url']) || (0,external_lodash_namespaceObject.has)(image, ['media_details', 'sizes', defaultSize, 'source_url']);
}

function ImageEdit(_ref) {
  let {
    attributes,
    setAttributes,
    isSelected,
    className,
    noticeUI,
    insertBlocksAfter,
    noticeOperations,
    onReplace,
    context,
    clientId
  } = _ref;
  const {
    url = '',
    alt,
    caption,
    align,
    id,
    width,
    height,
    sizeSlug
  } = attributes;
  const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
  const altRef = (0,external_wp_element_namespaceObject.useRef)();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    altRef.current = alt;
  }, [alt]);
  const captionRef = (0,external_wp_element_namespaceObject.useRef)();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    captionRef.current = caption;
  }, [caption]);
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const {
    imageDefaultSize,
    mediaUpload
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return (0,external_lodash_namespaceObject.pick)(getSettings(), ['imageDefaultSize', 'mediaUpload']);
  }, []);

  function onUploadError(message) {
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
    setAttributes({
      src: undefined,
      id: undefined,
      url: undefined
    });
    setTemporaryURL(undefined);
  }

  function onSelectImage(media) {
    var _wp, _wp$media, _wp$media$view, _wp$media$view$settin, _wp$media$view$settin2;

    if (!media || !media.url) {
      setAttributes({
        url: undefined,
        alt: undefined,
        id: undefined,
        title: undefined,
        caption: undefined
      });
      return;
    }

    if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
      setTemporaryURL(media.url);
      return;
    }

    setTemporaryURL();
    let mediaAttributes = edit_pickRelevantMediaFiles(media, imageDefaultSize); // If a caption text was meanwhile written by the user,
    // make sure the text is not overwritten by empty captions.

    if (captionRef.current && !(0,external_lodash_namespaceObject.get)(mediaAttributes, ['caption'])) {
      mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['caption']);
    }

    let additionalAttributes; // Reset the dimension attributes if changing to a different image.

    if (!media.id || media.id !== id) {
      additionalAttributes = {
        width: undefined,
        height: undefined,
        // Fallback to size "full" if there's no default image size.
        // It means the image is smaller, and the block will use a full-size URL.
        sizeSlug: hasDefaultSize(media, imageDefaultSize) ? imageDefaultSize : 'full'
      };
    } else {
      // Keep the same url when selecting the same file, so "Image Size"
      // option is not changed.
      additionalAttributes = {
        url
      };
    } // Check if default link setting should be used.


    let linkDestination = attributes.linkDestination;

    if (!linkDestination) {
      // Use the WordPress option to determine the proper default.
      // The constants used in Gutenberg do not match WP options so a little more complicated than ideal.
      // TODO: fix this in a follow up PR, requires updating media-text and ui component.
      switch (((_wp = wp) === null || _wp === void 0 ? void 0 : (_wp$media = _wp.media) === null || _wp$media === void 0 ? void 0 : (_wp$media$view = _wp$media.view) === null || _wp$media$view === void 0 ? void 0 : (_wp$media$view$settin = _wp$media$view.settings) === null || _wp$media$view$settin === void 0 ? void 0 : (_wp$media$view$settin2 = _wp$media$view$settin.defaultProps) === null || _wp$media$view$settin2 === void 0 ? void 0 : _wp$media$view$settin2.link) || constants_LINK_DESTINATION_NONE) {
        case 'file':
        case constants_LINK_DESTINATION_MEDIA:
          linkDestination = constants_LINK_DESTINATION_MEDIA;
          break;

        case 'post':
        case constants_LINK_DESTINATION_ATTACHMENT:
          linkDestination = constants_LINK_DESTINATION_ATTACHMENT;
          break;

        case LINK_DESTINATION_CUSTOM:
          linkDestination = LINK_DESTINATION_CUSTOM;
          break;

        case constants_LINK_DESTINATION_NONE:
          linkDestination = constants_LINK_DESTINATION_NONE;
          break;
      }
    } // Check if the image is linked to it's media.


    let href;

    switch (linkDestination) {
      case constants_LINK_DESTINATION_MEDIA:
        href = media.url;
        break;

      case constants_LINK_DESTINATION_ATTACHMENT:
        href = media.link;
        break;
    }

    mediaAttributes.href = href;
    setAttributes({ ...mediaAttributes,
      ...additionalAttributes,
      linkDestination
    });
  }

  function onSelectURL(newURL) {
    if (newURL !== url) {
      setAttributes({
        url: newURL,
        id: undefined,
        width: undefined,
        height: undefined,
        sizeSlug: imageDefaultSize
      });
    }
  }

  function updateAlignment(nextAlign) {
    const extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? {
      width: undefined,
      height: undefined
    } : {};
    setAttributes({ ...extraUpdatedAttributes,
      align: nextAlign
    });
  }

  let isTemp = edit_isTemporaryImage(id, url); // Upload a temporary image on mount.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isTemp) {
      return;
    }

    const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(url);

    if (file) {
      mediaUpload({
        filesList: [file],
        onFileChange: _ref2 => {
          let [img] = _ref2;
          onSelectImage(img);
        },
        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
        onError: message => {
          isTemp = false;
          onUploadError(message);
        }
      });
    }
  }, []); // If an image is temporary, revoke the Blob url when it is uploaded (and is
  // no longer temporary).

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isTemp) {
      setTemporaryURL(url);
      return;
    }

    (0,external_wp_blob_namespaceObject.revokeBlobURL)(temporaryURL);
  }, [isTemp, url]);
  const isExternal = isExternalImage(id, url);
  const src = isExternal ? url : undefined;
  const mediaPreview = !!url && (0,external_wp_element_namespaceObject.createElement)("img", {
    alt: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
    title: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
    className: 'edit-image-preview',
    src: url
  });
  const classes = classnames_default()(className, {
    'is-transient': temporaryURL,
    'is-resized': !!width || !!height,
    [`size-${sizeSlug}`]: sizeSlug
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref,
    className: classes
  });
  return (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (temporaryURL || url) && (0,external_wp_element_namespaceObject.createElement)(Image, {
    temporaryURL: temporaryURL,
    attributes: attributes,
    setAttributes: setAttributes,
    isSelected: isSelected,
    insertBlocksAfter: insertBlocksAfter,
    onReplace: onReplace,
    onSelectImage: onSelectImage,
    onSelectURL: onSelectURL,
    onUploadError: onUploadError,
    containerRef: ref,
    context: context,
    clientId: clientId
  }), !url && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentControl, {
    value: align,
    onChange: updateAlignment
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: library_image
    }),
    onSelect: onSelectImage,
    onSelectURL: onSelectURL,
    notices: noticeUI,
    onError: onUploadError,
    accept: "image/*",
    allowedTypes: constants_ALLOWED_MEDIA_TYPES,
    value: {
      id,
      src
    },
    mediaPreview: mediaPreview,
    disableMediaButtons: temporaryURL || url
  }));
}
/* harmony default export */ var image_edit = ((0,external_wp_components_namespaceObject.withNotices)(ImageEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/save.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


function image_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    url,
    alt,
    caption,
    align,
    href,
    rel,
    linkClass,
    width,
    height,
    id,
    linkTarget,
    sizeSlug,
    title
  } = attributes;
  const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
  const classes = classnames_default()({
    [`align${align}`]: align,
    [`size-${sizeSlug}`]: sizeSlug,
    'is-resized': width || height
  });
  const image = (0,external_wp_element_namespaceObject.createElement)("img", {
    src: url,
    alt: alt,
    className: id ? `wp-image-${id}` : null,
    width: width,
    height: height,
    title: title
  });
  const figure = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
    className: linkClass,
    href: href,
    target: linkTarget,
    rel: newRel
  }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    value: caption
  }));
  return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className: classes
  }), figure);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/transforms.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






function stripFirstImage(attributes, _ref) {
  let {
    shortcode
  } = _ref;
  const {
    body
  } = document.implementation.createHTMLDocument('');
  body.innerHTML = shortcode.content;
  let nodeToRemove = body.querySelector('img'); // If an image has parents, find the topmost node to remove.

  while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) {
    nodeToRemove = nodeToRemove.parentNode;
  }

  if (nodeToRemove) {
    nodeToRemove.parentNode.removeChild(nodeToRemove);
  }

  return body.innerHTML.trim();
}

function getFirstAnchorAttributeFormHTML(html, attributeName) {
  const {
    body
  } = document.implementation.createHTMLDocument('');
  body.innerHTML = html;
  const {
    firstElementChild
  } = body;

  if (firstElementChild && firstElementChild.nodeName === 'A') {
    return firstElementChild.getAttribute(attributeName) || undefined;
  }
}

const imageSchema = {
  img: {
    attributes: ['src', 'alt', 'title'],
    classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\d+$/]
  }
};

const schema = _ref2 => {
  let {
    phrasingContentSchema
  } = _ref2;
  return {
    figure: {
      require: ['img'],
      children: { ...imageSchema,
        a: {
          attributes: ['href', 'rel', 'target'],
          children: imageSchema
        },
        figcaption: {
          children: phrasingContentSchema
        }
      }
    }
  };
};

const image_transforms_transforms = {
  from: [{
    type: 'raw',
    isMatch: node => node.nodeName === 'FIGURE' && !!node.querySelector('img'),
    schema,
    transform: node => {
      // Search both figure and image classes. Alignment could be
      // set on either. ID is set on the image.
      const className = node.className + ' ' + node.querySelector('img').className;
      const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec(className);
      const anchor = node.id === '' ? undefined : node.id;
      const align = alignMatches ? alignMatches[1] : undefined;
      const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec(className);
      const id = idMatches ? Number(idMatches[1]) : undefined;
      const anchorElement = node.querySelector('a');
      const linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;
      const href = anchorElement && anchorElement.href ? anchorElement.href : undefined;
      const rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined;
      const linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined;
      const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/image', node.outerHTML, {
        align,
        id,
        linkDestination,
        href,
        rel,
        linkClass,
        anchor
      });
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', attributes);
    }
  }, {
    // Note: when dragging and dropping multiple files onto a gallery this overrides the
    // gallery transform in order to add new images to the gallery instead of
    // creating a new gallery.
    type: 'files',

    isMatch(files) {
      // The following check is intended to catch non-image files when dropped together with images.
      if (files.some(file => file.type.indexOf('image/') === 0) && files.some(file => file.type.indexOf('image/') !== 0)) {
        const {
          createErrorNotice
        } = (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store);
        createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
          id: 'gallery-transform-invalid-file'
        });
      }

      return (0,external_lodash_namespaceObject.every)(files, file => file.type.indexOf('image/') === 0);
    },

    transform(files) {
      const blocks = files.map(file => {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
          url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
        });
      });
      return blocks;
    }

  }, {
    type: 'shortcode',
    tag: 'caption',
    attributes: {
      url: {
        type: 'string',
        source: 'attribute',
        attribute: 'src',
        selector: 'img'
      },
      alt: {
        type: 'string',
        source: 'attribute',
        attribute: 'alt',
        selector: 'img'
      },
      caption: {
        shortcode: stripFirstImage
      },
      href: {
        shortcode: (attributes, _ref3) => {
          let {
            shortcode
          } = _ref3;
          return getFirstAnchorAttributeFormHTML(shortcode.content, 'href');
        }
      },
      rel: {
        shortcode: (attributes, _ref4) => {
          let {
            shortcode
          } = _ref4;
          return getFirstAnchorAttributeFormHTML(shortcode.content, 'rel');
        }
      },
      linkClass: {
        shortcode: (attributes, _ref5) => {
          let {
            shortcode
          } = _ref5;
          return getFirstAnchorAttributeFormHTML(shortcode.content, 'class');
        }
      },
      id: {
        type: 'number',
        shortcode: _ref6 => {
          let {
            named: {
              id
            }
          } = _ref6;

          if (!id) {
            return;
          }

          return parseInt(id.replace('attachment_', ''), 10);
        }
      },
      align: {
        type: 'string',
        shortcode: _ref7 => {
          let {
            named: {
              align = 'alignnone'
            }
          } = _ref7;
          return align.replace('align', '');
        }
      }
    }
  }]
};
/* harmony default export */ var image_transforms = (image_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const image_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/image",
  title: "Image",
  category: "media",
  usesContext: ["allowResize", "imageCrop", "fixedHeight"],
  description: "Insert an image to make a visual statement.",
  keywords: ["img", "photo", "picture"],
  textdomain: "default",
  attributes: {
    align: {
      type: "string"
    },
    url: {
      type: "string",
      source: "attribute",
      selector: "img",
      attribute: "src"
    },
    alt: {
      type: "string",
      source: "attribute",
      selector: "img",
      attribute: "alt",
      "default": ""
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    title: {
      type: "string",
      source: "attribute",
      selector: "img",
      attribute: "title"
    },
    href: {
      type: "string",
      source: "attribute",
      selector: "figure > a",
      attribute: "href"
    },
    rel: {
      type: "string",
      source: "attribute",
      selector: "figure > a",
      attribute: "rel"
    },
    linkClass: {
      type: "string",
      source: "attribute",
      selector: "figure > a",
      attribute: "class"
    },
    id: {
      type: "number"
    },
    width: {
      type: "number"
    },
    height: {
      type: "number"
    },
    sizeSlug: {
      type: "string"
    },
    linkDestination: {
      type: "string"
    },
    linkTarget: {
      type: "string",
      source: "attribute",
      selector: "figure > a",
      attribute: "target"
    }
  },
  supports: {
    anchor: true,
    color: {
      __experimentalDuotone: "img",
      text: false,
      background: false
    },
    __experimentalBorder: {
      radius: true,
      __experimentalDefaultControls: {
        radius: true
      }
    }
  },
  styles: [{
    name: "default",
    label: "Default",
    isDefault: true
  }, {
    name: "rounded",
    label: "Rounded"
  }],
  editorStyle: "wp-block-image-editor",
  style: "wp-block-image"
};


const {
  name: image_name
} = image_metadata;

const image_settings = {
  icon: library_image,
  example: {
    attributes: {
      sizeSlug: 'large',
      url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',
      // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.
      caption: (0,external_wp_i18n_namespaceObject.__)('Mont Blanc appears—still, snowy, and serene.')
    }
  },

  __experimentalLabel(attributes, _ref) {
    let {
      context
    } = _ref;

    if (context === 'accessibility') {
      const {
        caption,
        alt,
        url
      } = attributes;

      if (!url) {
        return (0,external_wp_i18n_namespaceObject.__)('Empty');
      }

      if (!alt) {
        return caption || '';
      } // This is intended to be read by a screen reader.
      // A period simply means a pause, no need to translate it.


      return alt + (caption ? '. ' + caption : '');
    }
  },

  getEditWrapperProps(attributes) {
    return {
      'data-align': attributes.align
    };
  },

  transforms: image_transforms,
  edit: image_edit,
  save: image_save_save,
  deprecated: image_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment.js


/**
 * WordPress dependencies
 */

const comment = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z"
}));
/* harmony default export */ var library_comment = (comment);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js


/**
 * WordPress dependencies
 */




/**
 * Minimum number of comments a user can show using this block.
 *
 * @type {number}
 */

const MIN_COMMENTS = 1;
/**
 * Maximum number of comments a user can show using this block.
 *
 * @type {number}
 */

const MAX_COMMENTS = 100;
function LatestComments(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    commentsToShow,
    displayAvatar,
    displayDate,
    displayExcerpt
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Latest comments settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
    checked: displayAvatar,
    onChange: () => setAttributes({
      displayAvatar: !displayAvatar
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
    checked: displayDate,
    onChange: () => setAttributes({
      displayDate: !displayDate
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
    checked: displayExcerpt,
    onChange: () => setAttributes({
      displayExcerpt: !displayExcerpt
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
    value: commentsToShow,
    onChange: value => setAttributes({
      commentsToShow: value
    }),
    min: MIN_COMMENTS,
    max: MAX_COMMENTS,
    required: true
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), {
    block: "core/latest-comments",
    attributes: attributes // The preview uses the site's locale to make it more true to how
    // the block appears on the frontend. Setting the locale
    // explicitly prevents any middleware from setting it to 'user'.
    ,
    urlQueryArgs: {
      _locale: 'site'
    }
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const latest_comments_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/latest-comments",
  title: "Latest Comments",
  category: "widgets",
  description: "Display a list of your most recent comments.",
  keywords: ["recent comments"],
  textdomain: "default",
  attributes: {
    commentsToShow: {
      type: "number",
      "default": 5,
      minimum: 1,
      maximum: 100
    },
    displayAvatar: {
      type: "boolean",
      "default": true
    },
    displayDate: {
      type: "boolean",
      "default": true
    },
    displayExcerpt: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    align: true,
    html: false
  },
  editorStyle: "wp-block-latest-comments-editor",
  style: "wp-block-latest-comments"
};

const {
  name: latest_comments_name
} = latest_comments_metadata;

const latest_comments_settings = {
  icon: library_comment,
  example: {},
  edit: LatestComments
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js


/**
 * WordPress dependencies
 */

const postList = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 11h2V9H7v2zm0 4h2v-2H7v2zm3-4h7V9h-7v2zm0 4h7v-2h-7v2z"
}));
/* harmony default export */ var post_list = (postList);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js
/**
 * Internal dependencies
 */
const latest_posts_deprecated_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/latest-posts",
  title: "Latest Posts",
  category: "widgets",
  description: "Display a list of your most recent posts.",
  keywords: ["recent posts"],
  textdomain: "default",
  attributes: {
    categories: {
      type: "array",
      items: {
        type: "object"
      }
    },
    selectedAuthor: {
      type: "number"
    },
    postsToShow: {
      type: "number",
      "default": 5
    },
    displayPostContent: {
      type: "boolean",
      "default": false
    },
    displayPostContentRadio: {
      type: "string",
      "default": "excerpt"
    },
    excerptLength: {
      type: "number",
      "default": 55
    },
    displayAuthor: {
      type: "boolean",
      "default": false
    },
    displayPostDate: {
      type: "boolean",
      "default": false
    },
    postLayout: {
      type: "string",
      "default": "list"
    },
    columns: {
      type: "number",
      "default": 3
    },
    order: {
      type: "string",
      "default": "desc"
    },
    orderBy: {
      type: "string",
      "default": "date"
    },
    displayFeaturedImage: {
      type: "boolean",
      "default": false
    },
    featuredImageAlign: {
      type: "string",
      "enum": ["left", "center", "right"]
    },
    featuredImageSizeSlug: {
      type: "string",
      "default": "thumbnail"
    },
    featuredImageSizeWidth: {
      type: "number",
      "default": null
    },
    featuredImageSizeHeight: {
      type: "number",
      "default": null
    },
    addLinkToFeaturedImage: {
      type: "boolean",
      "default": false
    }
  },
  supports: {
    align: true,
    html: false
  },
  editorStyle: "wp-block-latest-posts-editor",
  style: "wp-block-latest-posts"
};
const {
  attributes: deprecated_attributes
} = latest_posts_deprecated_metadata;
/* harmony default export */ var latest_posts_deprecated = ([{
  attributes: { ...deprecated_attributes,
    categories: {
      type: 'string'
    }
  },
  supports: {
    align: true,
    html: false
  },
  migrate: oldAttributes => {
    // This needs the full category object, not just the ID.
    return { ...oldAttributes,
      categories: [{
        id: Number(oldAttributes.categories)
      }]
    };
  },
  isEligible: _ref => {
    let {
      categories
    } = _ref;
    return categories && 'string' === typeof categories;
  },
  save: () => null
}]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list.js


/**
 * WordPress dependencies
 */

const list = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z"
}));
/* harmony default export */ var library_list = (list);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js


/**
 * WordPress dependencies
 */

const grid = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7.8 16.5H5c-.3 0-.5-.2-.5-.5v-6.2h6.8v6.7zm0-8.3H4.5V5c0-.3.2-.5.5-.5h6.2v6.7zm8.3 7.8c0 .3-.2.5-.5.5h-6.2v-6.8h6.8V19zm0-7.8h-6.8V4.5H19c.3 0 .5.2.5.5v6.2z",
  fillRule: "evenodd",
  clipRule: "evenodd"
}));
/* harmony default export */ var library_grid = (grid);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js
const MIN_EXCERPT_LENGTH = 10;
const MAX_EXCERPT_LENGTH = 100;
const MAX_POSTS_COLUMNS = 6;

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


/**
 * Module Constants
 */

const CATEGORIES_LIST_QUERY = {
  per_page: -1,
  context: 'view'
};
const USERS_LIST_QUERY = {
  per_page: -1,
  has_published_posts: ['post'],
  context: 'view'
};

function getFeaturedImageDetails(post, size) {
  var _image$media_details$, _image$media_details, _image$media_details$2, _image$media_details$3;

  const image = (0,external_lodash_namespaceObject.get)(post, ['_embedded', 'wp:featuredmedia', '0']);
  return {
    url: (_image$media_details$ = image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$2 = _image$media_details.sizes) === null || _image$media_details$2 === void 0 ? void 0 : (_image$media_details$3 = _image$media_details$2[size]) === null || _image$media_details$3 === void 0 ? void 0 : _image$media_details$3.source_url) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : image === null || image === void 0 ? void 0 : image.source_url,
    alt: image === null || image === void 0 ? void 0 : image.alt_text
  };
}

function LatestPostsEdit(_ref) {
  var _categoriesList$reduc;

  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    postsToShow,
    order,
    orderBy,
    categories,
    selectedAuthor,
    displayFeaturedImage,
    displayPostContentRadio,
    displayPostContent,
    displayPostDate,
    displayAuthor,
    postLayout,
    columns,
    excerptLength,
    featuredImageAlign,
    featuredImageSizeSlug,
    featuredImageSizeWidth,
    featuredImageSizeHeight,
    addLinkToFeaturedImage
  } = attributes;
  const {
    imageSizes,
    latestPosts,
    defaultImageWidth,
    defaultImageHeight,
    categoriesList,
    authorList
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords,
      getUsers
    } = select(external_wp_coreData_namespaceObject.store);
    const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
    const catIds = categories && categories.length > 0 ? categories.map(cat => cat.id) : [];
    const latestPostsQuery = (0,external_lodash_namespaceObject.pickBy)({
      categories: catIds,
      author: selectedAuthor,
      order,
      orderby: orderBy,
      per_page: postsToShow,
      _embed: 'wp:featuredmedia'
    }, value => !(0,external_lodash_namespaceObject.isUndefined)(value));
    return {
      defaultImageWidth: (0,external_lodash_namespaceObject.get)(settings.imageDimensions, [featuredImageSizeSlug, 'width'], 0),
      defaultImageHeight: (0,external_lodash_namespaceObject.get)(settings.imageDimensions, [featuredImageSizeSlug, 'height'], 0),
      imageSizes: settings.imageSizes,
      latestPosts: getEntityRecords('postType', 'post', latestPostsQuery),
      categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY),
      authorList: getUsers(USERS_LIST_QUERY)
    };
  }, [featuredImageSizeSlug, postsToShow, order, orderBy, categories, selectedAuthor]);
  const imageSizeOptions = imageSizes.filter(_ref2 => {
    let {
      slug
    } = _ref2;
    return slug !== 'full';
  }).map(_ref3 => {
    let {
      name,
      slug
    } = _ref3;
    return {
      value: slug,
      label: name
    };
  });
  const categorySuggestions = (_categoriesList$reduc = categoriesList === null || categoriesList === void 0 ? void 0 : categoriesList.reduce((accumulator, category) => ({ ...accumulator,
    [category.name]: category
  }), {})) !== null && _categoriesList$reduc !== void 0 ? _categoriesList$reduc : {};

  const selectCategories = tokens => {
    const hasNoSuggestion = tokens.some(token => typeof token === 'string' && !categorySuggestions[token]);

    if (hasNoSuggestion) {
      return;
    } // Categories that are already will be objects, while new additions will be strings (the name).
    // allCategories nomalizes the array so that they are all objects.


    const allCategories = tokens.map(token => {
      return typeof token === 'string' ? categorySuggestions[token] : token;
    }); // We do nothing if the category is not selected
    // from suggestions.

    if ((0,external_lodash_namespaceObject.includes)(allCategories, null)) {
      return false;
    }

    setAttributes({
      categories: allCategories
    });
  };

  const hasPosts = !!(latestPosts !== null && latestPosts !== void 0 && latestPosts.length);
  const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Post content settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
    checked: displayPostContent,
    onChange: value => setAttributes({
      displayPostContent: value
    })
  }), displayPostContent && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RadioControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show:'),
    selected: displayPostContentRadio,
    options: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
      value: 'excerpt'
    }, {
      label: (0,external_wp_i18n_namespaceObject.__)('Full post'),
      value: 'full_post'
    }],
    onChange: value => setAttributes({
      displayPostContentRadio: value
    })
  }), displayPostContent && displayPostContentRadio === 'excerpt' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
    value: excerptLength,
    onChange: value => setAttributes({
      excerptLength: value
    }),
    min: MIN_EXCERPT_LENGTH,
    max: MAX_EXCERPT_LENGTH
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Post meta settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
    checked: displayAuthor,
    onChange: value => setAttributes({
      displayAuthor: value
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
    checked: displayPostDate,
    onChange: value => setAttributes({
      displayPostDate: value
    })
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Featured image settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display featured image'),
    checked: displayFeaturedImage,
    onChange: value => setAttributes({
      displayFeaturedImage: value
    })
  }), displayFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
    onChange: value => {
      const newAttrs = {};

      if (value.hasOwnProperty('width')) {
        newAttrs.featuredImageSizeWidth = value.width;
      }

      if (value.hasOwnProperty('height')) {
        newAttrs.featuredImageSizeHeight = value.height;
      }

      setAttributes(newAttrs);
    },
    slug: featuredImageSizeSlug,
    width: featuredImageSizeWidth,
    height: featuredImageSizeHeight,
    imageWidth: defaultImageWidth,
    imageHeight: defaultImageHeight,
    imageSizeOptions: imageSizeOptions,
    onChangeImage: value => setAttributes({
      featuredImageSizeSlug: value,
      featuredImageSizeWidth: undefined,
      featuredImageSizeHeight: undefined
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
    className: "editor-latest-posts-image-alignment-control"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, (0,external_wp_i18n_namespaceObject.__)('Image alignment')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, {
    value: featuredImageAlign,
    onChange: value => setAttributes({
      featuredImageAlign: value
    }),
    controls: ['left', 'center', 'right'],
    isCollapsed: false
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Add link to featured image'),
    checked: addLinkToFeaturedImage,
    onChange: value => setAttributes({
      addLinkToFeaturedImage: value
    })
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Sorting and filtering')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.QueryControls, {
    order,
    orderBy,
    numberOfItems: postsToShow,
    onOrderChange: value => setAttributes({
      order: value
    }),
    onOrderByChange: value => setAttributes({
      orderBy: value
    }),
    onNumberOfItemsChange: value => setAttributes({
      postsToShow: value
    }),
    categorySuggestions: categorySuggestions,
    onCategoryChange: selectCategories,
    selectedCategories: categories,
    onAuthorChange: value => setAttributes({
      selectedAuthor: '' !== value ? Number(value) : undefined
    }),
    authorList: authorList !== null && authorList !== void 0 ? authorList : [],
    selectedAuthorId: selectedAuthor
  }), postLayout === 'grid' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: columns,
    onChange: value => setAttributes({
      columns: value
    }),
    min: 2,
    max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length),
    required: true
  })));
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      'wp-block-latest-posts__list': true,
      'is-grid': postLayout === 'grid',
      'has-dates': displayPostDate,
      'has-author': displayAuthor,
      [`columns-${columns}`]: postLayout === 'grid'
    })
  });

  if (!hasPosts) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
      icon: library_pin,
      label: (0,external_wp_i18n_namespaceObject.__)('Latest Posts')
    }, !Array.isArray(latestPosts) ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null) : (0,external_wp_i18n_namespaceObject.__)('No posts found.')));
  } // Removing posts from display should be instant.


  const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;
  const layoutControls = [{
    icon: library_list,
    title: (0,external_wp_i18n_namespaceObject.__)('List view'),
    onClick: () => setAttributes({
      postLayout: 'list'
    }),
    isActive: postLayout === 'list'
  }, {
    icon: library_grid,
    title: (0,external_wp_i18n_namespaceObject.__)('Grid view'),
    onClick: () => setAttributes({
      postLayout: 'grid'
    }),
    isActive: postLayout === 'grid'
  }];

  const dateFormat = (0,external_wp_date_namespaceObject.__experimentalGetSettings)().formats.date;

  return (0,external_wp_element_namespaceObject.createElement)("div", null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
    controls: layoutControls
  })), (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, displayPosts.map((post, i) => {
    const titleTrimmed = (0,external_lodash_namespaceObject.invoke)(post, ['title', 'rendered', 'trim']);
    let excerpt = post.excerpt.rendered;
    const currentAuthor = authorList === null || authorList === void 0 ? void 0 : authorList.find(author => author.id === post.author);
    const excerptElement = document.createElement('div');
    excerptElement.innerHTML = excerpt;
    excerpt = excerptElement.textContent || excerptElement.innerText || '';
    const {
      url: imageSourceUrl,
      alt: featuredImageAlt
    } = getFeaturedImageDetails(post, featuredImageSizeSlug);
    const imageClasses = classnames_default()({
      'wp-block-latest-posts__featured-image': true,
      [`align${featuredImageAlign}`]: !!featuredImageAlign
    });
    const renderFeaturedImage = displayFeaturedImage && imageSourceUrl;
    const featuredImage = renderFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("img", {
      src: imageSourceUrl,
      alt: featuredImageAlt,
      style: {
        maxWidth: featuredImageSizeWidth,
        maxHeight: featuredImageSizeHeight
      }
    });
    const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
    const postExcerpt = needsReadMore ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, excerpt.trim().split(' ', excerptLength).join(' '), (0,external_wp_i18n_namespaceObject.__)(' … '), (0,external_wp_element_namespaceObject.createElement)("a", {
      href: post.link,
      rel: "noopener noreferrer"
    }, (0,external_wp_i18n_namespaceObject.__)('Read more'))) : excerpt;
    return (0,external_wp_element_namespaceObject.createElement)("li", {
      key: i
    }, renderFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("div", {
      className: imageClasses
    }, addLinkToFeaturedImage ? (0,external_wp_element_namespaceObject.createElement)("a", {
      className: "wp-block-latest-posts__post-title",
      href: post.link,
      rel: "noreferrer noopener"
    }, featuredImage) : featuredImage), (0,external_wp_element_namespaceObject.createElement)("a", {
      href: post.link,
      rel: "noreferrer noopener",
      dangerouslySetInnerHTML: !!titleTrimmed ? {
        __html: titleTrimmed
      } : undefined
    }, !titleTrimmed ? (0,external_wp_i18n_namespaceObject.__)('(no title)') : null), displayAuthor && currentAuthor && (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-latest-posts__post-author"
    }, (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: byline. %s: current author. */
    (0,external_wp_i18n_namespaceObject.__)('by %s'), currentAuthor.name)), displayPostDate && post.date_gmt && (0,external_wp_element_namespaceObject.createElement)("time", {
      dateTime: (0,external_wp_date_namespaceObject.format)('c', post.date_gmt),
      className: "wp-block-latest-posts__post-date"
    }, (0,external_wp_date_namespaceObject.dateI18n)(dateFormat, post.date_gmt)), displayPostContent && displayPostContentRadio === 'excerpt' && (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-latest-posts__post-excerpt"
    }, postExcerpt), displayPostContent && displayPostContentRadio === 'full_post' && (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-latest-posts__post-full-content",
      dangerouslySetInnerHTML: {
        __html: post.content.raw.trim()
      }
    }));
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const latest_posts_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/latest-posts",
  title: "Latest Posts",
  category: "widgets",
  description: "Display a list of your most recent posts.",
  keywords: ["recent posts"],
  textdomain: "default",
  attributes: {
    categories: {
      type: "array",
      items: {
        type: "object"
      }
    },
    selectedAuthor: {
      type: "number"
    },
    postsToShow: {
      type: "number",
      "default": 5
    },
    displayPostContent: {
      type: "boolean",
      "default": false
    },
    displayPostContentRadio: {
      type: "string",
      "default": "excerpt"
    },
    excerptLength: {
      type: "number",
      "default": 55
    },
    displayAuthor: {
      type: "boolean",
      "default": false
    },
    displayPostDate: {
      type: "boolean",
      "default": false
    },
    postLayout: {
      type: "string",
      "default": "list"
    },
    columns: {
      type: "number",
      "default": 3
    },
    order: {
      type: "string",
      "default": "desc"
    },
    orderBy: {
      type: "string",
      "default": "date"
    },
    displayFeaturedImage: {
      type: "boolean",
      "default": false
    },
    featuredImageAlign: {
      type: "string",
      "enum": ["left", "center", "right"]
    },
    featuredImageSizeSlug: {
      type: "string",
      "default": "thumbnail"
    },
    featuredImageSizeWidth: {
      type: "number",
      "default": null
    },
    featuredImageSizeHeight: {
      type: "number",
      "default": null
    },
    addLinkToFeaturedImage: {
      type: "boolean",
      "default": false
    }
  },
  supports: {
    align: true,
    html: false
  },
  editorStyle: "wp-block-latest-posts-editor",
  style: "wp-block-latest-posts"
};
const {
  name: latest_posts_name
} = latest_posts_metadata;

const latest_posts_settings = {
  icon: post_list,
  example: {},
  edit: LatestPostsEdit,
  deprecated: latest_posts_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/deprecated.js


/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const v0 = {
  attributes: {
    ordered: {
      type: 'boolean',
      default: false,
      __experimentalRole: 'content'
    },
    values: {
      type: 'string',
      source: 'html',
      selector: 'ol,ul',
      multiline: 'li',
      __unstableMultilineWrapperTags: ['ol', 'ul'],
      default: '',
      __experimentalRole: 'content'
    },
    type: {
      type: 'string'
    },
    start: {
      type: 'number'
    },
    reversed: {
      type: 'boolean'
    },
    placeholder: {
      type: 'string'
    }
  },
  supports: {
    anchor: true,
    className: false,
    typography: {
      fontSize: true,
      __experimentalFontFamily: true
    },
    color: {
      gradients: true,
      link: true
    },
    __unstablePasteTextInline: true,
    __experimentalSelector: 'ol,ul',
    __experimentalSlashInserter: true
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      ordered,
      values,
      type,
      reversed,
      start
    } = attributes;
    const TagName = ordered ? 'ol' : 'ul';
    return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
      type,
      reversed,
      start
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: values,
      multiline: "li"
    }));
  },

  migrate: migrate_font_family,

  isEligible(_ref2) {
    var _style$typography;

    let {
      style
    } = _ref2;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var list_deprecated = ([v0]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js


/**
 * WordPress dependencies
 */

const formatListBulletsRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"
}));
/* harmony default export */ var format_list_bullets_rtl = (formatListBulletsRTL);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js


/**
 * WordPress dependencies
 */

const formatListBullets = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"
}));
/* harmony default export */ var format_list_bullets = (formatListBullets);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js


/**
 * WordPress dependencies
 */

const formatListNumberedRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M3.8 15.8h8.9v-1.5H3.8v1.5zm0-7h8.9V7.2H3.8v1.6zm14.7-2.1V10h1V5.3l-2.2.7.3 1 .9-.3zm1.2 6.1c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5H20v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3 0-.8-.3-1.1z"
}));
/* harmony default export */ var format_list_numbered_rtl = (formatListNumberedRTL);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js


/**
 * WordPress dependencies
 */

const formatListNumbered = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM5 6.7V10h1V5.3L3.8 6l.4 1 .8-.3zm-.4 5.7c-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-1c.3-.6.8-1.4.9-2.1.1-.3 0-.8-.2-1.1-.5-.6-1.3-.5-1.7-.4z"
}));
/* harmony default export */ var format_list_numbered = (formatListNumbered);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js


/**
 * WordPress dependencies
 */

const formatOutdentRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM15.4697 14.9697L18.4393 12L15.4697 9.03033L16.5303 7.96967L20.0303 11.4697L20.5607 12L20.0303 12.5303L16.5303 16.0303L15.4697 14.9697Z"
}));
/* harmony default export */ var format_outdent_rtl = (formatOutdentRTL);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent.js


/**
 * WordPress dependencies
 */

const formatOutdent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-4-4.6l-4 4 4 4 1-1-3-3 3-3-1-1z"
}));
/* harmony default export */ var format_outdent = (formatOutdent);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js


/**
 * WordPress dependencies
 */

const formatIndentRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM20.0303 9.03033L17.0607 12L20.0303 14.9697L18.9697 16.0303L15.4697 12.5303L14.9393 12L15.4697 11.4697L18.9697 7.96967L20.0303 9.03033Z"
}));
/* harmony default export */ var format_indent_rtl = (formatIndentRTL);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent.js


/**
 * WordPress dependencies
 */

const formatIndent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-8-3.5l3 3-3 3 1 1 4-4-4-4-1 1z"
}));
/* harmony default export */ var format_indent = (formatIndent);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js


/**
 * WordPress dependencies
 */




const OrderedListSettings = _ref => {
  let {
    setAttributes,
    reversed,
    start
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Ordered list settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Start value'),
    type: "number",
    onChange: value => {
      const int = parseInt(value, 10);
      setAttributes({
        // It should be possible to unset the value,
        // e.g. with an empty string.
        start: isNaN(int) ? undefined : int
      });
    },
    value: Number.isInteger(start) ? start.toString(10) : '',
    step: "1"
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Reverse list numbering'),
    checked: reversed || false,
    onChange: value => {
      setAttributes({
        // Unset the attribute if not reversed.
        reversed: value || undefined
      });
    }
  })));
};

/* harmony default export */ var ordered_list_settings = (OrderedListSettings);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/edit.js



/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



function ListEdit(_ref) {
  let {
    attributes,
    setAttributes,
    mergeBlocks,
    onReplace,
    style
  } = _ref;
  const {
    ordered,
    values,
    type,
    reversed,
    start,
    placeholder
  } = attributes;
  const tagName = ordered ? 'ol' : 'ul';

  const controls = _ref2 => {
    let {
      value,
      onChange,
      onFocus
    } = _ref2;
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
      type: "primary",
      character: "[",
      onUse: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value));
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
      type: "primary",
      character: "]",
      onUse: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, {
          type: tagName
        }));
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
      type: "primary",
      character: "m",
      onUse: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, {
          type: tagName
        }));
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
      type: "primaryShift",
      character: "m",
      onUse: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value));
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
      group: "block"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
      icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_bullets_rtl : format_list_bullets,
      title: (0,external_wp_i18n_namespaceObject.__)('Unordered'),
      describedBy: (0,external_wp_i18n_namespaceObject.__)('Convert to unordered list'),
      isActive: (0,external_wp_richText_namespaceObject.__unstableIsActiveListType)(value, 'ul', tagName),
      onClick: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableChangeListType)(value, {
          type: 'ul'
        }));
        onFocus();

        if ((0,external_wp_richText_namespaceObject.__unstableIsListRootSelected)(value)) {
          setAttributes({
            ordered: false
          });
        }
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
      icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_numbered_rtl : format_list_numbered,
      title: (0,external_wp_i18n_namespaceObject.__)('Ordered'),
      describedBy: (0,external_wp_i18n_namespaceObject.__)('Convert to ordered list'),
      isActive: (0,external_wp_richText_namespaceObject.__unstableIsActiveListType)(value, 'ol', tagName),
      onClick: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableChangeListType)(value, {
          type: 'ol'
        }));
        onFocus();

        if ((0,external_wp_richText_namespaceObject.__unstableIsListRootSelected)(value)) {
          setAttributes({
            ordered: true
          });
        }
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
      icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
      title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
      describedBy: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
      shortcut: (0,external_wp_i18n_namespaceObject._x)('Backspace', 'keyboard key'),
      isDisabled: !(0,external_wp_richText_namespaceObject.__unstableCanOutdentListItems)(value),
      onClick: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value));
        onFocus();
      }
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
      icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_indent_rtl : format_indent,
      title: (0,external_wp_i18n_namespaceObject.__)('Indent'),
      describedBy: (0,external_wp_i18n_namespaceObject.__)('Indent list item'),
      shortcut: (0,external_wp_i18n_namespaceObject._x)('Space', 'keyboard key'),
      isDisabled: !(0,external_wp_richText_namespaceObject.__unstableCanIndentListItems)(value),
      onClick: () => {
        onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, {
          type: tagName
        }));
        onFocus();
      }
    })));
  };

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    style
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    identifier: "values",
    multiline: "li",
    tagName: tagName,
    onChange: nextValues => setAttributes({
      values: nextValues
    }),
    value: values,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('List text'),
    placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('List'),
    onMerge: mergeBlocks,
    onSplit: value => (0,external_wp_blocks_namespaceObject.createBlock)(list_name, { ...attributes,
      values: value
    }),
    __unstableOnSplitMiddle: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'),
    onReplace: onReplace,
    onRemove: () => onReplace([]),
    start: start,
    reversed: reversed,
    type: type
  }, blockProps), controls), ordered && (0,external_wp_element_namespaceObject.createElement)(ordered_list_settings, {
    setAttributes: setAttributes,
    ordered: ordered,
    reversed: reversed,
    start: start,
    placeholder: placeholder
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/save.js


/**
 * WordPress dependencies
 */

function list_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    ordered,
    values,
    type,
    reversed,
    start
  } = attributes;
  const TagName = ordered ? 'ol' : 'ul';
  return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
    type,
    reversed,
    start
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: values,
    multiline: "li"
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/transforms.js
/**
 * WordPress dependencies
 */



function getListContentSchema(_ref) {
  let {
    phrasingContentSchema
  } = _ref;
  const listContentSchema = { ...phrasingContentSchema,
    ul: {},
    ol: {
      attributes: ['type', 'start', 'reversed']
    }
  }; // Recursion is needed.
  // Possible: ul > li > ul.
  // Impossible: ul > ul.

  ['ul', 'ol'].forEach(tag => {
    listContentSchema[tag].children = {
      li: {
        children: listContentSchema
      }
    };
  });
  return listContentSchema;
}

const list_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/paragraph', 'core/heading'],
    transform: blockAttributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
        values: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: (0,external_wp_richText_namespaceObject.join)(blockAttributes.map(_ref2 => {
            let {
              content
            } = _ref2;
            const value = (0,external_wp_richText_namespaceObject.create)({
              html: content
            });

            if (blockAttributes.length > 1) {
              return value;
            } // When converting only one block, transform
            // every line to a list item.


            return (0,external_wp_richText_namespaceObject.replace)(value, /\n/g, external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR);
          }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR),
          multilineTag: 'li'
        }),
        anchor: blockAttributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/quote', 'core/pullquote'],
    transform: _ref3 => {
      let {
        value,
        anchor
      } = _ref3;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
        values: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: (0,external_wp_richText_namespaceObject.create)({
            html: value,
            multilineTag: 'p'
          }),
          multilineTag: 'li'
        }),
        anchor
      });
    }
  }, {
    type: 'raw',
    selector: 'ol,ul',
    schema: args => ({
      ol: getListContentSchema(args).ol,
      ul: getListContentSchema(args).ul
    }),

    transform(node) {
      const attributes = {
        ordered: node.nodeName === 'OL',
        anchor: node.id === '' ? undefined : node.id
      };

      if (attributes.ordered) {
        const type = node.getAttribute('type');

        if (type) {
          attributes.type = type;
        }

        if (node.getAttribute('reversed') !== null) {
          attributes.reversed = true;
        }

        const start = parseInt(node.getAttribute('start'), 10);

        if (!isNaN(start) && ( // start=1 only makes sense if the list is reversed.
        start !== 1 || attributes.reversed)) {
          attributes.start = start;
        }
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { ...(0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/list', node.outerHTML),
        ...attributes
      });
    }

  }, ...['*', '-'].map(prefix => ({
    type: 'prefix',
    prefix,

    transform(content) {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
        values: `<li>${content}</li>`
      });
    }

  })), ...['1.', '1)'].map(prefix => ({
    type: 'prefix',
    prefix,

    transform(content) {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
        ordered: true,
        values: `<li>${content}</li>`
      });
    }

  }))],
  to: [{
    type: 'block',
    blocks: ['core/paragraph'],
    transform: _ref4 => {
      let {
        values
      } = _ref4;
      return (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
        html: values,
        multilineTag: 'li',
        multilineWrapperTags: ['ul', 'ol']
      }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR).map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
        content: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: piece
        })
      }));
    }
  }, {
    type: 'block',
    blocks: ['core/heading'],
    transform: _ref5 => {
      let {
        values
      } = _ref5;
      return (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
        html: values,
        multilineTag: 'li',
        multilineWrapperTags: ['ul', 'ol']
      }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR).map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
        content: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: piece
        })
      }));
    }
  }, {
    type: 'block',
    blocks: ['core/quote'],
    transform: _ref6 => {
      let {
        values,
        anchor
      } = _ref6;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
        value: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: (0,external_wp_richText_namespaceObject.create)({
            html: values,
            multilineTag: 'li',
            multilineWrapperTags: ['ul', 'ol']
          }),
          multilineTag: 'p'
        }),
        anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/pullquote'],
    transform: _ref7 => {
      let {
        values,
        anchor
      } = _ref7;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
        value: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: (0,external_wp_richText_namespaceObject.create)({
            html: values,
            multilineTag: 'li',
            multilineWrapperTags: ['ul', 'ol']
          }),
          multilineTag: 'p'
        }),
        anchor
      });
    }
  }]
};
/* harmony default export */ var list_transforms = (list_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const list_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/list",
  title: "List",
  category: "text",
  description: "Create a bulleted or numbered list.",
  keywords: ["bullet list", "ordered list", "numbered list"],
  textdomain: "default",
  attributes: {
    ordered: {
      type: "boolean",
      "default": false,
      __experimentalRole: "content"
    },
    values: {
      type: "string",
      source: "html",
      selector: "ol,ul",
      multiline: "li",
      __unstableMultilineWrapperTags: ["ol", "ul"],
      "default": "",
      __experimentalRole: "content"
    },
    type: {
      type: "string"
    },
    start: {
      type: "number"
    },
    reversed: {
      type: "boolean"
    },
    placeholder: {
      type: "string"
    }
  },
  supports: {
    anchor: true,
    className: false,
    typography: {
      fontSize: true,
      __experimentalFontFamily: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    __unstablePasteTextInline: true,
    __experimentalSelector: "ol,ul",
    __experimentalSlashInserter: true
  },
  editorStyle: "wp-block-list-editor",
  style: "wp-block-list"
};



const {
  name: list_name
} = list_metadata;

const settingsV1 = {
  icon: library_list,
  example: {
    attributes: {
      values: '<li>Alice.</li><li>The White Rabbit.</li><li>The Cheshire Cat.</li><li>The Mad Hatter.</li><li>The Queen of Hearts.</li>'
    }
  },
  transforms: list_transforms,

  merge(attributes, attributesToMerge) {
    const {
      values
    } = attributesToMerge;

    if (!values || values === '<li></li>') {
      return attributes;
    }

    return { ...attributes,
      values: attributes.values + values
    };
  },

  edit: ListEdit,
  save: list_save_save,
  deprecated: list_deprecated
};
let list_settings = settingsV1;

if (false) { var _window; }



;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/login.js


/**
 * WordPress dependencies
 */

const login = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z"
}));
/* harmony default export */ var library_login = (login);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/edit.js


/**
 * WordPress dependencies
 */



function LoginOutEdit(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    displayLoginAsForm,
    redirectToCurrent
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Login/out settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
    checked: displayLoginAsForm,
    onChange: () => setAttributes({
      displayLoginAsForm: !displayLoginAsForm
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
    checked: redirectToCurrent,
    onChange: () => setAttributes({
      redirectToCurrent: !redirectToCurrent
    })
  }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: 'logged-in'
  }), (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#login-pseudo-link"
  }, (0,external_wp_i18n_namespaceObject.__)('Log out'))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const loginout_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/loginout",
  title: "Login/out",
  category: "theme",
  description: "Show login & logout links.",
  keywords: ["login", "logout", "form"],
  textdomain: "default",
  attributes: {
    displayLoginAsForm: {
      type: "boolean",
      "default": false
    },
    redirectToCurrent: {
      type: "boolean",
      "default": true
    }
  },
  supports: {
    className: true,
    typography: {
      fontSize: false
    }
  }
};
const {
  name: loginout_name
} = loginout_metadata;

const loginout_settings = {
  icon: library_login,
  edit: LoginOutEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media-and-text.js


/**
 * WordPress dependencies
 */

const mediaAndText = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M3 18h8V6H3v12zM14 7.5V9h7V7.5h-7zm0 5.3h7v-1.5h-7v1.5zm0 3.7h7V15h-7v1.5z"
}));
/* harmony default export */ var media_and_text = (mediaAndText);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container-icon.js


/**
 * WordPress dependencies
 */

/* harmony default export */ var media_container_icon = ((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M18 2l2 4h-2l-2-4h-3l2 4h-2l-2-4h-1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V2zm2 12H10V4.4L11.8 8H20z"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M14 20H4V10h3V8H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3h-2z"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M5 19h8l-1.59-2H9.24l-.84 1.1L7 16.3 5 19z"
})));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js



/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


/**
 * Constants
 */

const media_container_ALLOWED_MEDIA_TYPES = ['image', 'video'];
function imageFillStyles(url, focalPoint) {
  return url ? {
    backgroundImage: `url(${url})`,
    backgroundPosition: focalPoint ? `${focalPoint.x * 100}% ${focalPoint.y * 100}%` : `50% 50%`
  } : {};
}
const ResizableBoxContainer = (0,external_wp_element_namespaceObject.forwardRef)((_ref, ref) => {
  let {
    isSelected,
    isStackedOnMobile,
    ...props
  } = _ref;
  const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({
    ref: ref,
    showHandle: isSelected && (!isMobile || !isStackedOnMobile)
  }, props));
});

function ToolbarEditButton(_ref2) {
  let {
    mediaId,
    mediaUrl,
    onSelectMedia
  } = _ref2;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: mediaId,
    mediaURL: mediaUrl,
    allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
    accept: "image/*,video/*",
    onSelect: onSelectMedia
  }));
}

function PlaceholderContainer(_ref3) {
  let {
    className,
    noticeOperations,
    noticeUI,
    mediaUrl,
    onSelectMedia
  } = _ref3;

  const onUploadError = message => {
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: media_container_icon
    }),
    labels: {
      title: (0,external_wp_i18n_namespaceObject.__)('Media area')
    },
    className: className,
    onSelect: onSelectMedia,
    accept: "image/*,video/*",
    allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
    notices: noticeUI,
    onError: onUploadError,
    disableMediaButtons: mediaUrl
  });
}

function MediaContainer(props, ref) {
  const {
    className,
    commitWidthChange,
    focalPoint,
    imageFill,
    isSelected,
    isStackedOnMobile,
    mediaAlt,
    mediaId,
    mediaPosition,
    mediaType,
    mediaUrl,
    mediaWidth,
    onSelectMedia,
    onWidthChange
  } = props;
  const isTemporaryMedia = !mediaId && (0,external_wp_blob_namespaceObject.isBlobURL)(mediaUrl);
  const {
    toggleSelection
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);

  if (mediaUrl) {
    const onResizeStart = () => {
      toggleSelection(false);
    };

    const onResize = (event, direction, elt) => {
      onWidthChange(parseInt(elt.style.width));
    };

    const onResizeStop = (event, direction, elt) => {
      toggleSelection(true);
      commitWidthChange(parseInt(elt.style.width));
    };

    const enablePositions = {
      right: mediaPosition === 'left',
      left: mediaPosition === 'right'
    };
    const backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
    const mediaTypeRenderers = {
      image: () => (0,external_wp_element_namespaceObject.createElement)("img", {
        src: mediaUrl,
        alt: mediaAlt
      }),
      video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
        controls: true,
        src: mediaUrl
      })
    };
    return (0,external_wp_element_namespaceObject.createElement)(ResizableBoxContainer, {
      as: "figure",
      className: classnames_default()(className, 'editor-media-container__resizer', {
        'is-transient': isTemporaryMedia
      }),
      style: backgroundStyles,
      size: {
        width: mediaWidth + '%'
      },
      minWidth: "10%",
      maxWidth: "100%",
      enable: enablePositions,
      onResizeStart: onResizeStart,
      onResize: onResize,
      onResizeStop: onResizeStop,
      axis: "x",
      isSelected: isSelected,
      isStackedOnMobile: isStackedOnMobile,
      ref: ref
    }, (0,external_wp_element_namespaceObject.createElement)(ToolbarEditButton, {
      onSelectMedia: onSelectMedia,
      mediaUrl: mediaUrl,
      mediaId: mediaId
    }), (mediaTypeRenderers[mediaType] || external_lodash_namespaceObject.noop)(), isTemporaryMedia && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(PlaceholderContainer, props));
  }

  return (0,external_wp_element_namespaceObject.createElement)(PlaceholderContainer, props);
}

/* harmony default export */ var media_container = ((0,external_wp_components_namespaceObject.withNotices)((0,external_wp_element_namespaceObject.forwardRef)(MediaContainer)));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const DEFAULT_MEDIA_WIDTH = 50;

const media_text_deprecated_migrateCustomColors = attributes => {
  if (!attributes.customBackgroundColor) {
    return attributes;
  }

  const style = {
    color: {
      background: attributes.customBackgroundColor
    }
  };
  return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customBackgroundColor']),
    style
  };
};

const baseAttributes = {
  align: {
    type: 'string',
    default: 'wide'
  },
  backgroundColor: {
    type: 'string'
  },
  mediaAlt: {
    type: 'string',
    source: 'attribute',
    selector: 'figure img',
    attribute: 'alt',
    default: ''
  },
  mediaPosition: {
    type: 'string',
    default: 'left'
  },
  mediaId: {
    type: 'number'
  },
  mediaType: {
    type: 'string'
  },
  mediaWidth: {
    type: 'number',
    default: 50
  },
  isStackedOnMobile: {
    type: 'boolean',
    default: true
  }
};
/* harmony default export */ var media_text_deprecated = ([{
  attributes: { ...baseAttributes,
    customBackgroundColor: {
      type: 'string'
    },
    mediaLink: {
      type: 'string'
    },
    linkDestination: {
      type: 'string'
    },
    linkTarget: {
      type: 'string',
      source: 'attribute',
      selector: 'figure a',
      attribute: 'target'
    },
    href: {
      type: 'string',
      source: 'attribute',
      selector: 'figure a',
      attribute: 'href'
    },
    rel: {
      type: 'string',
      source: 'attribute',
      selector: 'figure a',
      attribute: 'rel'
    },
    linkClass: {
      type: 'string',
      source: 'attribute',
      selector: 'figure a',
      attribute: 'class'
    },
    verticalAlignment: {
      type: 'string'
    },
    imageFill: {
      type: 'boolean'
    },
    focalPoint: {
      type: 'object'
    }
  },
  migrate: media_text_deprecated_migrateCustomColors,

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      backgroundColor,
      customBackgroundColor,
      isStackedOnMobile,
      mediaAlt,
      mediaPosition,
      mediaType,
      mediaUrl,
      mediaWidth,
      mediaId,
      verticalAlignment,
      imageFill,
      focalPoint,
      linkClass,
      href,
      linkTarget,
      rel
    } = attributes;
    const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
    let image = (0,external_wp_element_namespaceObject.createElement)("img", {
      src: mediaUrl,
      alt: mediaAlt,
      className: mediaId && mediaType === 'image' ? `wp-image-${mediaId}` : null
    });

    if (href) {
      image = (0,external_wp_element_namespaceObject.createElement)("a", {
        className: linkClass,
        href: href,
        target: linkTarget,
        rel: newRel
      }, image);
    }

    const mediaTypeRenders = {
      image: () => image,
      video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
        controls: true,
        src: mediaUrl
      })
    };
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const className = classnames_default()({
      'has-media-on-the-right': 'right' === mediaPosition,
      'has-background': backgroundClass || customBackgroundColor,
      [backgroundClass]: backgroundClass,
      'is-stacked-on-mobile': isStackedOnMobile,
      [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment,
      'is-image-fill': imageFill
    });
    const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
    let gridTemplateColumns;

    if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
      gridTemplateColumns = 'right' === mediaPosition ? `auto ${mediaWidth}%` : `${mediaWidth}% auto`;
    }

    const style = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      gridTemplateColumns
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className,
      style: style
    }, (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: "wp-block-media-text__media",
      style: backgroundStyles
    }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-media-text__content"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  }

}, {
  attributes: { ...baseAttributes,
    customBackgroundColor: {
      type: 'string'
    },
    mediaUrl: {
      type: 'string',
      source: 'attribute',
      selector: 'figure video,figure img',
      attribute: 'src'
    },
    verticalAlignment: {
      type: 'string'
    },
    imageFill: {
      type: 'boolean'
    },
    focalPoint: {
      type: 'object'
    }
  },
  migrate: media_text_deprecated_migrateCustomColors,

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      backgroundColor,
      customBackgroundColor,
      isStackedOnMobile,
      mediaAlt,
      mediaPosition,
      mediaType,
      mediaUrl,
      mediaWidth,
      mediaId,
      verticalAlignment,
      imageFill,
      focalPoint
    } = attributes;
    const mediaTypeRenders = {
      image: () => (0,external_wp_element_namespaceObject.createElement)("img", {
        src: mediaUrl,
        alt: mediaAlt,
        className: mediaId && mediaType === 'image' ? `wp-image-${mediaId}` : null
      }),
      video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
        controls: true,
        src: mediaUrl
      })
    };
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const className = classnames_default()({
      'has-media-on-the-right': 'right' === mediaPosition,
      [backgroundClass]: backgroundClass,
      'is-stacked-on-mobile': isStackedOnMobile,
      [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment,
      'is-image-fill': imageFill
    });
    const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
    let gridTemplateColumns;

    if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
      gridTemplateColumns = 'right' === mediaPosition ? `auto ${mediaWidth}%` : `${mediaWidth}% auto`;
    }

    const style = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      gridTemplateColumns
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className,
      style: style
    }, (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: "wp-block-media-text__media",
      style: backgroundStyles
    }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-media-text__content"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  }

}, {
  attributes: { ...baseAttributes,
    customBackgroundColor: {
      type: 'string'
    },
    mediaUrl: {
      type: 'string',
      source: 'attribute',
      selector: 'figure video,figure img',
      attribute: 'src'
    }
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      backgroundColor,
      customBackgroundColor,
      isStackedOnMobile,
      mediaAlt,
      mediaPosition,
      mediaType,
      mediaUrl,
      mediaWidth
    } = attributes;
    const mediaTypeRenders = {
      image: () => (0,external_wp_element_namespaceObject.createElement)("img", {
        src: mediaUrl,
        alt: mediaAlt
      }),
      video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
        controls: true,
        src: mediaUrl
      })
    };
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const className = classnames_default()({
      'has-media-on-the-right': 'right' === mediaPosition,
      [backgroundClass]: backgroundClass,
      'is-stacked-on-mobile': isStackedOnMobile
    });
    let gridTemplateColumns;

    if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
      gridTemplateColumns = 'right' === mediaPosition ? `auto ${mediaWidth}%` : `${mediaWidth}% auto`;
    }

    const style = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      gridTemplateColumns
    };
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: className,
      style: style
    }, (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: "wp-block-media-text__media"
    }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-media-text__content"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
  }

}]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-left.js


/**
 * WordPress dependencies
 */

const pullLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z"
}));
/* harmony default export */ var pull_left = (pullLeft);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-right.js


/**
 * WordPress dependencies
 */

const pullRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z"
}));
/* harmony default export */ var pull_right = (pullRight);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/constants.js
const DEFAULT_MEDIA_SIZE_SLUG = 'full';

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */



/**
 * Constants
 */

const media_text_edit_TEMPLATE = [['core/paragraph', {
  fontSize: 'large',
  placeholder: (0,external_wp_i18n_namespaceObject._x)('Content…', 'content placeholder')
}]]; // this limits the resize to a safe zone to avoid making broken layouts

const WIDTH_CONSTRAINT_PERCENTAGE = 15;

const applyWidthConstraints = width => Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE));

const edit_LINK_DESTINATION_MEDIA = 'media';
const edit_LINK_DESTINATION_ATTACHMENT = 'attachment';

function getImageSourceUrlBySizeSlug(image, slug) {
  var _image$media_details, _image$media_details$, _image$media_details$2;

  // eslint-disable-next-line camelcase
  return image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[slug]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url;
}

function edit_attributesFromMedia(_ref) {
  let {
    attributes: {
      linkDestination,
      href
    },
    setAttributes
  } = _ref;
  return media => {
    if (!media || !media.url) {
      setAttributes({
        mediaAlt: undefined,
        mediaId: undefined,
        mediaType: undefined,
        mediaUrl: undefined,
        mediaLink: undefined,
        href: undefined,
        focalPoint: undefined
      });
      return;
    }

    if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
      media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
    }

    let mediaType;
    let src; // For media selections originated from a file upload.

    if (media.media_type) {
      if (media.media_type === 'image') {
        mediaType = 'image';
      } else {
        // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
        // video contain the media type of 'file' in the object returned from the rest api.
        mediaType = 'video';
      }
    } else {
      // For media selections originated from existing files in the media library.
      mediaType = media.type;
    }

    if (mediaType === 'image') {
      var _media$sizes, _media$sizes$large, _media$media_details, _media$media_details$, _media$media_details$2;

      // Try the "large" size URL, falling back to the "full" size URL below.
      src = ((_media$sizes = media.sizes) === null || _media$sizes === void 0 ? void 0 : (_media$sizes$large = _media$sizes.large) === null || _media$sizes$large === void 0 ? void 0 : _media$sizes$large.url) || ( // eslint-disable-next-line camelcase
      (_media$media_details = media.media_details) === null || _media$media_details === void 0 ? void 0 : (_media$media_details$ = _media$media_details.sizes) === null || _media$media_details$ === void 0 ? void 0 : (_media$media_details$2 = _media$media_details$.large) === null || _media$media_details$2 === void 0 ? void 0 : _media$media_details$2.source_url);
    }

    let newHref = href;

    if (linkDestination === edit_LINK_DESTINATION_MEDIA) {
      // Update the media link.
      newHref = media.url;
    } // Check if the image is linked to the attachment page.


    if (linkDestination === edit_LINK_DESTINATION_ATTACHMENT) {
      // Update the media link.
      newHref = media.link;
    }

    setAttributes({
      mediaAlt: media.alt,
      mediaId: media.id,
      mediaType,
      mediaUrl: src || media.url,
      mediaLink: media.link || undefined,
      href: newHref,
      focalPoint: undefined
    });
  };
}

function MediaTextEdit(_ref2) {
  let {
    attributes,
    isSelected,
    setAttributes
  } = _ref2;
  const {
    focalPoint,
    href,
    imageFill,
    isStackedOnMobile,
    linkClass,
    linkDestination,
    linkTarget,
    mediaAlt,
    mediaId,
    mediaPosition,
    mediaType,
    mediaUrl,
    mediaWidth,
    rel,
    verticalAlignment
  } = attributes;
  const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
  const image = (0,external_wp_data_namespaceObject.useSelect)(select => mediaId && isSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(mediaId, {
    context: 'view'
  }) : null, [isSelected, mediaId]);
  const refMediaContainer = (0,external_wp_element_namespaceObject.useRef)();

  const imperativeFocalPointPreview = value => {
    const {
      style
    } = refMediaContainer.current.resizable;
    const {
      x,
      y
    } = value;
    style.backgroundPosition = `${x * 100}% ${y * 100}%`;
  };

  const [temporaryMediaWidth, setTemporaryMediaWidth] = (0,external_wp_element_namespaceObject.useState)(null);
  const onSelectMedia = edit_attributesFromMedia({
    attributes,
    setAttributes
  });

  const onSetHref = props => {
    setAttributes(props);
  };

  const onWidthChange = width => {
    setTemporaryMediaWidth(applyWidthConstraints(width));
  };

  const commitWidthChange = width => {
    setAttributes({
      mediaWidth: applyWidthConstraints(width)
    });
    setTemporaryMediaWidth(applyWidthConstraints(width));
  };

  const classNames = classnames_default()({
    'has-media-on-the-right': 'right' === mediaPosition,
    'is-selected': isSelected,
    'is-stacked-on-mobile': isStackedOnMobile,
    [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment,
    'is-image-fill': imageFill
  });
  const widthString = `${temporaryMediaWidth || mediaWidth}%`;
  const gridTemplateColumns = 'right' === mediaPosition ? `1fr ${widthString}` : `${widthString} 1fr`;
  const style = {
    gridTemplateColumns,
    msGridColumns: gridTemplateColumns
  };

  const onMediaAltChange = newMediaAlt => {
    setAttributes({
      mediaAlt: newMediaAlt
    });
  };

  const onVerticalAlignmentChange = alignment => {
    setAttributes({
      verticalAlignment: alignment
    });
  };

  const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
    return settings === null || settings === void 0 ? void 0 : settings.imageSizes;
  }, []);
  const imageSizeOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref3 => {
    let {
      slug
    } = _ref3;
    return getImageSourceUrlBySizeSlug(image, slug);
  }), _ref4 => {
    let {
      name,
      slug
    } = _ref4;
    return {
      value: slug,
      label: name
    };
  });

  const updateImage = newMediaSizeSlug => {
    const newUrl = getImageSourceUrlBySizeSlug(image, newMediaSizeSlug);

    if (!newUrl) {
      return null;
    }

    setAttributes({
      mediaUrl: newUrl,
      mediaSizeSlug: newMediaSizeSlug
    });
  };

  const mediaTextGeneralSettings = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Media & Text settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
    checked: isStackedOnMobile,
    onChange: () => setAttributes({
      isStackedOnMobile: !isStackedOnMobile
    })
  }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill entire column'),
    checked: imageFill,
    onChange: () => setAttributes({
      imageFill: !imageFill
    })
  }), imageFill && mediaUrl && mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FocalPointPicker, {
    label: (0,external_wp_i18n_namespaceObject.__)('Focal point picker'),
    url: mediaUrl,
    value: focalPoint,
    onChange: value => setAttributes({
      focalPoint: value
    }),
    onDragStart: imperativeFocalPointPreview,
    onDrag: imperativeFocalPointPreview
  }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'),
    value: mediaAlt,
    onChange: onMediaAltChange,
    help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
      href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
    }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.'))
  }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
    onChangeImage: updateImage,
    slug: mediaSizeSlug,
    imageSizeOptions: imageSizeOptions,
    isResizable: false
  }), mediaUrl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
    value: temporaryMediaWidth || mediaWidth,
    onChange: commitWidthChange,
    min: WIDTH_CONSTRAINT_PERCENTAGE,
    max: 100 - WIDTH_CONSTRAINT_PERCENTAGE
  }));
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classNames,
    style
  });
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
    className: 'wp-block-media-text__content'
  }, {
    template: media_text_edit_TEMPLATE
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, mediaTextGeneralSettings), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentControl, {
    onChange: onVerticalAlignmentChange,
    value: verticalAlignment
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    icon: pull_left,
    title: (0,external_wp_i18n_namespaceObject.__)('Show media on left'),
    isActive: mediaPosition === 'left',
    onClick: () => setAttributes({
      mediaPosition: 'left'
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    icon: pull_right,
    title: (0,external_wp_i18n_namespaceObject.__)('Show media on right'),
    isActive: mediaPosition === 'right',
    onClick: () => setAttributes({
      mediaPosition: 'right'
    })
  }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
    url: href || '',
    onChangeUrl: onSetHref,
    linkDestination: linkDestination,
    mediaType: mediaType,
    mediaUrl: image && image.source_url,
    mediaLink: image && image.link,
    linkTarget: linkTarget,
    linkClass: linkClass,
    rel: rel
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(media_container, {
    className: "wp-block-media-text__media",
    onSelectMedia: onSelectMedia,
    onWidthChange: onWidthChange,
    commitWidthChange: commitWidthChange,
    ref: refMediaContainer,
    focalPoint,
    imageFill,
    isSelected,
    isStackedOnMobile,
    mediaAlt,
    mediaId,
    mediaPosition,
    mediaType,
    mediaUrl,
    mediaWidth
  }), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
}

/* harmony default export */ var media_text_edit = (MediaTextEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/save.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const save_DEFAULT_MEDIA_WIDTH = 50;
function media_text_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    isStackedOnMobile,
    mediaAlt,
    mediaPosition,
    mediaType,
    mediaUrl,
    mediaWidth,
    mediaId,
    verticalAlignment,
    imageFill,
    focalPoint,
    linkClass,
    href,
    linkTarget,
    rel
  } = attributes;
  const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
  const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
  const imageClasses = classnames_default()({
    [`wp-image-${mediaId}`]: mediaId && mediaType === 'image',
    [`size-${mediaSizeSlug}`]: mediaId && mediaType === 'image'
  });
  let image = (0,external_wp_element_namespaceObject.createElement)("img", {
    src: mediaUrl,
    alt: mediaAlt,
    className: imageClasses || null
  });

  if (href) {
    image = (0,external_wp_element_namespaceObject.createElement)("a", {
      className: linkClass,
      href: href,
      target: linkTarget,
      rel: newRel
    }, image);
  }

  const mediaTypeRenders = {
    image: () => image,
    video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
      controls: true,
      src: mediaUrl
    })
  };
  const className = classnames_default()({
    'has-media-on-the-right': 'right' === mediaPosition,
    'is-stacked-on-mobile': isStackedOnMobile,
    [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment,
    'is-image-fill': imageFill
  });
  const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
  let gridTemplateColumns;

  if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) {
    gridTemplateColumns = 'right' === mediaPosition ? `auto ${mediaWidth}%` : `${mediaWidth}% auto`;
  }

  const style = {
    gridTemplateColumns
  };
  return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className,
    style
  }), (0,external_wp_element_namespaceObject.createElement)("figure", {
    className: "wp-block-media-text__media",
    style: backgroundStyles
  }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
    className: 'wp-block-media-text__content'
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js
/**
 * WordPress dependencies
 */

const media_text_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/image'],
    transform: _ref => {
      let {
        alt,
        url,
        id,
        anchor
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
        mediaAlt: alt,
        mediaId: id,
        mediaUrl: url,
        mediaType: 'image',
        anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/video'],
    transform: _ref2 => {
      let {
        src,
        id,
        anchor
      } = _ref2;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
        mediaId: id,
        mediaUrl: src,
        mediaType: 'video',
        anchor
      });
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/image'],
    isMatch: _ref3 => {
      let {
        mediaType,
        mediaUrl
      } = _ref3;
      return !mediaUrl || mediaType === 'image';
    },
    transform: _ref4 => {
      let {
        mediaAlt,
        mediaId,
        mediaUrl,
        anchor
      } = _ref4;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
        alt: mediaAlt,
        id: mediaId,
        url: mediaUrl,
        anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/video'],
    isMatch: _ref5 => {
      let {
        mediaType,
        mediaUrl
      } = _ref5;
      return !mediaUrl || mediaType === 'video';
    },
    transform: _ref6 => {
      let {
        mediaId,
        mediaUrl,
        anchor
      } = _ref6;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
        id: mediaId,
        src: mediaUrl,
        anchor
      });
    }
  }]
};
/* harmony default export */ var media_text_transforms = (media_text_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const media_text_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/media-text",
  title: "Media & Text",
  category: "media",
  description: "Set media and words side-by-side for a richer layout.",
  keywords: ["image", "video"],
  textdomain: "default",
  attributes: {
    align: {
      type: "string",
      "default": "wide"
    },
    mediaAlt: {
      type: "string",
      source: "attribute",
      selector: "figure img",
      attribute: "alt",
      "default": ""
    },
    mediaPosition: {
      type: "string",
      "default": "left"
    },
    mediaId: {
      type: "number"
    },
    mediaUrl: {
      type: "string",
      source: "attribute",
      selector: "figure video,figure img",
      attribute: "src"
    },
    mediaLink: {
      type: "string"
    },
    linkDestination: {
      type: "string"
    },
    linkTarget: {
      type: "string",
      source: "attribute",
      selector: "figure a",
      attribute: "target"
    },
    href: {
      type: "string",
      source: "attribute",
      selector: "figure a",
      attribute: "href"
    },
    rel: {
      type: "string",
      source: "attribute",
      selector: "figure a",
      attribute: "rel"
    },
    linkClass: {
      type: "string",
      source: "attribute",
      selector: "figure a",
      attribute: "class"
    },
    mediaType: {
      type: "string"
    },
    mediaWidth: {
      type: "number",
      "default": 50
    },
    mediaSizeSlug: {
      type: "string"
    },
    isStackedOnMobile: {
      type: "boolean",
      "default": true
    },
    verticalAlignment: {
      type: "string"
    },
    imageFill: {
      type: "boolean"
    },
    focalPoint: {
      type: "object"
    }
  },
  supports: {
    anchor: true,
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    }
  },
  editorStyle: "wp-block-media-text-editor",
  style: "wp-block-media-text"
};


const {
  name: media_text_name
} = media_text_metadata;

const media_text_settings = {
  icon: media_and_text,
  example: {
    viewportWidth: 601,
    // Columns collapse "@media (max-width: 600px)".
    attributes: {
      mediaType: 'image',
      mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg'
    },
    innerBlocks: [{
      name: 'core/paragraph',
      attributes: {
        content: (0,external_wp_i18n_namespaceObject.__)('The wren<br>Earns his living<br>Noiselessly.')
      }
    }, {
      name: 'core/paragraph',
      attributes: {
        content: (0,external_wp_i18n_namespaceObject.__)('— Kobayashi Issa (一茶)')
      }
    }]
  },
  transforms: media_text_transforms,
  edit: media_text_edit,
  save: media_text_save_save,
  deprecated: media_text_deprecated
};

;// CONCATENATED MODULE: external ["wp","dom"]
var external_wp_dom_namespaceObject = window["wp"]["dom"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/edit.js


/**
 * WordPress dependencies
 */








function MissingBlockWarning(_ref) {
  let {
    attributes,
    convertToHTML
  } = _ref;
  const {
    originalName,
    originalUndelimitedContent
  } = attributes;
  const hasContent = !!originalUndelimitedContent;
  const hasHTMLBlock = (0,external_wp_blocks_namespaceObject.getBlockType)('core/html');
  const actions = [];
  let messageHTML;

  if (hasContent && hasHTMLBlock) {
    messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: block name */
    (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the "%s" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.'), originalName);
    actions.push((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
      key: "convert",
      onClick: convertToHTML,
      variant: "primary"
    }, (0,external_wp_i18n_namespaceObject.__)('Keep as HTML')));
  } else {
    messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: block name */
    (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the "%s" block. You can leave this block intact or remove it entirely.'), originalName);
  }

  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: 'has-warning'
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, {
    actions: actions
  }, messageHTML), (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(originalUndelimitedContent)));
}

const MissingEdit = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, _ref2) => {
  let {
    clientId,
    attributes
  } = _ref2;
  const {
    replaceBlock
  } = dispatch(external_wp_blockEditor_namespaceObject.store);
  return {
    convertToHTML() {
      replaceBlock(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
        content: attributes.originalUndelimitedContent
      }));
    }

  };
})(MissingBlockWarning);
/* harmony default export */ var missing_edit = (MissingEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/save.js


/**
 * WordPress dependencies
 */

function missing_save_save(_ref) {
  let {
    attributes
  } = _ref;
  // Preserve the missing block's content.
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.originalContent);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const missing_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/missing",
  title: "Unsupported",
  category: "text",
  description: "Your site doesn\u2019t include support for this block.",
  textdomain: "default",
  attributes: {
    originalName: {
      type: "string"
    },
    originalUndelimitedContent: {
      type: "string"
    },
    originalContent: {
      type: "string",
      source: "html"
    }
  },
  supports: {
    className: false,
    customClassName: false,
    inserter: false,
    html: false,
    reusable: false
  }
};

const {
  name: missing_name
} = missing_metadata;

const missing_settings = {
  name: missing_name,

  __experimentalLabel(attributes, _ref) {
    let {
      context
    } = _ref;

    if (context === 'accessibility') {
      const {
        originalName
      } = attributes;
      const originalBlockType = originalName ? (0,external_wp_blocks_namespaceObject.getBlockType)(originalName) : undefined;

      if (originalBlockType) {
        return originalBlockType.settings.title || originalName;
      }

      return '';
    }
  },

  edit: missing_edit,
  save: missing_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more.js


/**
 * WordPress dependencies
 */

const more = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z"
}));
/* harmony default export */ var library_more = (more);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/edit.js


/**
 * WordPress dependencies
 */






const DEFAULT_TEXT = (0,external_wp_i18n_namespaceObject.__)('Read more');

function MoreEdit(_ref) {
  let {
    attributes: {
      customText,
      noTeaser
    },
    insertBlocksAfter,
    setAttributes
  } = _ref;

  const onChangeInput = event => {
    setAttributes({
      customText: event.target.value !== '' ? event.target.value : undefined
    });
  };

  const onKeyDown = _ref2 => {
    let {
      keyCode
    } = _ref2;

    if (keyCode === external_wp_keycodes_namespaceObject.ENTER) {
      insertBlocksAfter([(0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())]);
    }
  };

  const getHideExcerptHelp = checked => checked ? (0,external_wp_i18n_namespaceObject.__)('The excerpt is hidden.') : (0,external_wp_i18n_namespaceObject.__)('The excerpt is visible.');

  const toggleHideExcerpt = () => setAttributes({
    noTeaser: !noTeaser
  });

  const style = {
    width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em`
  };
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Hide the excerpt on the full content page'),
    checked: !!noTeaser,
    onChange: toggleHideExcerpt,
    help: getHideExcerptHelp
  }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-more"
  }, (0,external_wp_element_namespaceObject.createElement)("input", {
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Read more link text'),
    type: "text",
    value: customText,
    placeholder: DEFAULT_TEXT,
    onChange: onChangeInput,
    onKeyDown: onKeyDown,
    style: style
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function more_save_save(_ref) {
  let {
    attributes: {
      customText,
      noTeaser
    }
  } = _ref;
  const moreTag = customText ? `<!--more ${customText}-->` : '<!--more-->';
  const noTeaserTag = noTeaser ? '<!--noteaser-->' : '';
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_lodash_namespaceObject.compact)([moreTag, noTeaserTag]).join('\n'));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/transforms.js
/**
 * WordPress dependencies
 */

const more_transforms_transforms = {
  from: [{
    type: 'raw',
    schema: {
      'wp-block': {
        attributes: ['data-block']
      }
    },
    isMatch: node => node.dataset && node.dataset.block === 'core/more',

    transform(node) {
      const {
        customText,
        noTeaser
      } = node.dataset;
      const attrs = {}; // Don't copy unless defined and not an empty string.

      if (customText) {
        attrs.customText = customText;
      } // Special handling for boolean.


      if (noTeaser === '') {
        attrs.noTeaser = true;
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)('core/more', attrs);
    }

  }]
};
/* harmony default export */ var more_transforms = (more_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const more_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/more",
  title: "More",
  category: "design",
  description: "Content before this block will be shown in the excerpt on your archives page.",
  keywords: ["read more"],
  textdomain: "default",
  attributes: {
    customText: {
      type: "string"
    },
    noTeaser: {
      type: "boolean",
      "default": false
    }
  },
  supports: {
    customClassName: false,
    className: false,
    html: false,
    multiple: false
  },
  editorStyle: "wp-block-more-editor"
};


const {
  name: more_name
} = more_metadata;

const more_settings = {
  icon: library_more,
  example: {},

  __experimentalLabel(attributes, _ref) {
    let {
      context
    } = _ref;

    if (context === 'accessibility') {
      return attributes.customText;
    }
  },

  transforms: more_transforms,
  edit: MoreEdit,
  save: more_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/navigation.js


/**
 * WordPress dependencies
 */

const navigation = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z"
}));
/* harmony default export */ var library_navigation = (navigation);

;// CONCATENATED MODULE: external ["wp","a11y"]
var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js
/**
 * WordPress dependencies
 */


function useNavigationMenu(ref) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _navigationMenu;

    const {
      getEntityRecord,
      getEditedEntityRecord,
      getEntityRecords,
      hasFinishedResolution,
      isResolving,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const navigationMenuSingleArgs = ['postType', 'wp_navigation', ref];
    const rawNavigationMenu = ref ? getEntityRecord(...navigationMenuSingleArgs) : null;
    let navigationMenu = ref ? getEditedEntityRecord(...navigationMenuSingleArgs) : null; // getEditedEntityRecord will return the post regardless of status.
    // Therefore if the found post is not published then we should ignore it.

    if (((_navigationMenu = navigationMenu) === null || _navigationMenu === void 0 ? void 0 : _navigationMenu.status) !== 'publish') {
      navigationMenu = null;
    }

    const hasResolvedNavigationMenu = ref ? hasFinishedResolution('getEditedEntityRecord', navigationMenuSingleArgs) : false;
    const navigationMenuMultipleArgs = ['postType', 'wp_navigation', {
      per_page: -1,
      status: 'publish'
    }];
    const navigationMenus = getEntityRecords(...navigationMenuMultipleArgs);
    const canSwitchNavigationMenu = ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0;
    return {
      isNavigationMenuResolved: hasResolvedNavigationMenu,
      isNavigationMenuMissing: !ref || hasResolvedNavigationMenu && !rawNavigationMenu,
      canSwitchNavigationMenu,
      isResolvingNavigationMenus: isResolving('getEntityRecords', navigationMenuMultipleArgs),
      hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs),
      navigationMenu,
      navigationMenus,
      canUserUpdateNavigationMenu: ref ? canUser('update', 'navigation', ref) : undefined,
      hasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution('canUser', ['update', 'navigation', ref]),
      canUserDeleteNavigationMenu: ref ? canUser('delete', 'navigation', ref) : undefined,
      hasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution('canUser', ['delete', 'navigation', ref]),
      canUserCreateNavigationMenu: canUser('create', 'navigation'),
      isResolvingCanUserCreateNavigationMenu: isResolving('canUser', ['create', 'navigation']),
      hasResolvedCanUserCreateNavigationMenu: hasFinishedResolution('canUser', ['create', 'navigation'])
    };
  }, [ref]);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-entities.js
/**
 * WordPress dependencies
 */

/**
 * @typedef {Object} NavigationEntitiesData
 * @property {Array|undefined} pages                - a collection of WP Post entity objects of post type "Page".
 * @property {boolean}         isResolvingPages     - indicates whether the request to fetch pages is currently resolving.
 * @property {boolean}         hasResolvedPages     - indicates whether the request to fetch pages has finished resolving.
 * @property {Array|undefined} menus                - a collection of Menu entity objects.
 * @property {boolean}         isResolvingMenus     - indicates whether the request to fetch menus is currently resolving.
 * @property {boolean}         hasResolvedMenus     - indicates whether the request to fetch menus has finished resolving.
 * @property {Array|undefined} menusItems           - a collection of Menu Item entity objects for the current menuId.
 * @property {boolean}         hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.
 * @property {boolean}         hasPages             - indicates whether there is currently any data for pages.
 * @property {boolean}         hasMenus             - indicates whether there is currently any data for menus.
 */

/**
 * Manages fetching and resolution state for all entities required
 * for the Navigation block.
 *
 * @param {number} menuId the menu for which to retrieve menuItem data.
 * @return { NavigationEntitiesData } the entity data.
 */

function useNavigationEntities(menuId) {
  const {
    records: menus,
    isResolving: isResolvingMenus,
    hasResolved: hasResolvedMenus
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('root', 'menu', {
    per_page: -1,
    context: 'view'
  });
  const {
    records: pages,
    isResolving: isResolvingPages,
    hasResolved: hasResolvedPages
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', {
    parent: 0,
    order: 'asc',
    orderby: 'id',
    per_page: -1,
    context: 'view'
  });
  const {
    records: menuItems,
    hasResolved: hasResolvedMenuItems
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('root', 'menuItem', {
    menus: menuId,
    per_page: -1,
    context: 'view'
  }, {
    enabled: !!menuId
  });
  return {
    pages,
    isResolvingPages,
    hasResolvedPages,
    hasPages: !!(hasResolvedPages && pages !== null && pages !== void 0 && pages.length),
    menus,
    isResolvingMenus,
    hasResolvedMenus,
    hasMenus: !!(hasResolvedMenus && menus !== null && menus !== void 0 && menus.length),
    menuItems,
    hasResolvedMenuItems
  };
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
/**
 * WordPress dependencies
 */

/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */

/**
 * Return an SVG icon.
 *
 * @param {IconProps} props icon is the SVG component to render
 *                          size is a number specifiying the icon size in pixels
 *                          Other props will be passed to wrapped SVG component
 *
 * @return {JSX.Element}  Icon component
 */

function Icon(_ref) {
  let {
    icon,
    size = 24,
    ...props
  } = _ref;
  return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
    width: size,
    height: size,
    ...props
  });
}

/* harmony default export */ var icon = (Icon);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/placeholder-preview.js


/**
 * WordPress dependencies
 */



const PlaceholderPreview = _ref => {
  let {
    isVisible = true
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)("div", {
    "aria-hidden": !isVisible ? true : undefined,
    className: "wp-block-navigation-placeholder__preview"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation-placeholder__actions__indicator"
  }, (0,external_wp_element_namespaceObject.createElement)(icon, {
    icon: library_navigation
  }), (0,external_wp_i18n_namespaceObject.__)('Navigation')));
};

/* harmony default export */ var placeholder_preview = (PlaceholderPreview);

;// CONCATENATED MODULE: external ["wp","htmlEntities"]
var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-selector.js


/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




function NavigationMenuSelector(_ref, forwardedRef) {
  let {
    currentMenuId,
    onSelect,
    onCreateNew,
    showManageActions = false,
    actionLabel,
    toggleProps = {}
  } = _ref;

  /* translators: %s: The name of a menu. */
  const createActionLabel = (0,external_wp_i18n_namespaceObject.__)("Create from '%s'");

  actionLabel = actionLabel || createActionLabel;
  const {
    menus: classicMenus
  } = useNavigationEntities();
  const {
    navigationMenus,
    canUserCreateNavigationMenu,
    canUserUpdateNavigationMenu,
    canSwitchNavigationMenu
  } = useNavigationMenu();
  const handleSelect = (0,external_wp_element_namespaceObject.useCallback)(_onClose => selectedId => {
    _onClose();

    onSelect(navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.find(post => post.id === selectedId));
  }, [navigationMenus]);
  const handleSelectClassic = (0,external_wp_element_namespaceObject.useCallback)((_onClose, menu) => () => {
    _onClose();

    onSelect(menu);
  }, []);
  const menuChoices = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.map(_ref2 => {
      let {
        id,
        title
      } = _ref2;
      const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title.rendered);
      return {
        value: id,
        label,
        ariaLabel: (0,external_wp_i18n_namespaceObject.sprintf)(actionLabel, label)
      };
    })) || [];
  }, [navigationMenus]);
  const hasNavigationMenus = !!(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length);
  const hasClassicMenus = !!(classicMenus !== null && classicMenus !== void 0 && classicMenus.length);
  const showNavigationMenus = !!canSwitchNavigationMenu;
  const showClassicMenus = !!canUserCreateNavigationMenu;
  const hasManagePermissions = canUserCreateNavigationMenu || canUserUpdateNavigationMenu; // Show the selector if:
  // - has switch or create permissions and there are block or classic menus.
  // - user has create or update permisisons and component should show the menu actions.

  const showSelectMenus = (canSwitchNavigationMenu || canUserCreateNavigationMenu) && (hasNavigationMenus || hasClassicMenus) || hasManagePermissions && showManageActions;

  if (!showSelectMenus) {
    return null;
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    ref: forwardedRef,
    label: (0,external_wp_i18n_namespaceObject.__)('Select Menu'),
    text: (0,external_wp_i18n_namespaceObject.__)('Select Menu'),
    icon: null,
    toggleProps: toggleProps
  }, _ref3 => {
    let {
      onClose
    } = _ref3;
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, showNavigationMenus && hasNavigationMenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
      label: (0,external_wp_i18n_namespaceObject.__)('Menus')
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, {
      value: currentMenuId,
      onSelect: handleSelect(onClose),
      choices: menuChoices
    })), showClassicMenus && hasClassicMenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
      label: (0,external_wp_i18n_namespaceObject.__)('Classic Menus')
    }, classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.map(menu => {
      const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(menu.name);
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
        onClick: handleSelectClassic(onClose, menu),
        key: menu.id,
        "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(createActionLabel, label)
      }, label);
    })), showManageActions && hasManagePermissions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
      label: (0,external_wp_i18n_namespaceObject.__)('Tools')
    }, canUserCreateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
      onClick: onCreateNew
    }, (0,external_wp_i18n_namespaceObject.__)('Create new menu')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
      href: (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', {
        post_type: 'wp_navigation'
      })
    }, (0,external_wp_i18n_namespaceObject.__)('Manage menus'))));
  });
}

/* harmony default export */ var navigation_menu_selector = ((0,external_wp_element_namespaceObject.forwardRef)(NavigationMenuSelector));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/index.js


/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




function NavigationPlaceholder(_ref) {
  let {
    isSelected,
    currentMenuId,
    clientId,
    canUserCreateNavigationMenu = false,
    isResolvingCanUserCreateNavigationMenu,
    onFinish,
    onCreateEmpty
  } = _ref;
  const {
    isResolvingMenus,
    hasResolvedMenus
  } = useNavigationEntities();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      return;
    }

    if (isResolvingMenus) {
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Loading Navigation block setup options.'));
    }

    if (hasResolvedMenus) {
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Navigation block setup options ready.'));
    }
  }, [isResolvingMenus, isSelected]);
  const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenu;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    className: "wp-block-navigation-placeholder"
  }, (0,external_wp_element_namespaceObject.createElement)(placeholder_preview, {
    isVisible: !isSelected
  }), (0,external_wp_element_namespaceObject.createElement)("div", {
    "aria-hidden": !isSelected ? true : undefined,
    className: "wp-block-navigation-placeholder__controls"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation-placeholder__actions"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation-placeholder__actions__indicator"
  }, (0,external_wp_element_namespaceObject.createElement)(icon, {
    icon: library_navigation
  }), " ", (0,external_wp_i18n_namespaceObject.__)('Navigation')), (0,external_wp_element_namespaceObject.createElement)("hr", null), isResolvingActions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(navigation_menu_selector, {
    currentMenuId: currentMenuId,
    clientId: clientId,
    onSelect: onFinish,
    toggleProps: {
      variant: 'tertiary',
      iconPosition: 'right',
      className: 'wp-block-navigation-placeholder__actions__dropdown'
    }
  }), (0,external_wp_element_namespaceObject.createElement)("hr", null), canUserCreateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "tertiary",
    onClick: onCreateEmpty
  }, (0,external_wp_i18n_namespaceObject.__)('Start empty'))))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js


/**
 * WordPress dependencies
 */

const close_close = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
}));
/* harmony default export */ var library_close = (close_close);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-icon.js


/**
 * WordPress dependencies
 */

function OverlayMenuIcon() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 24 24",
    width: "24",
    height: "24",
    "aria-hidden": "true",
    focusable: "false"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, {
    x: "4",
    y: "7.5",
    width: "16",
    height: "1.5"
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, {
    x: "4",
    y: "15",
    width: "16",
    height: "1.5"
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/responsive-wrapper.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


function ResponsiveWrapper(_ref) {
  let {
    children,
    id,
    isOpen,
    isResponsive,
    onToggle,
    isHiddenByDefault,
    classNames,
    styles,
    hasIcon
  } = _ref;

  if (!isResponsive) {
    return children;
  }

  const responsiveContainerClasses = classnames_default()('wp-block-navigation__responsive-container', classNames, {
    'is-menu-open': isOpen,
    'hidden-by-default': isHiddenByDefault
  });
  const openButtonClasses = classnames_default()('wp-block-navigation__responsive-container-open', {
    'always-shown': isHiddenByDefault
  });
  const modalId = `${id}-modal`;
  const dialogProps = {
    className: 'wp-block-navigation__responsive-dialog',
    ...(isOpen && {
      role: 'dialog',
      'aria-modal': true,
      'aria-label': (0,external_wp_i18n_namespaceObject.__)('Menu')
    })
  };
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !isOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    "aria-haspopup": "true",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Open menu'),
    className: openButtonClasses,
    onClick: () => onToggle(true)
  }, hasIcon && (0,external_wp_element_namespaceObject.createElement)(OverlayMenuIcon, null), !hasIcon && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "wp-block-navigation__toggle_button_label"
  }, (0,external_wp_i18n_namespaceObject.__)('Menu'))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: responsiveContainerClasses,
    style: styles,
    id: modalId
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation__responsive-close",
    tabIndex: "-1"
  }, (0,external_wp_element_namespaceObject.createElement)("div", dialogProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    className: "wp-block-navigation__responsive-container-close",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close menu'),
    onClick: () => onToggle(false)
  }, (0,external_wp_element_namespaceObject.createElement)(icon, {
    icon: library_close
  })), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation__responsive-container-content",
    id: `${modalId}-content`
  }, children)))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/inner-blocks.js


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


const inner_blocks_ALLOWED_BLOCKS = ['core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/site-title', 'core/site-logo', 'core/navigation-submenu'];
const inner_blocks_DEFAULT_BLOCK = {
  name: 'core/navigation-link'
};
const LAYOUT = {
  type: 'default',
  alignments: []
};
function NavigationInnerBlocks(_ref) {
  let {
    clientId,
    hasCustomPlaceholder,
    orientation
  } = _ref;
  const {
    isImmediateParentOfSelectedBlock,
    selectedBlockHasChildren,
    isSelected
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockCount,
      hasSelectedInnerBlock,
      getSelectedBlockClientId
    } = select(external_wp_blockEditor_namespaceObject.store);
    const selectedBlockId = getSelectedBlockClientId();
    return {
      isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
      selectedBlockHasChildren: !!getBlockCount(selectedBlockId),
      // This prop is already available but computing it here ensures it's
      // fresh compared to isImmediateParentOfSelectedBlock.
      isSelected: selectedBlockId === clientId
    };
  }, [clientId]);
  const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_navigation');
  const shouldDirectInsert = (0,external_wp_element_namespaceObject.useMemo)(() => blocks.every(_ref2 => {
    let {
      name
    } = _ref2;
    return name === 'core/navigation-link' || name === 'core/navigation-submenu' || name === 'core/page-list';
  }), [blocks]); // When the block is selected itself or has a top level item selected that
  // doesn't itself have children, show the standard appender. Else show no
  // appender.

  const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren;
  const placeholder = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_element_namespaceObject.createElement)(placeholder_preview, null), []);
  const hasMenuItems = !!(blocks !== null && blocks !== void 0 && blocks.length); // If there is a `ref` attribute pointing to a `wp_navigation` but
  // that menu has no **items** (i.e. empty) then show a placeholder.
  // The block must also be selected else the placeholder will display
  // alongside the appender.

  const showPlaceholder = !hasCustomPlaceholder && !hasMenuItems && !isSelected;
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
    className: 'wp-block-navigation__container'
  }, {
    value: blocks,
    onInput,
    onChange,
    allowedBlocks: inner_blocks_ALLOWED_BLOCKS,
    __experimentalDefaultBlock: inner_blocks_DEFAULT_BLOCK,
    __experimentalDirectInsert: shouldDirectInsert,
    orientation,
    // As an exception to other blocks which feature nesting, show
    // the block appender even when a child block is selected.
    // This should be a temporary fix, to be replaced by improvements to
    // the sibling inserter.
    // See https://github.com/WordPress/gutenberg/issues/37572.
    renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender.
    parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
    // Template lock set to false here so that the Nav
    // Block on the experimental menus screen does not
    // inherit templateLock={ 'all' }.
    templateLock: false,
    __experimentalLayout: LAYOUT,
    placeholder: showPlaceholder ? placeholder : undefined
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, {
    clientId: clientId,
    tagName: 'div',
    wrapperProps: innerBlocksProps
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-name-control.js


/**
 * WordPress dependencies
 */



function NavigationMenuNameControl() {
  const [title, updateTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Menu name'),
    value: title,
    onChange: updateTitle
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/create-template-part-id.js
/**
 * Generates a template part Id based on slug and theme inputs.
 *
 * @param {string} theme the template part's theme.
 * @param {string} slug  the template part's slug
 * @return {string|null} the template part's Id.
 */
function createTemplatePartId(theme, slug) {
  return theme && slug ? theme + '//' + slug : null;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-template-part-area-label.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */
// TODO: this util should perhaps be refactored somewhere like core-data.


function useTemplatePartAreaLabel(clientId) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    // Use the lack of a clientId as an opportunity to bypass the rest
    // of this hook.
    if (!clientId) {
      return;
    }

    const {
      getBlock,
      getBlockParentsByBlockName
    } = select(external_wp_blockEditor_namespaceObject.store);
    const withAscendingResults = true;
    const parentTemplatePartClientIds = getBlockParentsByBlockName(clientId, 'core/template-part', withAscendingResults);

    if (!(parentTemplatePartClientIds !== null && parentTemplatePartClientIds !== void 0 && parentTemplatePartClientIds.length)) {
      return;
    } // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
    // Blocks can be loaded into a *non-post* block editor.
    // This code is lifted from this file:
    // packages/block-library/src/template-part/edit/advanced-controls.js
    // eslint-disable-next-line @wordpress/data-no-store-string-literals


    const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();

    const {
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);

    for (const templatePartClientId of parentTemplatePartClientIds) {
      const templatePartBlock = getBlock(templatePartClientId); // The 'area' usually isn't stored on the block, but instead
      // on the entity.

      const {
        theme,
        slug
      } = templatePartBlock.attributes;
      const templatePartEntityId = createTemplatePartId(theme, slug);
      const templatePartEntity = getEditedEntityRecord('postType', 'wp_template_part', templatePartEntityId); // Look up the `label` for the area in the defined areas so
      // that an internationalized label can be used.

      if (templatePartEntity !== null && templatePartEntity !== void 0 && templatePartEntity.area) {
        var _definedAreas$find;

        return (_definedAreas$find = definedAreas.find(definedArea => definedArea.area !== 'uncategorized' && definedArea.area === templatePartEntity.area)) === null || _definedAreas$find === void 0 ? void 0 : _definedAreas$find.label;
      }
    }
  }, [clientId]);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-generate-default-navigation-title.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
  status: 'draft',
  per_page: -1
}];
const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', {
  per_page: -1,
  status: 'publish'
}];
function useGenerateDefaultNavigationTitle(clientId) {
  // The block will be disabled in a block preview, use this as a way of
  // avoiding the side-effects of this component for block previews.
  const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context); // Because we can't conditionally call hooks, pass an undefined client id
  // arg to bypass the expensive `useTemplateArea` code. The hook will return
  // early.

  const area = useTemplatePartAreaLabel(isDisabled ? undefined : clientId);
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();
  return (0,external_wp_element_namespaceObject.useCallback)(async () => {
    // Ensure other navigation menus have loaded so an
    // accurate name can be created.
    if (isDisabled) {
      return '';
    }

    const {
      getEntityRecords
    } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
    const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]);
    const title = area ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
    (0,external_wp_i18n_namespaceObject.__)('%s navigation'), area) : // translators: 'navigation' as in website navigation.
    (0,external_wp_i18n_namespaceObject.__)('Navigation'); // Determine how many menus start with the automatic title.

    const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => {
      var _menu$title, _menu$title$raw;

      return menu !== null && menu !== void 0 && (_menu$title = menu.title) !== null && _menu$title !== void 0 && (_menu$title$raw = _menu$title.raw) !== null && _menu$title$raw !== void 0 && _menu$title$raw.startsWith(title) ? count + 1 : count;
    }, 0); // Append a number to the end of the title if a menu with
    // the same name exists.

    const titleWithCount = matchingMenuTitleCount > 0 ? `${title} ${matchingMenuTitleCount + 1}` : title;
    return titleWithCount || '';
  }, [isDisabled, area]);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-create-navigation-menu.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


const CREATE_NAVIGATION_MENU_SUCCESS = 'success';
const CREATE_NAVIGATION_MENU_ERROR = 'error';
const CREATE_NAVIGATION_MENU_PENDING = 'pending';
const CREATE_NAVIGATION_MENU_IDLE = 'idle';
function useCreateNavigationMenu(clientId) {
  const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CREATE_NAVIGATION_MENU_IDLE);
  const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
  const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const generateDefaultTitle = useGenerateDefaultNavigationTitle(clientId); // This callback uses data from the two placeholder steps and only creates
  // a new navigation menu when the user completes the final step.

  const create = (0,external_wp_element_namespaceObject.useCallback)(async function () {
    let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
    let blocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

    // Guard against creating Navigations without a title.
    // Note you can pass no title, but if one is passed it must be
    // a string otherwise the title may end up being empty.
    if (title && typeof title !== 'string') {
      setError('Invalid title supplied when creating Navigation Menu.');
      setStatus(CREATE_NAVIGATION_MENU_ERROR);
      throw new Error(`Value of supplied title argument was not a string.`);
    }

    setStatus(CREATE_NAVIGATION_MENU_PENDING);
    setValue(null);
    setError(null);

    if (!title) {
      title = await generateDefaultTitle().catch(err => {
        setError(err === null || err === void 0 ? void 0 : err.message);
        setStatus(CREATE_NAVIGATION_MENU_ERROR);
        throw new Error('Failed to create title when saving new Navigation Menu.', {
          cause: err
        });
      });
    }

    const record = {
      title,
      content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
      status: 'publish'
    }; // Return affords ability to await on this function directly

    return saveEntityRecord('postType', 'wp_navigation', record).then(response => {
      setValue(response);
      setStatus(CREATE_NAVIGATION_MENU_SUCCESS);
      return response;
    }).catch(err => {
      setError(err === null || err === void 0 ? void 0 : err.message);
      setStatus(CREATE_NAVIGATION_MENU_ERROR);
      throw new Error('Unable to save new Navigation Menu', {
        cause: err
      });
    });
  }, [external_wp_blocks_namespaceObject.serialize, saveEntityRecord]);
  return {
    create,
    status,
    value,
    error
  };
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/unsaved-inner-blocks.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



const EMPTY_OBJECT = {};
const unsaved_inner_blocks_DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
  status: 'draft',
  per_page: -1
}];
const unsaved_inner_blocks_DEFAULT_BLOCK = {
  name: 'core/navigation-link'
};
const unsaved_inner_blocks_ALLOWED_BLOCKS = ['core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/site-title', 'core/site-logo', 'core/navigation-submenu'];
function UnsavedInnerBlocks(_ref) {
  let {
    blockProps,
    blocks,
    clientId,
    hasSavedUnsavedInnerBlocks,
    onSave,
    hasSelection
  } = _ref;
  const originalBlocks = (0,external_wp_element_namespaceObject.useRef)();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Initially store the uncontrolled inner blocks for
    // dirty state comparison.
    if (!(originalBlocks !== null && originalBlocks !== void 0 && originalBlocks.current)) {
      originalBlocks.current = blocks;
    }
  }, [blocks]); // If the current inner blocks object is different in any way
  // from the original inner blocks from the post content then the
  // user has made changes to the inner blocks. At this point the inner
  // blocks can be considered "dirty".

  const innerBlocksAreDirty = blocks !== originalBlocks.current;
  const shouldDirectInsert = (0,external_wp_element_namespaceObject.useMemo)(() => blocks.every(_ref2 => {
    let {
      name
    } = _ref2;
    return name === 'core/navigation-link' || name === 'core/navigation-submenu' || name === 'core/page-list';
  }), [blocks]); // The block will be disabled in a block preview, use this as a way of
  // avoiding the side-effects of this component for block previews.

  const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
  const savingLock = (0,external_wp_element_namespaceObject.useRef)(false);
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    renderAppender: hasSelection ? undefined : false,
    allowedBlocks: unsaved_inner_blocks_ALLOWED_BLOCKS,
    __experimentalDefaultBlock: unsaved_inner_blocks_DEFAULT_BLOCK,
    __experimentalDirectInsert: shouldDirectInsert
  });
  const {
    isSaving,
    draftNavigationMenus,
    hasResolvedDraftNavigationMenus
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    if (isDisabled) {
      return EMPTY_OBJECT;
    }

    const {
      getEntityRecords,
      hasFinishedResolution,
      isSavingEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      isSaving: isSavingEntityRecord('postType', 'wp_navigation'),
      draftNavigationMenus: getEntityRecords(...unsaved_inner_blocks_DRAFT_MENU_PARAMS),
      hasResolvedDraftNavigationMenus: hasFinishedResolution('getEntityRecords', unsaved_inner_blocks_DRAFT_MENU_PARAMS)
    };
  }, [isDisabled]);
  const {
    hasResolvedNavigationMenus,
    navigationMenus
  } = useNavigationMenu();
  const {
    create: createNavigationMenu
  } = useCreateNavigationMenu(clientId); // Automatically save the uncontrolled blocks.

  (0,external_wp_element_namespaceObject.useEffect)(async () => {
    // The block will be disabled when used in a BlockPreview.
    // In this case avoid automatic creation of a wp_navigation post.
    // Otherwise the user will be spammed with lots of menus!
    //
    // Also ensure other navigation menus have loaded so an
    // accurate name can be created.
    //
    // Don't try saving when another save is already
    // in progress.
    //
    // And finally only create the menu when the block is selected,
    // which is an indication they want to start editing.
    if (isDisabled || hasSavedUnsavedInnerBlocks || isSaving || savingLock.current || !hasResolvedDraftNavigationMenus || !hasResolvedNavigationMenus || !hasSelection || !innerBlocksAreDirty) {
      return;
    }

    savingLock.current = true;
    const menu = await createNavigationMenu(null, blocks);
    onSave(menu);
    savingLock.current = false;
  }, [isDisabled, isSaving, hasResolvedDraftNavigationMenus, hasResolvedNavigationMenus, draftNavigationMenus, navigationMenus, hasSelection, createNavigationMenu, blocks]);
  const Wrapper = isSaving ? external_wp_components_namespaceObject.Disabled : 'div';
  return (0,external_wp_element_namespaceObject.createElement)(Wrapper, {
    className: "wp-block-navigation__unsaved-changes"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: classnames_default()('wp-block-navigation__unsaved-changes-overlay', {
      'is-saving': isSaving
    })
  }, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)), isSaving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-delete-control.js


/**
 * WordPress dependencies
 */





function NavigationMenuDeleteControl(_ref) {
  let {
    onDelete
  } = _ref;
  const [isConfirmModalVisible, setIsConfirmModalVisible] = (0,external_wp_element_namespaceObject.useState)(false);
  const id = (0,external_wp_coreData_namespaceObject.useEntityId)('postType', 'wp_navigation');
  const [title] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
  const {
    deleteEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    className: "wp-block-navigation-delete-menu-button",
    variant: "secondary",
    isDestructive: true,
    onClick: () => {
      setIsConfirmModalVisible(true);
    }
  }, (0,external_wp_i18n_namespaceObject.__)('Delete menu')), isConfirmModalVisible && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
    title: (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: the name of a menu to delete */
    (0,external_wp_i18n_namespaceObject.__)('Delete %s'), title),
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
    onRequestClose: () => setIsConfirmModalVisible(false)
  }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to delete this navigation menu?')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, {
    justify: "flex-end"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    onClick: () => {
      setIsConfirmModalVisible(false);
    }
  }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "primary",
    onClick: () => {
      deleteEntityRecord('postType', 'wp_navigation', id, {
        force: true
      });
      onDelete(title);
    }
  }, (0,external_wp_i18n_namespaceObject.__)('Confirm'))))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-navigation-notice.js
/**
 * WordPress dependencies
 */




function useNavigationNotice() {
  let {
    name,
    message = ''
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const noticeRef = (0,external_wp_element_namespaceObject.useRef)();
  const {
    createWarningNotice,
    removeNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);

  const showNotice = customMsg => {
    if (noticeRef.current) {
      return;
    }

    noticeRef.current = name;
    createWarningNotice(customMsg || message, {
      id: noticeRef.current,
      type: 'snackbar'
    });
  };

  const hideNotice = () => {
    if (!noticeRef.current) {
      return;
    }

    removeNotice(noticeRef.current);
    noticeRef.current = null;
  };

  return [showNotice, hideNotice];
}

/* harmony default export */ var use_navigation_notice = (useNavigationNotice);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/menu-items-to-blocks.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Convert a flat menu item structure to a nested blocks structure.
 *
 * @param {Object[]} menuItems An array of menu items.
 *
 * @return {WPBlock[]} An array of blocks.
 */

function menuItemsToBlocks(menuItems) {
  if (!menuItems) {
    return null;
  }

  const menuTree = createDataTree(menuItems);
  const blocks = mapMenuItemsToBlocks(menuTree);
  return (0,external_wp_hooks_namespaceObject.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems);
}
/**
 * A recursive function that maps menu item nodes to blocks.
 *
 * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.
 * @return {Object} Object containing innerBlocks and mapping.
 */

function mapMenuItemsToBlocks(menuItems) {
  let mapping = {}; // The menuItem should be in menu_order sort order.

  const sortedItems = (0,external_lodash_namespaceObject.sortBy)(menuItems, 'menu_order');
  const innerBlocks = sortedItems.map(menuItem => {
    var _menuItem$children, _menuItem$children2;

    if (menuItem.type === 'block') {
      const [block] = (0,external_wp_blocks_namespaceObject.parse)(menuItem.content.raw);

      if (!block) {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', {
          content: menuItem.content
        });
      }

      return block;
    }

    const attributes = menuItemToBlockAttributes(menuItem); // If there are children recurse to build those nested blocks.

    const {
      innerBlocks: nestedBlocks = [],
      // alias to avoid shadowing
      mapping: nestedMapping = {} // alias to avoid shadowing

    } = (_menuItem$children = menuItem.children) !== null && _menuItem$children !== void 0 && _menuItem$children.length ? mapMenuItemsToBlocks(menuItem.children) : {}; // Update parent mapping with nested mapping.

    mapping = { ...mapping,
      ...nestedMapping
    };
    const blockType = (_menuItem$children2 = menuItem.children) !== null && _menuItem$children2 !== void 0 && _menuItem$children2.length ? 'core/navigation-submenu' : 'core/navigation-link'; // Create block with nested "innerBlocks".

    const block = (0,external_wp_blocks_namespaceObject.createBlock)(blockType, attributes, nestedBlocks); // Create mapping for menuItem -> block.

    mapping[menuItem.id] = block.clientId;
    return block;
  });
  return {
    innerBlocks,
    mapping
  };
}
/**
 * A WP nav_menu_item object.
 * For more documentation on the individual fields present on a menu item please see:
 * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789
 *
 * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.
 *
 * @typedef WPNavMenuItem
 *
 * @property {Object} title       stores the raw and rendered versions of the title/label for this menu item.
 * @property {Array}  xfn         the XFN relationships expressed in the link of this menu item.
 * @property {Array}  classes     the HTML class attributes for this menu item.
 * @property {string} attr_title  the HTML title attribute for this menu item.
 * @property {string} object      The type of object originally represented, such as 'category', 'post', or 'attachment'.
 * @property {string} object_id   The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.
 * @property {string} description The description of this menu item.
 * @property {string} url         The URL to which this menu item points.
 * @property {string} type        The family of objects originally represented, such as 'post_type' or 'taxonomy'.
 * @property {string} target      The target attribute of the link element for this menu item.
 */

/**
 * Convert block attributes to menu item.
 *
 * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.
 * @return {Object} the block attributes converted from the WPNavMenuItem item.
 */


function menuItemToBlockAttributes(_ref) {
  var _object;

  let {
    title: menuItemTitleField,
    xfn,
    classes,
    // eslint-disable-next-line camelcase
    attr_title,
    object,
    // eslint-disable-next-line camelcase
    object_id,
    description,
    url,
    type: menuItemTypeField,
    target
  } = _ref;

  // For historical reasons, the `core/navigation-link` variation type is `tag`
  // whereas WP Core expects `post_tag` as the `object` type.
  // To avoid writing a block migration we perform a conversion here.
  // See also inverse equivalent in `blockAttributesToMenuItem`.
  if (object && object === 'post_tag') {
    object = 'tag';
  }

  return {
    label: (menuItemTitleField === null || menuItemTitleField === void 0 ? void 0 : menuItemTitleField.rendered) || '',
    ...(((_object = object) === null || _object === void 0 ? void 0 : _object.length) && {
      type: object
    }),
    kind: (menuItemTypeField === null || menuItemTypeField === void 0 ? void 0 : menuItemTypeField.replace('_', '-')) || 'custom',
    url: url || '',
    ...((xfn === null || xfn === void 0 ? void 0 : xfn.length) && xfn.join(' ').trim() && {
      rel: xfn.join(' ').trim()
    }),
    ...((classes === null || classes === void 0 ? void 0 : classes.length) && classes.join(' ').trim() && {
      className: classes.join(' ').trim()
    }),

    /* eslint-disable camelcase */
    ...((attr_title === null || attr_title === void 0 ? void 0 : attr_title.length) && {
      title: attr_title
    }),
    ...(object_id && 'custom' !== object && {
      id: object_id
    }),

    /* eslint-enable camelcase */
    ...((description === null || description === void 0 ? void 0 : description.length) && {
      description
    }),
    ...(target === '_blank' && {
      opensInNewTab: true
    })
  };
}
/**
 * Creates a nested, hierarchical tree representation from unstructured data that
 * has an inherent relationship defined between individual items.
 *
 * For example, by default, each element in the dataset should have an `id` and
 * `parent` property where the `parent` property indicates a relationship between
 * the current item and another item with a matching `id` properties.
 *
 * This is useful for building linked lists of data from flat data structures.
 *
 * @param {Array}  dataset  linked data to be rearranged into a hierarchical tree based on relational fields.
 * @param {string} id       the property which uniquely identifies each entry within the array.
 * @param {*}      relation the property which identifies how the current item is related to other items in the data (if at all).
 * @return {Array} a nested array of parent/child relationships
 */


function createDataTree(dataset) {
  let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
  let relation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'parent';
  const hashTable = Object.create(null);
  const dataTree = [];

  for (const data of dataset) {
    hashTable[data[id]] = { ...data,
      children: []
    };

    if (data[relation]) {
      hashTable[data[relation]] = hashTable[data[relation]] || {};
      hashTable[data[relation]].children = hashTable[data[relation]].children || [];
      hashTable[data[relation]].children.push(hashTable[data[id]]);
    } else {
      dataTree.push(hashTable[data[id]]);
    }
  }

  return dataTree;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
const CLASSIC_MENU_CONVERSION_ERROR = 'error';
const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
const CLASSIC_MENU_CONVERSION_IDLE = 'idle';

function useConvertClassicToBlockMenu(clientId) {
  const {
    create: createNavigationMenu
  } = useCreateNavigationMenu(clientId);
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();
  const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CLASSIC_MENU_CONVERSION_IDLE);
  const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
  const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);

  async function convertClassicMenuToBlockMenu(menuId, menuName) {
    let navigationMenu;
    let classicMenuItems; // 1. Fetch the classic Menu items.

    try {
      classicMenuItems = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getMenuItems({
        menus: menuId,
        per_page: -1,
        context: 'view'
      });
    } catch (err) {
      throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
      (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName), {
        cause: err
      });
    } // Handle offline response which resolves to `null`.


    if (classicMenuItems === null) {
      throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
      (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName));
    } // 2. Convert the classic items into blocks.


    const {
      innerBlocks
    } = menuItemsToBlocks(classicMenuItems); // 3. Create the `wp_navigation` Post with the blocks.

    try {
      navigationMenu = await createNavigationMenu(menuName, innerBlocks);
    } catch (err) {
      throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
      (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
        cause: err
      });
    }

    return navigationMenu;
  }

  const convert = (0,external_wp_element_namespaceObject.useCallback)((menuId, menuName) => {
    if (!menuId || !menuName) {
      setError('Unable to convert menu. Missing menu details.');
      setStatus(CLASSIC_MENU_CONVERSION_ERROR);
      return;
    }

    setStatus(CLASSIC_MENU_CONVERSION_PENDING);
    setValue(null);
    setError(null);
    convertClassicMenuToBlockMenu(menuId, menuName).then(navMenu => {
      setValue(navMenu);
      setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
    }).catch(err => {
      setError(err === null || err === void 0 ? void 0 : err.message);
      setStatus(CLASSIC_MENU_CONVERSION_ERROR); // Rethrow error for debugging.

      throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
      (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
        cause: err
      });
    });
  }, [clientId]);
  return {
    convert,
    status,
    value,
    error
  };
}

/* harmony default export */ var use_convert_classic_menu_to_block_menu = (useConvertClassicToBlockMenu);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/index.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */














const EMPTY_ARRAY = [];

function getComputedStyle(node) {
  return node.ownerDocument.defaultView.getComputedStyle(node);
}

function detectColors(colorsDetectionElement, setColor, setBackground) {
  if (!colorsDetectionElement) {
    return;
  }

  setColor(getComputedStyle(colorsDetectionElement).color);
  let backgroundColorNode = colorsDetectionElement;
  let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;

  while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) {
    backgroundColorNode = backgroundColorNode.parentNode;
    backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
  }

  setBackground(backgroundColor);
}

function Navigation(_ref) {
  var _attributes$style, _attributes$style$typ;

  let {
    attributes,
    setAttributes,
    clientId,
    isSelected,
    className,
    backgroundColor,
    setBackgroundColor,
    textColor,
    setTextColor,
    overlayBackgroundColor,
    setOverlayBackgroundColor,
    overlayTextColor,
    setOverlayTextColor,
    // These props are used by the navigation editor to override specific
    // navigation block settings.
    hasSubmenuIndicatorSetting = true,
    hasColorSettings = true,
    customPlaceholder: CustomPlaceholder = null
  } = _ref;
  const {
    openSubmenusOnClick,
    overlayMenu,
    showSubmenuIcon,
    layout: {
      justifyContent,
      orientation = 'horizontal',
      flexWrap = 'wrap'
    } = {},
    hasIcon
  } = attributes;
  const ref = attributes.ref;
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();

  const setRef = postId => {
    setAttributes({
      ref: postId
    });
  };

  const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(`navigationMenu/${ref}`); // Preload classic menus, so that they don't suddenly pop-in when viewing
  // the Select Menu dropdown.

  useNavigationEntities();
  const [showNavigationMenuDeleteNotice] = use_navigation_notice({
    name: 'block-library/core/navigation/delete'
  });
  const [showNavigationMenuCreateNotice, hideNavigationMenuCreateNotice] = use_navigation_notice({
    name: 'block-library/core/navigation/create'
  });
  const {
    create: createNavigationMenu,
    status: createNavigationMenuStatus,
    error: createNavigationMenuError,
    value: createNavigationMenuPost
  } = useCreateNavigationMenu(clientId);
  const isCreatingNavigationMenu = createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    hideNavigationMenuCreateNotice();

    if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING) {
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)(`Creating Navigation Menu.`));
    }

    if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS) {
      setRef(createNavigationMenuPost.id);
      selectBlock(clientId);
      showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu successfully created.`));
    }

    if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR) {
      showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)('Failed to create Navigation Menu.'));
    }
  }, [createNavigationMenu, createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost]);
  const {
    hasUncontrolledInnerBlocks,
    uncontrolledInnerBlocks,
    isInnerBlockSelected,
    hasSubmenus
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlock,
      getBlocks,
      hasSelectedInnerBlock
    } = select(external_wp_blockEditor_namespaceObject.store); // This relies on the fact that `getBlock` won't return controlled
    // inner blocks, while `getBlocks` does. It might be more stable to
    // introduce a selector like `getUncontrolledInnerBlocks`, just in
    // case `getBlock` is fixed.

    const _uncontrolledInnerBlocks = getBlock(clientId).innerBlocks;

    const _hasUncontrolledInnerBlocks = !!(_uncontrolledInnerBlocks !== null && _uncontrolledInnerBlocks !== void 0 && _uncontrolledInnerBlocks.length);

    const _controlledInnerBlocks = _hasUncontrolledInnerBlocks ? EMPTY_ARRAY : getBlocks(clientId);

    const innerBlocks = _hasUncontrolledInnerBlocks ? _uncontrolledInnerBlocks : _controlledInnerBlocks;
    return {
      hasSubmenus: !!innerBlocks.find(block => block.name === 'core/navigation-submenu'),
      hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
      uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
      isInnerBlockSelected: hasSelectedInnerBlock(clientId, true)
    };
  }, [clientId]);
  const {
    replaceInnerBlocks,
    selectBlock,
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const [hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks] = (0,external_wp_element_namespaceObject.useState)(false);
  const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0,external_wp_element_namespaceObject.useState)(false);
  const [overlayMenuPreview, setOverlayMenuPreview] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    hasResolvedNavigationMenus,
    isNavigationMenuResolved,
    isNavigationMenuMissing,
    navigationMenus,
    navigationMenu,
    canUserUpdateNavigationMenu,
    hasResolvedCanUserUpdateNavigationMenu,
    canUserDeleteNavigationMenu,
    hasResolvedCanUserDeleteNavigationMenu,
    canUserCreateNavigationMenu,
    isResolvingCanUserCreateNavigationMenu,
    hasResolvedCanUserCreateNavigationMenu
  } = useNavigationMenu(ref); // Attempt to retrieve and prioritize any existing navigation menu unless
  // a specific ref is allocated or the user is explicitly creating a new menu. The aim is
  // for the block to "just work" from a user perspective using existing data.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isCreatingNavigationMenu || ref || !(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length) || (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1) {
      return;
    }

    setRef(navigationMenus[0].id);
  }, [navigationMenus]);
  const navRef = (0,external_wp_element_namespaceObject.useRef)();
  const isDraftNavigationMenu = (navigationMenu === null || navigationMenu === void 0 ? void 0 : navigationMenu.status) === 'draft';
  const {
    convert,
    status: classicMenuConversionStatus,
    error: classicMenuConversionError,
    value: classicMenuConversionResult
  } = use_convert_classic_menu_to_block_menu(clientId);
  const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING; // The standard HTML5 tag for the block wrapper.

  const TagName = 'nav'; // "placeholder" shown if:
  // - there is no ref attribute pointing to a Navigation Post.
  // - there is no classic menu conversion process in progress.
  // - there is no menu creation process in progress.
  // - there are no uncontrolled blocks.

  const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && !hasUncontrolledInnerBlocks;
  const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // "loading" state:
  // - there is a menu creation process in progress.
  // - there is a classic menu conversion process in progress.
  // OR
  // - there is a ref attribute pointing to a Navigation Post
  // - the Navigation Post isn't available (hasn't resolved) yet.

  const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu);
  const textDecoration = (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : (_attributes$style$typ = _attributes$style.typography) === null || _attributes$style$typ === void 0 ? void 0 : _attributes$style$typ.textDecoration;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref: navRef,
    className: classnames_default()(className, {
      'items-justified-right': justifyContent === 'right',
      'items-justified-space-between': justifyContent === 'space-between',
      'items-justified-left': justifyContent === 'left',
      'items-justified-center': justifyContent === 'center',
      'is-vertical': orientation === 'vertical',
      'no-wrap': flexWrap === 'nowrap',
      'is-responsive': 'never' !== overlayMenu,
      'has-text-color': !!textColor.color || !!(textColor !== null && textColor !== void 0 && textColor.class),
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor === null || textColor === void 0 ? void 0 : textColor.slug)]: !!(textColor !== null && textColor !== void 0 && textColor.slug),
      'has-background': !!backgroundColor.color || backgroundColor.class,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.slug)]: !!(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug),
      [`has-text-decoration-${textDecoration}`]: textDecoration
    }),
    style: {
      color: !(textColor !== null && textColor !== void 0 && textColor.slug) && (textColor === null || textColor === void 0 ? void 0 : textColor.color),
      backgroundColor: !(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug) && (backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.color)
    }
  });
  const overlayClassnames = classnames_default()({
    'has-text-color': !!overlayTextColor.color || !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.class),
    [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', overlayTextColor === null || overlayTextColor === void 0 ? void 0 : overlayTextColor.slug)]: !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.slug),
    'has-background': !!overlayBackgroundColor.color || (overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.class),
    [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.slug)]: !!(overlayBackgroundColor !== null && overlayBackgroundColor !== void 0 && overlayBackgroundColor.slug)
  });
  const overlayStyles = {
    color: !(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.slug) && (overlayTextColor === null || overlayTextColor === void 0 ? void 0 : overlayTextColor.color),
    backgroundColor: !(overlayBackgroundColor !== null && overlayBackgroundColor !== void 0 && overlayBackgroundColor.slug) && (overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.color) && overlayBackgroundColor.color
  }; // Turn on contrast checker for web only since it's not supported on mobile yet.

  const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web';
  const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
  const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)();
  const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
  const [detectedOverlayColor, setDetectedOverlayColor] = (0,external_wp_element_namespaceObject.useState)();
  const [showClassicMenuConversionErrorNotice, hideClassicMenuConversionErrorNotice] = use_navigation_notice({
    name: 'block-library/core/navigation/classic-menu-conversion/error'
  });

  function handleUpdateMenu(menuId) {
    setRef(menuId);
    selectBlock(clientId);
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING) {
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu importing.'));
    }

    if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS && classicMenuConversionResult) {
      handleUpdateMenu(classicMenuConversionResult === null || classicMenuConversionResult === void 0 ? void 0 : classicMenuConversionResult.id);
      hideClassicMenuConversionErrorNotice();
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu imported successfully.'));
    }

    if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) {
      showClassicMenuConversionErrorNotice(classicMenuConversionError);
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu import failed.'));
    }
  }, [classicMenuConversionStatus, classicMenuConversionResult, classicMenuConversionError]); // Spacer block needs orientation from context. This is a patch until
  // https://github.com/WordPress/gutenberg/issues/36197 is addressed.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (orientation) {
      __unstableMarkNextChangeAsNotPersistent();

      setAttributes({
        orientation
      });
    }
  }, [orientation]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    var _navRef$current;

    if (!enableContrastChecking) {
      return;
    }

    detectColors(navRef.current, setDetectedColor, setDetectedBackgroundColor);
    const subMenuElement = (_navRef$current = navRef.current) === null || _navRef$current === void 0 ? void 0 : _navRef$current.querySelector('[data-type="core/navigation-link"] [data-type="core/navigation-link"]');

    if (subMenuElement) {
      detectColors(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor);
    }
  });
  const [showCantEditNotice, hideCantEditNotice] = use_navigation_notice({
    name: 'block-library/core/navigation/permissions/update',
    message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to edit this Menu. Any changes made will not be saved.')
  });
  const [showCantCreateNotice, hideCantCreateNotice] = use_navigation_notice({
    name: 'block-library/core/navigation/permissions/create',
    message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Navigation Menus.')
  });
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected && !isInnerBlockSelected) {
      hideCantEditNotice();
      hideCantCreateNotice();
    }

    if (isSelected || isInnerBlockSelected) {
      if (hasResolvedCanUserUpdateNavigationMenu && !canUserUpdateNavigationMenu) {
        showCantEditNotice();
      }

      if (!ref && hasResolvedCanUserCreateNavigationMenu && !canUserCreateNavigationMenu) {
        showCantCreateNotice();
      }
    }
  }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenu, hasResolvedCanUserCreateNavigationMenu, ref]);
  const navigationSelectorRef = (0,external_wp_element_namespaceObject.useRef)();
  const [shouldFocusNavigationSelector, setShouldFocusNavigationSelector] = (0,external_wp_element_namespaceObject.useState)(false);
  const handleSelectNavigation = (0,external_wp_element_namespaceObject.useCallback)(navPostOrClassicMenu => {
    if (!navPostOrClassicMenu) {
      return;
    }

    const isClassicMenu = navPostOrClassicMenu.hasOwnProperty('auto_add');

    if (isClassicMenu) {
      convert(navPostOrClassicMenu.id, navPostOrClassicMenu.name);
    } else {
      handleUpdateMenu(navPostOrClassicMenu.id);
    }

    setShouldFocusNavigationSelector(true);
  }, [convert, handleUpdateMenu]); // Focus support after menu selection.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    var _navigationSelectorRe;

    if (isDraftNavigationMenu || !isEntityAvailable || !shouldFocusNavigationSelector) {
      return;
    }

    navigationSelectorRef === null || navigationSelectorRef === void 0 ? void 0 : (_navigationSelectorRe = navigationSelectorRef.current) === null || _navigationSelectorRe === void 0 ? void 0 : _navigationSelectorRe.focus();
    setShouldFocusNavigationSelector(false);
  }, [isDraftNavigationMenu, isEntityAvailable, shouldFocusNavigationSelector]);
  const resetToEmptyBlock = (0,external_wp_element_namespaceObject.useCallback)(() => {
    registry.batch(() => {
      setAttributes({
        ref: undefined
      });

      if (!ref) {
        replaceInnerBlocks(clientId, []);
      }
    });
  }, [clientId, ref]);
  const isResponsive = 'never' !== overlayMenu;
  const overlayMenuPreviewClasses = classnames_default()('wp-block-navigation__overlay-menu-preview', {
    open: overlayMenuPreview
  });
  const stylingInspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, hasSubmenuIndicatorSetting && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Display')
  }, isResponsive && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    className: overlayMenuPreviewClasses,
    onClick: () => {
      setOverlayMenuPreview(!overlayMenuPreview);
    }
  }, hasIcon && (0,external_wp_element_namespaceObject.createElement)(OverlayMenuIcon, null), !hasIcon && (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Menu'))), overlayMenuPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show icon button'),
    help: (0,external_wp_i18n_namespaceObject.__)('Configure the visual appearance of the button opening the overlay menu.'),
    onChange: value => setAttributes({
      hasIcon: value
    }),
    checked: hasIcon
  }), (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('Overlay Menu')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Configure overlay menu'),
    value: overlayMenu,
    help: (0,external_wp_i18n_namespaceObject.__)('Collapses the navigation options in a menu icon opening an overlay.'),
    onChange: value => setAttributes({
      overlayMenu: value
    }),
    isBlock: true,
    hideLabelFromVision: true
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "never",
    label: (0,external_wp_i18n_namespaceObject.__)('Off')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "mobile",
    label: (0,external_wp_i18n_namespaceObject.__)('Mobile')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "always",
    label: (0,external_wp_i18n_namespaceObject.__)('Always')
  })), hasSubmenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('Submenus')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    checked: openSubmenusOnClick,
    onChange: value => {
      setAttributes({
        openSubmenusOnClick: value,
        ...(value && {
          showSubmenuIcon: true
        }) // Make sure arrows are shown when we toggle this on.

      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Open on click')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    checked: showSubmenuIcon,
    onChange: value => {
      setAttributes({
        showSubmenuIcon: value
      });
    },
    disabled: attributes.openSubmenusOnClick,
    label: (0,external_wp_i18n_namespaceObject.__)('Show arrow')
  }))), hasColorSettings && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PanelColorSettings, {
    __experimentalHasMultipleOrigins: true,
    __experimentalIsRenderedInSidebar: true,
    title: (0,external_wp_i18n_namespaceObject.__)('Color'),
    initialOpen: false,
    colorSettings: [{
      value: textColor.color,
      onChange: setTextColor,
      label: (0,external_wp_i18n_namespaceObject.__)('Text')
    }, {
      value: backgroundColor.color,
      onChange: setBackgroundColor,
      label: (0,external_wp_i18n_namespaceObject.__)('Background')
    }, {
      value: overlayTextColor.color,
      onChange: setOverlayTextColor,
      label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay text')
    }, {
      value: overlayBackgroundColor.color,
      onChange: setOverlayBackgroundColor,
      label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay background')
    }]
  }, enableContrastChecking && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
    backgroundColor: detectedBackgroundColor,
    textColor: detectedColor
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
    backgroundColor: detectedOverlayBackgroundColor,
    textColor: detectedOverlayColor
  })))); // If the block has inner blocks, but no menu id, then these blocks are either:
  // - inserted via a pattern.
  // - inserted directly via Code View (or otherwise).
  // - from an older version of navigation block added before the block used a wp_navigation entity.
  // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
  // that automatically saves the menu as an entity when changes are made to the inner blocks.

  const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;

  if (hasUnsavedBlocks) {
    return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, stylingInspectorControls, (0,external_wp_element_namespaceObject.createElement)(ResponsiveWrapper, {
      id: clientId,
      onToggle: setResponsiveMenuVisibility,
      isOpen: isResponsiveMenuOpen,
      isResponsive: 'never' !== overlayMenu,
      isHiddenByDefault: 'always' === overlayMenu,
      classNames: overlayClassnames,
      styles: overlayStyles
    }, (0,external_wp_element_namespaceObject.createElement)(UnsavedInnerBlocks, {
      blockProps: blockProps,
      blocks: uncontrolledInnerBlocks,
      clientId: clientId,
      navigationMenus: navigationMenus,
      hasSelection: isSelected || isInnerBlockSelected,
      hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks,
      onSave: post => {
        // Set some state used as a guard to prevent the creation of multiple posts.
        setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity.

        setRef(post.id);
        showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)(`New Navigation Menu created.`));
      }
    })));
  } // Show a warning if the selected menu is no longer available.
  // TODO - the user should be able to select a new one?


  if (ref && isNavigationMenuMissing) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Navigation menu has been deleted or is unavailable. '), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
      onClick: resetToEmptyBlock,
      variant: "link"
    }, (0,external_wp_i18n_namespaceObject.__)('Create a new menu?'))));
  }

  if (isEntityAvailable && hasAlreadyRendered) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')));
  }

  const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : NavigationPlaceholder;

  if (isPlaceholder) {
    return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(PlaceholderComponent, {
      isSelected: isSelected,
      currentMenuId: ref,
      clientId: clientId,
      canUserCreateNavigationMenu: canUserCreateNavigationMenu,
      isResolvingCanUserCreateNavigationMenu: isResolvingCanUserCreateNavigationMenu,
      onFinish: handleSelectNavigation,
      onCreateEmpty: () => createNavigationMenu('', [])
    }));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_coreData_namespaceObject.EntityProvider, {
    kind: "postType",
    type: "wp_navigation",
    id: ref
  }, (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, !isDraftNavigationMenu && isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
    className: "wp-block-navigation__toolbar-menu-selector"
  }, (0,external_wp_element_namespaceObject.createElement)(navigation_menu_selector, {
    ref: navigationSelectorRef,
    currentMenuId: ref,
    clientId: clientId,
    onSelect: handleSelectNavigation,
    onCreateNew: resetToEmptyBlock
    /* translators: %s: The name of a menu. */
    ,
    actionLabel: (0,external_wp_i18n_namespaceObject.__)("Switch to '%s'"),
    showManageActions: true
  }))), stylingInspectorControls, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuNameControl, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuDeleteControl, {
    onDelete: function () {
      let deletedMenuTitle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
      resetToEmptyBlock();
      showNavigationMenuDeleteNotice((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
      (0,external_wp_i18n_namespaceObject.__)('Navigation menu %s successfully deleted.'), deletedMenuTitle));
    }
  })), isLoading && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, {
    className: "wp-block-navigation__loading-indicator"
  })), !isLoading && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(ResponsiveWrapper, {
    id: clientId,
    onToggle: setResponsiveMenuVisibility,
    label: (0,external_wp_i18n_namespaceObject.__)('Menu'),
    hasIcon: hasIcon,
    isOpen: isResponsiveMenuOpen,
    isResponsive: isResponsive,
    isHiddenByDefault: 'always' === overlayMenu,
    classNames: overlayClassnames,
    styles: overlayStyles
  }, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(NavigationInnerBlocks, {
    clientId: clientId,
    hasCustomPlaceholder: !!CustomPlaceholder,
    orientation: orientation
  })))));
}

/* harmony default export */ var navigation_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)({
  textColor: 'color'
}, {
  backgroundColor: 'color'
}, {
  overlayBackgroundColor: 'color'
}, {
  overlayTextColor: 'color'
})(Navigation));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/save.js


/**
 * WordPress dependencies
 */

function navigation_save_save(_ref) {
  let {
    attributes
  } = _ref;

  if (attributes.ref) {
    // Avoid rendering inner blocks when a ref is defined.
    // When this id is defined the inner blocks are loaded from the
    // `wp_navigation` entity rather than the hard-coded block html.
    return;
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


const TYPOGRAPHY_PRESET_DEPRECATION_MAP = {
  fontStyle: 'var:preset|font-style|',
  fontWeight: 'var:preset|font-weight|',
  textDecoration: 'var:preset|text-decoration|',
  textTransform: 'var:preset|text-transform|'
};

const migrateIdToRef = _ref => {
  let {
    navigationMenuId,
    ...attributes
  } = _ref;
  return { ...attributes,
    ref: navigationMenuId
  };
};

const deprecated_migrateWithLayout = attributes => {
  if (!!attributes.layout) {
    return attributes;
  }

  const {
    itemsJustification,
    orientation,
    ...updatedAttributes
  } = attributes;

  if (itemsJustification || orientation) {
    Object.assign(updatedAttributes, {
      layout: {
        type: 'flex',
        ...(itemsJustification && {
          justifyContent: itemsJustification
        }),
        ...(orientation && {
          orientation
        })
      }
    });
  }

  return updatedAttributes;
};

const navigation_deprecated_v6 = {
  attributes: {
    navigationMenuId: {
      type: 'number'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    rgbTextColor: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    rgbBackgroundColor: {
      type: 'string'
    },
    showSubmenuIcon: {
      type: 'boolean',
      default: true
    },
    openSubmenusOnClick: {
      type: 'boolean',
      default: false
    },
    overlayMenu: {
      type: 'string',
      default: 'mobile'
    },
    __unstableLocation: {
      type: 'string'
    },
    overlayBackgroundColor: {
      type: 'string'
    },
    customOverlayBackgroundColor: {
      type: 'string'
    },
    overlayTextColor: {
      type: 'string'
    },
    customOverlayTextColor: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false,
    inserter: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalTextTransform: true,
      __experimentalFontFamily: true,
      __experimentalTextDecoration: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    spacing: {
      blockGap: true,
      units: ['px', 'em', 'rem', 'vh', 'vw'],
      __experimentalDefaultControls: {
        blockGap: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      default: {
        type: 'flex'
      }
    }
  },

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  },

  isEligible: _ref2 => {
    let {
      navigationMenuId
    } = _ref2;
    return !!navigationMenuId;
  },
  migrate: migrateIdToRef
};
const navigation_deprecated_v5 = {
  attributes: {
    navigationMenuId: {
      type: 'number'
    },
    orientation: {
      type: 'string',
      default: 'horizontal'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    rgbTextColor: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    rgbBackgroundColor: {
      type: 'string'
    },
    itemsJustification: {
      type: 'string'
    },
    showSubmenuIcon: {
      type: 'boolean',
      default: true
    },
    openSubmenusOnClick: {
      type: 'boolean',
      default: false
    },
    overlayMenu: {
      type: 'string',
      default: 'never'
    },
    __unstableLocation: {
      type: 'string'
    },
    overlayBackgroundColor: {
      type: 'string'
    },
    customOverlayBackgroundColor: {
      type: 'string'
    },
    overlayTextColor: {
      type: 'string'
    },
    customOverlayTextColor: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false,
    inserter: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalTextTransform: true,
      __experimentalFontFamily: true,
      __experimentalTextDecoration: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    spacing: {
      blockGap: true,
      units: ['px', 'em', 'rem', 'vh', 'vw'],
      __experimentalDefaultControls: {
        blockGap: true
      }
    }
  },

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  },

  isEligible: _ref3 => {
    let {
      itemsJustification,
      orientation
    } = _ref3;
    return !!itemsJustification || !!orientation;
  },
  migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout)
};
const navigation_deprecated_v4 = {
  attributes: {
    orientation: {
      type: 'string',
      default: 'horizontal'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    rgbTextColor: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    rgbBackgroundColor: {
      type: 'string'
    },
    itemsJustification: {
      type: 'string'
    },
    showSubmenuIcon: {
      type: 'boolean',
      default: true
    },
    openSubmenusOnClick: {
      type: 'boolean',
      default: false
    },
    overlayMenu: {
      type: 'string',
      default: 'never'
    },
    __unstableLocation: {
      type: 'string'
    },
    overlayBackgroundColor: {
      type: 'string'
    },
    customOverlayBackgroundColor: {
      type: 'string'
    },
    overlayTextColor: {
      type: 'string'
    },
    customOverlayTextColor: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false,
    inserter: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalTextTransform: true,
      __experimentalFontFamily: true,
      __experimentalTextDecoration: true
    },
    spacing: {
      blockGap: true,
      units: ['px', 'em', 'rem', 'vh', 'vw'],
      __experimentalDefaultControls: {
        blockGap: true
      }
    }
  },

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  },

  migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family),

  isEligible(_ref4) {
    var _style$typography;

    let {
      style
    } = _ref4;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};

const migrateIsResponsive = function (attributes) {
  delete attributes.isResponsive;
  return { ...attributes,
    overlayMenu: 'mobile'
  };
};

const migrateTypographyPresets = function (attributes) {
  return { ...attributes,
    style: { ...attributes.style,
      typography: (0,external_lodash_namespaceObject.mapValues)(attributes.style.typography, (value, key) => {
        const prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[key];

        if (prefix && value.startsWith(prefix)) {
          const newValue = value.slice(prefix.length);

          if ('textDecoration' === key && 'strikethrough' === newValue) {
            return 'line-through';
          }

          return newValue;
        }

        return value;
      })
    }
  };
};

const navigation_deprecated_deprecated = [navigation_deprecated_v6, navigation_deprecated_v5, navigation_deprecated_v4, // Remove `isResponsive` attribute.
{
  attributes: {
    orientation: {
      type: 'string',
      default: 'horizontal'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    rgbTextColor: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    rgbBackgroundColor: {
      type: 'string'
    },
    itemsJustification: {
      type: 'string'
    },
    showSubmenuIcon: {
      type: 'boolean',
      default: true
    },
    openSubmenusOnClick: {
      type: 'boolean',
      default: false
    },
    isResponsive: {
      type: 'boolean',
      default: 'false'
    },
    __unstableLocation: {
      type: 'string'
    },
    overlayBackgroundColor: {
      type: 'string'
    },
    customOverlayBackgroundColor: {
      type: 'string'
    },
    overlayTextColor: {
      type: 'string'
    },
    customOverlayTextColor: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false,
    inserter: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalTextTransform: true,
      __experimentalFontFamily: true,
      __experimentalTextDecoration: true
    }
  },

  isEligible(attributes) {
    return attributes.isResponsive;
  },

  migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateIsResponsive),

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  }

}, {
  attributes: {
    orientation: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    customTextColor: {
      type: 'string'
    },
    rgbTextColor: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    rgbBackgroundColor: {
      type: 'string'
    },
    itemsJustification: {
      type: 'string'
    },
    showSubmenuIcon: {
      type: 'boolean',
      default: true
    }
  },
  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false,
    inserter: true,
    fontSize: true,
    __experimentalFontStyle: true,
    __experimentalFontWeight: true,
    __experimentalTextTransform: true,
    color: true,
    __experimentalFontFamily: true,
    __experimentalTextDecoration: true
  },

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  },

  isEligible(attributes) {
    if (!attributes.style || !attributes.style.typography) {
      return false;
    }

    for (const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP) {
      const attributeValue = attributes.style.typography[styleAttribute];

      if (attributeValue && attributeValue.startsWith(TYPOGRAPHY_PRESET_DEPRECATION_MAP[styleAttribute])) {
        return true;
      }
    }

    return false;
  },

  migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateTypographyPresets)
}, {
  attributes: {
    className: {
      type: 'string'
    },
    textColor: {
      type: 'string'
    },
    rgbTextColor: {
      type: 'string'
    },
    backgroundColor: {
      type: 'string'
    },
    rgbBackgroundColor: {
      type: 'string'
    },
    fontSize: {
      type: 'string'
    },
    customFontSize: {
      type: 'number'
    },
    itemsJustification: {
      type: 'string'
    },
    showSubmenuIcon: {
      type: 'boolean'
    }
  },

  isEligible(attribute) {
    return attribute.rgbTextColor || attribute.rgbBackgroundColor;
  },

  supports: {
    align: ['wide', 'full'],
    anchor: true,
    html: false,
    inserter: true
  },
  migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, attributes => {
    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['rgbTextColor', 'rgbBackgroundColor']),
      customTextColor: attributes.textColor ? undefined : attributes.rgbTextColor,
      customBackgroundColor: attributes.backgroundColor ? undefined : attributes.rgbBackgroundColor
    };
  }),

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  }

}];
/* harmony default export */ var navigation_deprecated = (navigation_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const navigation_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/navigation",
  title: "Navigation",
  category: "theme",
  description: "A collection of blocks that allow visitors to get around your site.",
  keywords: ["menu", "navigation", "links"],
  textdomain: "default",
  attributes: {
    ref: {
      type: "number"
    },
    textColor: {
      type: "string"
    },
    customTextColor: {
      type: "string"
    },
    rgbTextColor: {
      type: "string"
    },
    backgroundColor: {
      type: "string"
    },
    customBackgroundColor: {
      type: "string"
    },
    rgbBackgroundColor: {
      type: "string"
    },
    showSubmenuIcon: {
      type: "boolean",
      "default": true
    },
    openSubmenusOnClick: {
      type: "boolean",
      "default": false
    },
    overlayMenu: {
      type: "string",
      "default": "mobile"
    },
    hasIcon: {
      type: "boolean",
      "default": true
    },
    __unstableLocation: {
      type: "string"
    },
    overlayBackgroundColor: {
      type: "string"
    },
    customOverlayBackgroundColor: {
      type: "string"
    },
    overlayTextColor: {
      type: "string"
    },
    customOverlayTextColor: {
      type: "string"
    },
    maxNestingLevel: {
      type: "number",
      "default": 5
    }
  },
  providesContext: {
    textColor: "textColor",
    customTextColor: "customTextColor",
    backgroundColor: "backgroundColor",
    customBackgroundColor: "customBackgroundColor",
    overlayTextColor: "overlayTextColor",
    customOverlayTextColor: "customOverlayTextColor",
    overlayBackgroundColor: "overlayBackgroundColor",
    customOverlayBackgroundColor: "customOverlayBackgroundColor",
    fontSize: "fontSize",
    customFontSize: "customFontSize",
    showSubmenuIcon: "showSubmenuIcon",
    openSubmenusOnClick: "openSubmenusOnClick",
    style: "style",
    orientation: "orientation",
    maxNestingLevel: "maxNestingLevel"
  },
  supports: {
    align: ["wide", "full"],
    anchor: true,
    html: false,
    inserter: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalTextTransform: true,
      __experimentalFontFamily: true,
      __experimentalTextDecoration: true,
      __experimentalSkipSerialization: ["textDecoration"],
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    spacing: {
      blockGap: true,
      units: ["px", "em", "rem", "vh", "vw"],
      __experimentalDefaultControls: {
        blockGap: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      allowVerticalAlignment: false,
      "default": {
        type: "flex"
      }
    }
  },
  viewScript: "file:./view.min.js",
  editorStyle: "wp-block-navigation-editor",
  style: "wp-block-navigation"
};



const {
  name: navigation_name
} = navigation_metadata;

const navigation_settings = {
  icon: library_navigation,
  example: {
    innerBlocks: [{
      name: 'core/navigation-link',
      attributes: {
        // translators: 'Home' as in a website's home page.
        label: (0,external_wp_i18n_namespaceObject.__)('Home'),
        url: 'https://make.wordpress.org/'
      }
    }, {
      name: 'core/navigation-link',
      attributes: {
        // translators: 'About' as in a website's about page.
        label: (0,external_wp_i18n_namespaceObject.__)('About'),
        url: 'https://make.wordpress.org/'
      }
    }, {
      name: 'core/navigation-link',
      attributes: {
        // translators: 'Contact' as in a website's contact page.
        label: (0,external_wp_i18n_namespaceObject.__)('Contact'),
        url: 'https://make.wordpress.org/'
      }
    }]
  },
  edit: navigation_edit,
  save: navigation_save_save,
  deprecated: navigation_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-link.js


/**
 * WordPress dependencies
 */

const customLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "https://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.5 14.5h-1V16h1c2.2 0 4-1.8 4-4s-1.8-4-4-4h-1v1.5h1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5zm-4 1.5v-1.5h-1C6.1 14.5 5 13.4 5 12s1.1-2.5 2.5-2.5h1V8h-1c-2.2 0-4 1.8-4 4s1.8 4 4 4h1zm-1-3.2h5v-1.5h-5v1.5zM18 4H9c-1.1 0-2 .9-2 2v.5h1.5V6c0-.3.2-.5.5-.5h9c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H9c-.3 0-.5-.2-.5-.5v-.5H7v.5c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2z"
}));
/* harmony default export */ var custom_link = (customLink);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/add-submenu.js


/**
 * WordPress dependencies
 */

const addSubmenu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M2 12c0 3.6 2.4 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.5 0-4.5-1.5-4.5-4s2-4.5 4.5-4.5h3.5V6H8c-3.6 0-6 2.4-6 6zm19.5-1h-8v1.5h8V11zm0 5h-8v1.5h8V16zm0-10h-8v1.5h8V6z"
}));
/* harmony default export */ var add_submenu = (addSubmenu);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */












/**
 * Internal dependencies
 */

const {
  name: edit_name
} = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/navigation-link",
  title: "Custom Link",
  category: "design",
  parent: ["core/navigation"],
  description: "Add a page, link, or another item to your navigation.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    },
    type: {
      type: "string"
    },
    description: {
      type: "string"
    },
    rel: {
      type: "string"
    },
    id: {
      type: "number"
    },
    opensInNewTab: {
      type: "boolean",
      "default": false
    },
    url: {
      type: "string"
    },
    title: {
      type: "string"
    },
    kind: {
      type: "string"
    },
    isTopLevelLink: {
      type: "boolean"
    }
  },
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
  supports: {
    reusable: false,
    html: false,
    __experimentalSlashInserter: true
  },
  editorStyle: "wp-block-navigation-link-editor",
  style: "wp-block-navigation-link"
};
/**
 * A React hook to determine if it's dragging within the target element.
 *
 * @typedef {import('@wordpress/element').RefObject} RefObject
 *
 * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
 *
 * @return {boolean} Is dragging within the target element.
 */

const useIsDraggingWithin = elementRef => {
  const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      ownerDocument
    } = elementRef.current;

    function handleDragStart(event) {
      // Check the first time when the dragging starts.
      handleDragEnter(event);
    } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.


    function handleDragEnd() {
      setIsDraggingWithin(false);
    }

    function handleDragEnter(event) {
      // Check if the current target is inside the item element.
      if (elementRef.current.contains(event.target)) {
        setIsDraggingWithin(true);
      } else {
        setIsDraggingWithin(false);
      }
    } // Bind these events to the document to catch all drag events.
    // Ideally, we can also use `event.relatedTarget`, but sadly that
    // doesn't work in Safari.


    ownerDocument.addEventListener('dragstart', handleDragStart);
    ownerDocument.addEventListener('dragend', handleDragEnd);
    ownerDocument.addEventListener('dragenter', handleDragEnter);
    return () => {
      ownerDocument.removeEventListener('dragstart', handleDragStart);
      ownerDocument.removeEventListener('dragend', handleDragEnd);
      ownerDocument.removeEventListener('dragenter', handleDragEnter);
    };
  }, []);
  return isDraggingWithin;
};
/**
 * Given the Link block's type attribute, return the query params to give to
 * /wp/v2/search.
 *
 * @param {string} type Link block's type attribute.
 * @param {string} kind Link block's entity of kind (post-type|taxonomy)
 * @return {{ type?: string, subtype?: string }} Search query params.
 */


function getSuggestionsQuery(type, kind) {
  switch (type) {
    case 'post':
    case 'page':
      return {
        type: 'post',
        subtype: type
      };

    case 'category':
      return {
        type: 'term',
        subtype: 'category'
      };

    case 'tag':
      return {
        type: 'term',
        subtype: 'post_tag'
      };

    case 'post_format':
      return {
        type: 'post-format'
      };

    default:
      if (kind === 'taxonomy') {
        return {
          type: 'term',
          subtype: type
        };
      }

      if (kind === 'post-type') {
        return {
          type: 'post',
          subtype: type
        };
      }

      return {};
  }
}
/**
 * Determine the colors for a menu.
 *
 * Order of priority is:
 * 1: Overlay custom colors (if submenu)
 * 2: Overlay theme colors (if submenu)
 * 3: Custom colors
 * 4: Theme colors
 * 5: Global styles
 *
 * @param {Object}  context
 * @param {boolean} isSubMenu
 */


function getColors(context, isSubMenu) {
  var _style$color, _style$color2;

  const {
    textColor,
    customTextColor,
    backgroundColor,
    customBackgroundColor,
    overlayTextColor,
    customOverlayTextColor,
    overlayBackgroundColor,
    customOverlayBackgroundColor,
    style
  } = context;
  const colors = {};

  if (isSubMenu && !!customOverlayTextColor) {
    colors.customTextColor = customOverlayTextColor;
  } else if (isSubMenu && !!overlayTextColor) {
    colors.textColor = overlayTextColor;
  } else if (!!customTextColor) {
    colors.customTextColor = customTextColor;
  } else if (!!textColor) {
    colors.textColor = textColor;
  } else if (!!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text)) {
    colors.customTextColor = style.color.text;
  }

  if (isSubMenu && !!customOverlayBackgroundColor) {
    colors.customBackgroundColor = customOverlayBackgroundColor;
  } else if (isSubMenu && !!overlayBackgroundColor) {
    colors.backgroundColor = overlayBackgroundColor;
  } else if (!!customBackgroundColor) {
    colors.customBackgroundColor = customBackgroundColor;
  } else if (!!backgroundColor) {
    colors.backgroundColor = backgroundColor;
  } else if (!!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background)) {
    colors.customTextColor = style.color.background;
  }

  return colors;
}
/**
 * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
 */

/**
 * Navigation Link Block Attributes
 *
 * @typedef {Object} WPNavigationLinkBlockAttributes
 *
 * @property {string}               [label]         Link text.
 * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
 * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
 * @property {string}               [rel]           The relationship of the linked URL.
 * @property {number}               [id]            A post or term id.
 * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
 * @property {string}               [url]           Link href.
 * @property {string}               [title]         Link title attribute.
 */

/**
 * Link Control onChange handler that updates block attributes when a setting is changed.
 *
 * @param {Object}                          updatedValue    New block attributes to update.
 * @param {Function}                        setAttributes   Block attribute update function.
 * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
 *
 */


const updateNavigationLinkBlockAttributes = function () {
  let updatedValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  let setAttributes = arguments.length > 1 ? arguments[1] : undefined;
  let blockAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  const {
    label: originalLabel = '',
    kind: originalKind = '',
    type: originalType = ''
  } = blockAttributes;
  const {
    title = '',
    // the title of any provided Post.
    url = '',
    opensInNewTab,
    id,
    kind: newKind = originalKind,
    type: newType = originalType
  } = updatedValue;
  const normalizedTitle = title.replace(/http(s?):\/\//gi, '');
  const normalizedURL = url.replace(/http(s?):\/\//gi, '');
  const escapeTitle = title !== '' && normalizedTitle !== normalizedURL && originalLabel !== title;
  const label = escapeTitle ? (0,external_lodash_namespaceObject.escape)(title) : originalLabel || (0,external_lodash_namespaceObject.escape)(normalizedURL); // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"

  const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
  const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
  const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
  const kind = isCustomLink ? 'custom' : newKind;
  setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
    ...(url && {
      url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(url))
    }),
    ...(label && {
      label
    }),
    ...(undefined !== opensInNewTab && {
      opensInNewTab
    }),
    ...(id && Number.isInteger(id) && {
      id
    }),
    ...(kind && {
      kind
    }),
    ...(type && type !== 'URL' && {
      type
    })
  });
};

const useIsInvalidLink = (kind, type, id) => {
  const isPostType = kind === 'post-type' || type === 'post' || type === 'page';
  const hasId = Number.isInteger(id);
  const postStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getEntityRecord;

    if (!isPostType) {
      return null;
    }

    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    return (_getEntityRecord = getEntityRecord('postType', type, id)) === null || _getEntityRecord === void 0 ? void 0 : _getEntityRecord.status;
  }, [isPostType, type, id]); // Check Navigation Link validity if:
  // 1. Link is 'post-type'.
  // 2. It has an id.
  // 3. It's neither null, nor undefined, as valid items might be either of those while loading.
  // If those conditions are met, check if
  // 1. The post status is published.
  // 2. The Navigation Link item has no label.
  // If either of those is true, invalidate.

  const isInvalid = isPostType && hasId && postStatus && 'trash' === postStatus;
  const isDraft = 'draft' === postStatus;
  return [isInvalid, isDraft];
};

const useMissingText = type => {
  let missingText = '';

  switch (type) {
    case 'post':
      /* translators: label for missing post in navigation link block */
      missingText = (0,external_wp_i18n_namespaceObject.__)('Select post');
      break;

    case 'page':
      /* translators: label for missing page in navigation link block */
      missingText = (0,external_wp_i18n_namespaceObject.__)('Select page');
      break;

    case 'category':
      /* translators: label for missing category in navigation link block */
      missingText = (0,external_wp_i18n_namespaceObject.__)('Select category');
      break;

    case 'tag':
      /* translators: label for missing tag in navigation link block */
      missingText = (0,external_wp_i18n_namespaceObject.__)('Select tag');
      break;

    default:
      /* translators: label for missing values in navigation link block */
      missingText = (0,external_wp_i18n_namespaceObject.__)('Add link');
  }

  return missingText;
};
/**
 * Removes HTML from a given string.
 * Note the does not provide XSS protection or otherwise attempt
 * to filter strings with malicious intent.
 *
 * See also: https://github.com/WordPress/gutenberg/pull/35539
 *
 * @param {string} html the string from which HTML should be removed.
 * @return {string} the "cleaned" string.
 */


function navStripHTML(html) {
  const doc = document.implementation.createHTMLDocument('');
  doc.body.innerHTML = html;
  return doc.body.textContent || '';
}
/**
 * Add transforms to Link Control
 */


function LinkControlTransforms(_ref) {
  let {
    clientId,
    replace
  } = _ref;
  const {
    getBlock,
    blockTransforms
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlock: _getBlock,
      getBlockRootClientId,
      getBlockTransformItems
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      getBlock: _getBlock,
      blockTransforms: getBlockTransformItems([_getBlock(clientId)], getBlockRootClientId(clientId))
    };
  }, [clientId]);
  const featuredBlocks = ['core/site-logo', 'core/social-links', 'core/search'];
  const transforms = blockTransforms.filter(item => {
    return featuredBlocks.includes(item.name);
  });

  if (!(transforms !== null && transforms !== void 0 && transforms.length)) {
    return null;
  }

  return (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "link-control-transform"
  }, (0,external_wp_element_namespaceObject.createElement)("h3", {
    className: "link-control-transform__subheading"
  }, (0,external_wp_i18n_namespaceObject.__)('Transform')), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "link-control-transform__items"
  }, transforms.map((item, index) => {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
      key: `transform-${index}`,
      onClick: () => replace(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), item.name)),
      className: "link-control-transform__item"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: item.icon
    }), item.title);
  })));
}

function NavigationLinkEdit(_ref2) {
  let {
    attributes,
    isSelected,
    setAttributes,
    insertBlocksAfter,
    mergeBlocks,
    onReplace,
    context,
    clientId
  } = _ref2;
  const {
    id,
    label,
    type,
    opensInNewTab,
    url,
    description,
    rel,
    title,
    kind
  } = attributes;
  const [isInvalid, isDraft] = useIsInvalidLink(kind, type, id);
  const {
    maxNestingLevel
  } = context;
  const link = {
    url,
    opensInNewTab,
    title: label && navStripHTML(label) // don't allow HTML to display inside the <LinkControl>

  };
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    replaceBlock,
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
  const isDraggingWithin = useIsDraggingWithin(listItemRef);

  const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add link…');

  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const {
    innerBlocks,
    isAtMaxNesting,
    isTopLevelLink,
    isParentOfSelectedBlock,
    hasChildren,
    userCanCreatePages,
    userCanCreatePosts
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlocks,
      getBlockCount,
      getBlockName,
      getBlockRootClientId,
      hasSelectedInnerBlock,
      getBlockParentsByBlockName
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      innerBlocks: getBlocks(clientId),
      isAtMaxNesting: getBlockParentsByBlockName(clientId, [edit_name, 'core/navigation-submenu']).length >= maxNestingLevel,
      isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation',
      isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
      hasChildren: !!getBlockCount(clientId),
      userCanCreatePages: select(external_wp_coreData_namespaceObject.store).canUser('create', 'pages'),
      userCanCreatePosts: select(external_wp_coreData_namespaceObject.store).canUser('create', 'posts')
    };
  }, [clientId]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // This side-effect should not create an undo level as those should
    // only be created via user interactions. Mark this change as
    // not persistent to avoid undo level creation.
    // See https://github.com/WordPress/gutenberg/issues/34564.
    __unstableMarkNextChangeAsNotPersistent();

    setAttributes({
      isTopLevelLink
    });
  }, [isTopLevelLink]);
  /**
   * Transform to submenu block.
   */

  function transformToSubmenu() {
    const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
    replaceBlock(clientId, newSubmenu);
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Show the LinkControl on mount if the URL is empty
    // ( When adding a new menu item)
    // This can't be done in the useState call because it conflicts
    // with the autofocus behavior of the BlockListBlock component.
    if (!url) {
      setIsLinkOpen(true);
    } // If block has inner blocks, transform to Submenu.


    if (hasChildren) {
      transformToSubmenu();
    }
  }, []);
  /**
   * The hook shouldn't be necessary but due to a focus loss happening
   * when selecting a suggestion in the link popover, we force close on block unselection.
   */

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setIsLinkOpen(false);
    }
  }, [isSelected]); // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isLinkOpen && url) {
      // Does this look like a URL and have something TLD-ish?
      if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
        // Focus and select the label text.
        selectLabelText();
      } else {
        // Focus it (but do not select).
        (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(ref.current, true);
      }
    }
  }, [url]);
  /**
   * Focus the Link label text and select it.
   */

  function selectLabelText() {
    ref.current.focus();
    const {
      ownerDocument
    } = ref.current;
    const {
      defaultView
    } = ownerDocument;
    const selection = defaultView.getSelection();
    const range = ownerDocument.createRange(); // Get the range of the current ref contents so we can add this range to the selection.

    range.selectNodeContents(ref.current);
    selection.removeAllRanges();
    selection.addRange(range);
  }
  /**
   * Removes the current link if set.
   */


  function removeLink() {
    // Reset all attributes that comprise the link.
    setAttributes({
      url: '',
      label: '',
      id: '',
      kind: '',
      type: ''
    }); // Close the link editing UI.

    setIsLinkOpen(false);
  }

  let userCanCreate = false;

  if (!type || type === 'page') {
    userCanCreate = userCanCreatePages;
  } else if (type === 'post') {
    userCanCreate = userCanCreatePosts;
  }

  async function handleCreate(pageTitle) {
    const postType = type || 'page';
    const page = await saveEntityRecord('postType', postType, {
      title: pageTitle,
      status: 'draft'
    });
    return {
      id: page.id,
      type: postType,
      title: page.title.rendered,
      url: page.link,
      kind: 'post-type'
    };
  }

  const {
    textColor,
    customTextColor,
    backgroundColor,
    customBackgroundColor
  } = getColors(context, !isTopLevelLink);

  function onKeyDown(event) {
    if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k') || !url && event.keyCode === external_wp_keycodes_namespaceObject.ENTER) {
      setIsLinkOpen(true);
    }
  }

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref: listItemRef,
    className: classnames_default()('wp-block-navigation-item', {
      'is-editing': isSelected || isParentOfSelectedBlock,
      'is-dragging-within': isDraggingWithin,
      'has-link': !!url,
      'has-child': hasChildren,
      'has-text-color': !!textColor || !!customTextColor,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
      'has-background': !!backgroundColor || customBackgroundColor,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor
    }),
    style: {
      color: !textColor && customTextColor,
      backgroundColor: !backgroundColor && customBackgroundColor
    },
    onKeyDown
  });

  if (!url || isInvalid || isDraft) {
    blockProps.onClick = () => setIsLinkOpen(true);
  }

  const classes = classnames_default()('wp-block-navigation-item__content', {
    'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft
  });
  const missingText = useMissingText(type, isInvalid, isDraft);
  /* translators: Whether the navigation link is Invalid or a Draft. */

  const placeholderText = `(${isInvalid ? (0,external_wp_i18n_namespaceObject.__)('Invalid') : (0,external_wp_i18n_namespaceObject.__)('Draft')})`;
  const tooltipText = isInvalid || isDraft ? (0,external_wp_i18n_namespaceObject.__)('This item has been deleted, or is a draft') : (0,external_wp_i18n_namespaceObject.__)('This item is missing a link');
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    name: "link",
    icon: library_link,
    title: (0,external_wp_i18n_namespaceObject.__)('Link'),
    shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
    onClick: () => setIsLinkOpen(true)
  }), !isAtMaxNesting && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    name: "submenu",
    icon: add_submenu,
    title: (0,external_wp_i18n_namespaceObject.__)('Add submenu'),
    onClick: transformToSubmenu
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
    value: description || '',
    onChange: descriptionValue => {
      setAttributes({
        description: descriptionValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Description'),
    help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    value: title || '',
    onChange: titleValue => {
      setAttributes({
        title: titleValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Link title'),
    autoComplete: "off"
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    value: rel || '',
    onChange: relValue => {
      setAttributes({
        rel: relValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
    autoComplete: "off"
  }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
    className: classes
  }, !url ? (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation-link__placeholder-text"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, {
    position: "top center",
    text: tooltipText
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", null, missingText), (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "wp-block-navigation-link__missing_text-tooltip"
  }, tooltipText)))) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !isInvalid && !isDraft && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    ref: ref,
    identifier: "label",
    className: "wp-block-navigation-item__label",
    value: label,
    onChange: labelValue => setAttributes({
      label: labelValue
    }),
    onMerge: mergeBlocks,
    onReplace: onReplace,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')),
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
    placeholder: itemLabelPlaceholder,
    withoutInteractiveFormatting: true,
    allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'],
    onClick: () => {
      if (!url) {
        setIsLinkOpen(true);
      }
    }
  }), description && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "wp-block-navigation-item__description"
  }, description)), (isInvalid || isDraft) && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-navigation-link__placeholder-text wp-block-navigation-link__label"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.KeyboardShortcuts, {
    shortcuts: {
      enter: () => isSelected && setIsLinkOpen(true)
    }
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, {
    position: "top center",
    text: tooltipText
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", null,
  /* Trim to avoid trailing white space when the placeholder text is not present */
  `${label} ${placeholderText}`.trim()), (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "wp-block-navigation-link__missing_text-tooltip"
  }, tooltipText))))), isLinkOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
    position: "bottom center",
    onClose: () => setIsLinkOpen(false),
    anchorRef: listItemRef.current
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
    hasTextControl: true,
    hasRichPreviews: true,
    className: "wp-block-navigation-link__inline-link-input",
    value: link,
    showInitialSuggestions: true,
    withCreateSuggestion: userCanCreate,
    createSuggestion: handleCreate,
    createSuggestionButtonText: searchTerm => {
      let format;

      if (type === 'post') {
        /* translators: %s: search term. */
        format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
      } else {
        /* translators: %s: search term. */
        format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
      }

      return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
        mark: (0,external_wp_element_namespaceObject.createElement)("mark", null)
      });
    },
    noDirectEntry: !!type,
    noURLSuggestion: !!type,
    suggestionsQuery: getSuggestionsQuery(type, kind),
    onChange: updatedValue => updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes),
    onRemove: removeLink,
    renderControlBottom: !url ? () => (0,external_wp_element_namespaceObject.createElement)(LinkControlTransforms, {
      clientId: clientId,
      replace: replaceBlock
    }) : null
  })))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/save.js


/**
 * WordPress dependencies
 */

function navigation_link_save_save() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-title.js


/**
 * WordPress dependencies
 */

const postTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 14.5h16V16H4zM4 18.5h9V20H4zM4 4h3c2 0 3 .86 3 2.583 0 .891-.253 1.554-.76 1.988-.505.435-1.24.652-2.204.652H5.542V12H4V4zm2.855 4c.53 0 .924-.114 1.18-.343.266-.228.398-.579.398-1.051 0-.473-.132-.82-.397-1.04-.265-.229-.67-.343-1.217-.343H5.542V8h1.313z"
}));
/* harmony default export */ var post_title = (postTitle);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js


/**
 * WordPress dependencies
 */

const page = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M7 5.5h10a.5.5 0 01.5.5v12a.5.5 0 01-.5.5H7a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM17 4H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2zm-1 3.75H8v1.5h8v-1.5zM8 11h8v1.5H8V11zm6 3.25H8v1.5h6v-1.5z"
}));
/* harmony default export */ var library_page = (page);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js


/**
 * WordPress dependencies
 */

const tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20.1 11.2l-6.7-6.7c-.1-.1-.3-.2-.5-.2H5c-.4-.1-.8.3-.8.7v7.8c0 .2.1.4.2.5l6.7 6.7c.2.2.5.4.7.5s.6.2.9.2c.3 0 .6-.1.9-.2.3-.1.5-.3.8-.5l5.6-5.6c.4-.4.7-1 .7-1.6.1-.6-.2-1.2-.6-1.6zM19 13.4L13.4 19c-.1.1-.2.1-.3.2-.2.1-.4.1-.6 0-.1 0-.2-.1-.3-.2l-6.5-6.5V5.8h6.8l6.5 6.5c.2.2.2.4.2.6 0 .1 0 .3-.2.5zM9 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z"
}));
/* harmony default export */ var library_tag = (tag);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-post-type.js


/**
 * WordPress dependencies
 */

const customPostType = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4zm.8-4l.7.7 2-2V12h1V9.2l2 2 .7-.7-2-2H12v-1H9.2l2-2-.7-.7-2 2V4h-1v2.8l-2-2-.7.7 2 2H4v1h2.8l-2 2z"
}));
/* harmony default export */ var custom_post_type = (customPostType);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/fallback-variations.js
/**
 * WordPress dependencies
 */

 // FALLBACK: this is only used when the server does not understand the variations property in the
// register_block_type call. see navigation-link/index.php.
// Delete this file when supported WP ranges understand the `variations` property when passed to
// register_block_type in index.php.

const fallbackVariations = [{
  name: 'link',
  isDefault: true,
  title: (0,external_wp_i18n_namespaceObject.__)('Custom Link'),
  description: (0,external_wp_i18n_namespaceObject.__)('A link to a custom URL.'),
  attributes: {}
}, {
  name: 'post',
  icon: post_title,
  title: (0,external_wp_i18n_namespaceObject.__)('Post Link'),
  description: (0,external_wp_i18n_namespaceObject.__)('A link to a post.'),
  attributes: {
    type: 'post',
    kind: 'post-type'
  }
}, {
  name: 'page',
  icon: library_page,
  title: (0,external_wp_i18n_namespaceObject.__)('Page Link'),
  description: (0,external_wp_i18n_namespaceObject.__)('A link to a page.'),
  attributes: {
    type: 'page',
    kind: 'post-type'
  }
}, {
  name: 'category',
  icon: library_category,
  title: (0,external_wp_i18n_namespaceObject.__)('Category Link'),
  description: (0,external_wp_i18n_namespaceObject.__)('A link to a category.'),
  attributes: {
    type: 'category',
    kind: 'taxonomy'
  }
}, {
  name: 'tag',
  icon: library_tag,
  title: (0,external_wp_i18n_namespaceObject.__)('Tag Link'),
  description: (0,external_wp_i18n_namespaceObject.__)('A link to a tag.'),
  attributes: {
    type: 'tag',
    kind: 'taxonomy'
  }
}];
/**
 * Add `isActive` function to all `navigation link` variations, if not defined.
 * `isActive` function is used to find a variation match from a created
 *  Block by providing its attributes.
 */

fallbackVariations.forEach(variation => {
  if (variation.isActive) return;

  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
});
/* harmony default export */ var fallback_variations = (fallbackVariations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/hooks.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



function getIcon(variationName) {
  switch (variationName) {
    case 'post':
      return post_title;

    case 'page':
      return library_page;

    case 'tag':
      return library_tag;

    case 'category':
      return library_category;

    default:
      return custom_post_type;
  }
}

function enhanceNavigationLinkVariations(settings, name) {
  if (name !== 'core/navigation-link') {
    return settings;
  } // Fallback handling may be deleted after supported WP ranges understand the `variations`
  // property when passed to register_block_type in index.php.


  if (!settings.variations) {
    return { ...settings,
      variations: fallback_variations
    };
  } // Otherwise decorate server passed variations with an icon and isActive function.


  if (settings.variations) {
    const isActive = (blockAttributes, variationAttributes) => {
      return blockAttributes.type === variationAttributes.type;
    };

    const variations = settings.variations.map(variation => {
      return { ...variation,
        ...(!variation.icon && {
          icon: getIcon(variation.name)
        }),
        ...(!variation.isActive && {
          isActive
        })
      };
    });
    return { ...settings,
      variations
    };
  }

  return settings;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/transforms.js
/**
 * WordPress dependencies
 */

const navigation_link_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/site-logo'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
    }
  }, {
    type: 'block',
    blocks: ['core/spacer'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
    }
  }, {
    type: 'block',
    blocks: ['core/home-link'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
    }
  }, {
    type: 'block',
    blocks: ['core/social-links'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
    }
  }, {
    type: 'block',
    blocks: ['core/search'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/navigation-submenu'],
    transform: (attributes, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks)
  }, {
    type: 'block',
    blocks: ['core/spacer'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
    }
  }, {
    type: 'block',
    blocks: ['core/site-logo'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
    }
  }, {
    type: 'block',
    blocks: ['core/home-link'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
    }
  }, {
    type: 'block',
    blocks: ['core/social-links'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
    }
  }, {
    type: 'block',
    blocks: ['core/search'],
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/search', {
        showLabel: false,
        buttonUseIcon: true,
        buttonPosition: 'button-inside'
      });
    }
  }]
};
/* harmony default export */ var navigation_link_transforms = (navigation_link_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

const navigation_link_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/navigation-link",
  title: "Custom Link",
  category: "design",
  parent: ["core/navigation"],
  description: "Add a page, link, or another item to your navigation.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    },
    type: {
      type: "string"
    },
    description: {
      type: "string"
    },
    rel: {
      type: "string"
    },
    id: {
      type: "number"
    },
    opensInNewTab: {
      type: "boolean",
      "default": false
    },
    url: {
      type: "string"
    },
    title: {
      type: "string"
    },
    kind: {
      type: "string"
    },
    isTopLevelLink: {
      type: "boolean"
    }
  },
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
  supports: {
    reusable: false,
    html: false,
    __experimentalSlashInserter: true
  },
  editorStyle: "wp-block-navigation-link-editor",
  style: "wp-block-navigation-link"
};




const {
  name: navigation_link_name
} = navigation_link_metadata;

const navigation_link_settings = {
  icon: custom_link,
  __experimentalLabel: _ref => {
    let {
      label
    } = _ref;
    return label;
  },

  merge(leftAttributes, _ref2) {
    let {
      label: rightLabel = ''
    } = _ref2;
    return { ...leftAttributes,
      label: leftAttributes.label + rightLabel
    };
  },

  edit: NavigationLinkEdit,
  save: navigation_link_save_save,
  example: {
    attributes: {
      label: (0,external_wp_i18n_namespaceObject._x)('Example Link', 'navigation link preview example'),
      url: 'https://example.com'
    }
  },
  deprecated: [{
    isEligible(attributes) {
      return attributes.nofollow;
    },

    attributes: {
      label: {
        type: 'string'
      },
      type: {
        type: 'string'
      },
      nofollow: {
        type: 'boolean'
      },
      description: {
        type: 'string'
      },
      id: {
        type: 'number'
      },
      opensInNewTab: {
        type: 'boolean',
        default: false
      },
      url: {
        type: 'string'
      }
    },

    migrate(_ref3) {
      let {
        nofollow,
        ...rest
      } = _ref3;
      return {
        rel: nofollow ? 'nofollow' : '',
        ...rest
      };
    },

    save() {
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
    }

  }],
  transforms: navigation_link_transforms
}; // importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects

(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/remove-submenu.js


/**
 * WordPress dependencies
 */

const removeSubmenu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  fillRule: "evenodd",
  clipRule: "evenodd",
  d: "m13.955 20.748 8-17.5-.91-.416L19.597 6H13.5v1.5h5.411l-1.6 3.5H13.5v1.5h3.126l-1.6 3.5H13.5l.028 1.5h.812l-1.295 2.832.91.416ZM17.675 16l-.686 1.5h4.539L21.5 16h-3.825Zm2.286-5-.686 1.5H21.5V11h-1.54ZM2 12c0 3.58 2.42 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.48 0-4.5-1.52-4.5-4S5.52 7.5 8 7.5h3.5V6H8c-3.58 0-6 2.42-6 6Z"
}));
/* harmony default export */ var remove_submenu = (removeSubmenu);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/icons.js


/**
 * WordPress dependencies
 */

const ItemSubmenuIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  width: "12",
  height: "12",
  viewBox: "0 0 12 12",
  fill: "none"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M1.50002 4L6.00002 8L10.5 4",
  strokeWidth: "1.5"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */













/**
 * Internal dependencies
 */


const {
  name: navigation_submenu_edit_name
} = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/navigation-submenu",
  title: "Submenu",
  category: "design",
  parent: ["core/navigation"],
  description: "Add a submenu to your navigation.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    },
    type: {
      type: "string"
    },
    description: {
      type: "string"
    },
    rel: {
      type: "string"
    },
    id: {
      type: "number"
    },
    opensInNewTab: {
      type: "boolean",
      "default": false
    },
    url: {
      type: "string"
    },
    title: {
      type: "string"
    },
    kind: {
      type: "string"
    },
    isTopLevelItem: {
      type: "boolean"
    }
  },
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
  supports: {
    reusable: false,
    html: false
  },
  editorStyle: "wp-block-navigation-submenu-editor",
  style: "wp-block-navigation-submenu"
};
const navigation_submenu_edit_ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu'];
const edit_DEFAULT_BLOCK = {
  name: 'core/navigation-link'
};
/**
 * A React hook to determine if it's dragging within the target element.
 *
 * @typedef {import('@wordpress/element').RefObject} RefObject
 *
 * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
 *
 * @return {boolean} Is dragging within the target element.
 */

const edit_useIsDraggingWithin = elementRef => {
  const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      ownerDocument
    } = elementRef.current;

    function handleDragStart(event) {
      // Check the first time when the dragging starts.
      handleDragEnter(event);
    } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.


    function handleDragEnd() {
      setIsDraggingWithin(false);
    }

    function handleDragEnter(event) {
      // Check if the current target is inside the item element.
      if (elementRef.current.contains(event.target)) {
        setIsDraggingWithin(true);
      } else {
        setIsDraggingWithin(false);
      }
    } // Bind these events to the document to catch all drag events.
    // Ideally, we can also use `event.relatedTarget`, but sadly that
    // doesn't work in Safari.


    ownerDocument.addEventListener('dragstart', handleDragStart);
    ownerDocument.addEventListener('dragend', handleDragEnd);
    ownerDocument.addEventListener('dragenter', handleDragEnter);
    return () => {
      ownerDocument.removeEventListener('dragstart', handleDragStart);
      ownerDocument.removeEventListener('dragend', handleDragEnd);
      ownerDocument.removeEventListener('dragenter', handleDragEnter);
    };
  }, []);
  return isDraggingWithin;
};
/**
 * Given the Link block's type attribute, return the query params to give to
 * /wp/v2/search.
 *
 * @param {string} type Link block's type attribute.
 * @param {string} kind Link block's entity of kind (post-type|taxonomy)
 * @return {{ type?: string, subtype?: string }} Search query params.
 */


function edit_getSuggestionsQuery(type, kind) {
  switch (type) {
    case 'post':
    case 'page':
      return {
        type: 'post',
        subtype: type
      };

    case 'category':
      return {
        type: 'term',
        subtype: 'category'
      };

    case 'tag':
      return {
        type: 'term',
        subtype: 'post_tag'
      };

    case 'post_format':
      return {
        type: 'post-format'
      };

    default:
      if (kind === 'taxonomy') {
        return {
          type: 'term',
          subtype: type
        };
      }

      if (kind === 'post-type') {
        return {
          type: 'post',
          subtype: type
        };
      }

      return {};
  }
}
/**
 * Determine the colors for a menu.
 *
 * Order of priority is:
 * 1: Overlay custom colors (if submenu)
 * 2: Overlay theme colors (if submenu)
 * 3: Custom colors
 * 4: Theme colors
 * 5: Global styles
 *
 * @param {Object}  context
 * @param {boolean} isSubMenu
 */


function edit_getColors(context, isSubMenu) {
  var _style$color, _style$color2;

  const {
    textColor,
    customTextColor,
    backgroundColor,
    customBackgroundColor,
    overlayTextColor,
    customOverlayTextColor,
    overlayBackgroundColor,
    customOverlayBackgroundColor,
    style
  } = context;
  const colors = {};

  if (isSubMenu && !!customOverlayTextColor) {
    colors.customTextColor = customOverlayTextColor;
  } else if (isSubMenu && !!overlayTextColor) {
    colors.textColor = overlayTextColor;
  } else if (!!customTextColor) {
    colors.customTextColor = customTextColor;
  } else if (!!textColor) {
    colors.textColor = textColor;
  } else if (!!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text)) {
    colors.customTextColor = style.color.text;
  }

  if (isSubMenu && !!customOverlayBackgroundColor) {
    colors.customBackgroundColor = customOverlayBackgroundColor;
  } else if (isSubMenu && !!overlayBackgroundColor) {
    colors.backgroundColor = overlayBackgroundColor;
  } else if (!!customBackgroundColor) {
    colors.customBackgroundColor = customBackgroundColor;
  } else if (!!backgroundColor) {
    colors.backgroundColor = backgroundColor;
  } else if (!!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background)) {
    colors.customTextColor = style.color.background;
  }

  return colors;
}
/**
 * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
 */

/**
 * Navigation Link Block Attributes
 *
 * @typedef {Object} WPNavigationLinkBlockAttributes
 *
 * @property {string}               [label]         Link text.
 * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
 * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
 * @property {string}               [rel]           The relationship of the linked URL.
 * @property {number}               [id]            A post or term id.
 * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
 * @property {string}               [url]           Link href.
 * @property {string}               [title]         Link title attribute.
 */

/**
 * Link Control onChange handler that updates block attributes when a setting is changed.
 *
 * @param {Object}                          updatedValue    New block attributes to update.
 * @param {Function}                        setAttributes   Block attribute update function.
 * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
 *
 */


const edit_updateNavigationLinkBlockAttributes = function () {
  let updatedValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  let setAttributes = arguments.length > 1 ? arguments[1] : undefined;
  let blockAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  const {
    label: originalLabel = '',
    kind: originalKind = '',
    type: originalType = ''
  } = blockAttributes;
  const {
    title = '',
    url = '',
    opensInNewTab,
    id,
    kind: newKind = originalKind,
    type: newType = originalType
  } = updatedValue;
  const normalizedTitle = title.replace(/http(s?):\/\//gi, '');
  const normalizedURL = url.replace(/http(s?):\/\//gi, '');
  const escapeTitle = title !== '' && normalizedTitle !== normalizedURL && originalLabel !== title;
  const label = escapeTitle ? (0,external_lodash_namespaceObject.escape)(title) : originalLabel || (0,external_lodash_namespaceObject.escape)(normalizedURL); // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"

  const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
  const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
  const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
  const kind = isCustomLink ? 'custom' : newKind;
  setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
    ...(url && {
      url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(url))
    }),
    ...(label && {
      label
    }),
    ...(undefined !== opensInNewTab && {
      opensInNewTab
    }),
    ...(id && Number.isInteger(id) && {
      id
    }),
    ...(kind && {
      kind
    }),
    ...(type && type !== 'URL' && {
      type
    })
  });
};
function NavigationSubmenuEdit(_ref) {
  let {
    attributes,
    isSelected,
    setAttributes,
    mergeBlocks,
    onReplace,
    context,
    clientId
  } = _ref;
  const {
    label,
    type,
    opensInNewTab,
    url,
    description,
    rel,
    title,
    kind
  } = attributes;
  const link = {
    url,
    opensInNewTab
  };
  const {
    showSubmenuIcon,
    maxNestingLevel,
    openSubmenusOnClick
  } = context;
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    __unstableMarkNextChangeAsNotPersistent,
    replaceBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
  const isDraggingWithin = edit_useIsDraggingWithin(listItemRef);

  const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add text…');

  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const {
    isAtMaxNesting,
    isTopLevelItem,
    isParentOfSelectedBlock,
    isImmediateParentOfSelectedBlock,
    hasChildren,
    selectedBlockHasChildren,
    userCanCreatePages,
    userCanCreatePosts,
    onlyDescendantIsEmptyLink
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      hasSelectedInnerBlock,
      getSelectedBlockClientId,
      getBlockParentsByBlockName,
      getBlock,
      getBlockCount,
      getBlockOrder
    } = select(external_wp_blockEditor_namespaceObject.store);

    let _onlyDescendantIsEmptyLink;

    const selectedBlockId = getSelectedBlockClientId();
    const selectedBlockChildren = getBlockOrder(selectedBlockId); // Check for a single descendant in the submenu. If that block
    // is a link block in a "placeholder" state with no label then
    // we can consider as an "empty" link.

    if ((selectedBlockChildren === null || selectedBlockChildren === void 0 ? void 0 : selectedBlockChildren.length) === 1) {
      var _singleBlock$attribut;

      const singleBlock = getBlock(selectedBlockChildren[0]);
      _onlyDescendantIsEmptyLink = (singleBlock === null || singleBlock === void 0 ? void 0 : singleBlock.name) === 'core/navigation-link' && !(singleBlock !== null && singleBlock !== void 0 && (_singleBlock$attribut = singleBlock.attributes) !== null && _singleBlock$attribut !== void 0 && _singleBlock$attribut.label);
    }

    return {
      isAtMaxNesting: getBlockParentsByBlockName(clientId, navigation_submenu_edit_name).length >= maxNestingLevel,
      isTopLevelItem: getBlockParentsByBlockName(clientId, navigation_submenu_edit_name).length === 0,
      isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
      isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
      hasChildren: !!getBlockCount(clientId),
      selectedBlockHasChildren: !!(selectedBlockChildren !== null && selectedBlockChildren !== void 0 && selectedBlockChildren.length),
      userCanCreatePages: select(external_wp_coreData_namespaceObject.store).canUser('create', 'pages'),
      userCanCreatePosts: select(external_wp_coreData_namespaceObject.store).canUser('create', 'posts'),
      onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink
    };
  }, [clientId]); // Show the LinkControl on mount if the URL is empty
  // ( When adding a new menu item)
  // This can't be done in the useState call because it conflicts
  // with the autofocus behavior of the BlockListBlock component.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!openSubmenusOnClick && !url) {
      setIsLinkOpen(true);
    }
  }, []); // Store the colors from context as attributes for rendering.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // This side-effect should not create an undo level as those should
    // only be created via user interactions. Mark this change as
    // not persistent to avoid undo level creation.
    // See https://github.com/WordPress/gutenberg/issues/34564.
    __unstableMarkNextChangeAsNotPersistent();

    setAttributes({
      isTopLevelItem
    });
  }, [isTopLevelItem]);
  /**
   * The hook shouldn't be necessary but due to a focus loss happening
   * when selecting a suggestion in the link popover, we force close on block unselection.
   */

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setIsLinkOpen(false);
    }
  }, [isSelected]); // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isLinkOpen && url) {
      // Does this look like a URL and have something TLD-ish?
      if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
        // Focus and select the label text.
        selectLabelText();
      } else {
        // Focus it (but do not select).
        (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(ref.current, true);
      }
    }
  }, [url]);
  /**
   * Focus the Link label text and select it.
   */

  function selectLabelText() {
    ref.current.focus();
    const {
      ownerDocument
    } = ref.current;
    const {
      defaultView
    } = ownerDocument;
    const selection = defaultView.getSelection();
    const range = ownerDocument.createRange(); // Get the range of the current ref contents so we can add this range to the selection.

    range.selectNodeContents(ref.current);
    selection.removeAllRanges();
    selection.addRange(range);
  }

  let userCanCreate = false;

  if (!type || type === 'page') {
    userCanCreate = userCanCreatePages;
  } else if (type === 'post') {
    userCanCreate = userCanCreatePosts;
  }

  async function handleCreate(pageTitle) {
    const postType = type || 'page';
    const page = await saveEntityRecord('postType', postType, {
      title: pageTitle,
      status: 'draft'
    });
    return {
      id: page.id,
      type: postType,
      title: page.title.rendered,
      url: page.link,
      kind: 'post-type'
    };
  }

  const {
    textColor,
    customTextColor,
    backgroundColor,
    customBackgroundColor
  } = edit_getColors(context, !isTopLevelItem);

  function onKeyDown(event) {
    if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
      setIsLinkOpen(true);
    }
  }

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref: listItemRef,
    className: classnames_default()('wp-block-navigation-item', {
      'is-editing': isSelected || isParentOfSelectedBlock,
      'is-dragging-within': isDraggingWithin,
      'has-link': !!url,
      'has-child': hasChildren,
      'has-text-color': !!textColor || !!customTextColor,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
      'has-background': !!backgroundColor || customBackgroundColor,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor,
      'open-on-click': openSubmenusOnClick
    }),
    style: {
      color: !textColor && customTextColor,
      backgroundColor: !backgroundColor && customBackgroundColor
    },
    onKeyDown
  }); // Always use overlay colors for submenus.

  const innerBlocksColors = edit_getColors(context, true);
  const allowedBlocks = isAtMaxNesting ? (0,external_lodash_namespaceObject.without)(navigation_submenu_edit_ALLOWED_BLOCKS, 'core/navigation-submenu') : navigation_submenu_edit_ALLOWED_BLOCKS;
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
    className: classnames_default()('wp-block-navigation__submenu-container', {
      'is-parent-of-selected-block': isParentOfSelectedBlock,
      'has-text-color': !!(innerBlocksColors.textColor || innerBlocksColors.customTextColor),
      [`has-${innerBlocksColors.textColor}-color`]: !!innerBlocksColors.textColor,
      'has-background': !!(innerBlocksColors.backgroundColor || innerBlocksColors.customBackgroundColor),
      [`has-${innerBlocksColors.backgroundColor}-background-color`]: !!innerBlocksColors.backgroundColor
    }),
    style: {
      color: innerBlocksColors.customTextColor,
      backgroundColor: innerBlocksColors.customBackgroundColor
    }
  }, {
    allowedBlocks,
    __experimentalDefaultBlock: edit_DEFAULT_BLOCK,
    __experimentalDirectInsert: true,
    // Ensure block toolbar is not too far removed from item
    // being edited.
    // see: https://github.com/WordPress/gutenberg/pull/34615.
    __experimentalCaptureToolbars: true,
    renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender.
    hasChildren ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false
  });
  const ParentElement = openSubmenusOnClick ? 'button' : 'a';

  function transformToLink() {
    const newLinkBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes);
    replaceBlock(clientId, newLinkBlock);
  }

  const canConvertToLink = !selectedBlockHasChildren || onlyDescendantIsEmptyLink;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, !openSubmenusOnClick && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    name: "link",
    icon: library_link,
    title: (0,external_wp_i18n_namespaceObject.__)('Link'),
    shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
    onClick: () => setIsLinkOpen(true)
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    name: "revert",
    icon: remove_submenu,
    title: (0,external_wp_i18n_namespaceObject.__)('Convert to Link'),
    onClick: transformToLink,
    className: "wp-block-navigation__submenu__revert",
    isDisabled: !canConvertToLink
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
    value: description || '',
    onChange: descriptionValue => {
      setAttributes({
        description: descriptionValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Description'),
    help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    value: title || '',
    onChange: titleValue => {
      setAttributes({
        title: titleValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Link title'),
    autoComplete: "off"
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    value: rel || '',
    onChange: relValue => {
      setAttributes({
        rel: relValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
    autoComplete: "off"
  }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(ParentElement, {
    className: "wp-block-navigation-item__content"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    ref: ref,
    identifier: "label",
    className: "wp-block-navigation-item__label",
    value: label,
    onChange: labelValue => setAttributes({
      label: labelValue
    }),
    onMerge: mergeBlocks,
    onReplace: onReplace,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
    placeholder: itemLabelPlaceholder,
    withoutInteractiveFormatting: true,
    allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'],
    onClick: () => {
      if (!openSubmenusOnClick && !url) {
        setIsLinkOpen(true);
      }
    }
  }), !openSubmenusOnClick && isLinkOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
    position: "bottom center",
    onClose: () => setIsLinkOpen(false),
    anchorRef: listItemRef.current
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
    className: "wp-block-navigation-link__inline-link-input",
    value: link,
    showInitialSuggestions: true,
    withCreateSuggestion: userCanCreate,
    createSuggestion: handleCreate,
    createSuggestionButtonText: searchTerm => {
      let format;

      if (type === 'post') {
        /* translators: %s: search term. */
        format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
      } else {
        /* translators: %s: search term. */
        format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
      }

      return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
        mark: (0,external_wp_element_namespaceObject.createElement)("mark", null)
      });
    },
    noDirectEntry: !!type,
    noURLSuggestion: !!type,
    suggestionsQuery: edit_getSuggestionsQuery(type, kind),
    onChange: updatedValue => edit_updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes),
    onRemove: () => {
      setAttributes({
        url: ''
      });
      (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
    }
  }))), (showSubmenuIcon || openSubmenusOnClick) && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "wp-block-navigation__submenu-icon"
  }, (0,external_wp_element_namespaceObject.createElement)(ItemSubmenuIcon, null)), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/save.js


/**
 * WordPress dependencies
 */

function navigation_submenu_save_save() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/transforms.js
/**
 * WordPress dependencies
 */

const navigation_submenu_transforms_transforms = {
  to: [{
    type: 'block',
    blocks: ['core/navigation-link'],
    isMatch: (attributes, block) => {
      var _block$innerBlocks;

      return (block === null || block === void 0 ? void 0 : (_block$innerBlocks = block.innerBlocks) === null || _block$innerBlocks === void 0 ? void 0 : _block$innerBlocks.length) === 0;
    },
    transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes)
  }, {
    type: 'block',
    blocks: ['core/spacer'],
    isMatch: (attributes, block) => {
      var _block$innerBlocks2;

      return (block === null || block === void 0 ? void 0 : (_block$innerBlocks2 = block.innerBlocks) === null || _block$innerBlocks2 === void 0 ? void 0 : _block$innerBlocks2.length) === 0;
    },
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
    }
  }, {
    type: 'block',
    blocks: ['core/site-logo'],
    isMatch: (attributes, block) => {
      var _block$innerBlocks3;

      return (block === null || block === void 0 ? void 0 : (_block$innerBlocks3 = block.innerBlocks) === null || _block$innerBlocks3 === void 0 ? void 0 : _block$innerBlocks3.length) === 0;
    },
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
    }
  }, {
    type: 'block',
    blocks: ['core/home-link'],
    isMatch: (attributes, block) => {
      var _block$innerBlocks4;

      return (block === null || block === void 0 ? void 0 : (_block$innerBlocks4 = block.innerBlocks) === null || _block$innerBlocks4 === void 0 ? void 0 : _block$innerBlocks4.length) === 0;
    },
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
    }
  }, {
    type: 'block',
    blocks: ['core/social-links'],
    isMatch: (attributes, block) => {
      var _block$innerBlocks5;

      return (block === null || block === void 0 ? void 0 : (_block$innerBlocks5 = block.innerBlocks) === null || _block$innerBlocks5 === void 0 ? void 0 : _block$innerBlocks5.length) === 0;
    },
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
    }
  }, {
    type: 'block',
    blocks: ['core/search'],
    isMatch: (attributes, block) => {
      var _block$innerBlocks6;

      return (block === null || block === void 0 ? void 0 : (_block$innerBlocks6 = block.innerBlocks) === null || _block$innerBlocks6 === void 0 ? void 0 : _block$innerBlocks6.length) === 0;
    },
    transform: () => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/search');
    }
  }]
};
/* harmony default export */ var navigation_submenu_transforms = (navigation_submenu_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const navigation_submenu_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/navigation-submenu",
  title: "Submenu",
  category: "design",
  parent: ["core/navigation"],
  description: "Add a submenu to your navigation.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    },
    type: {
      type: "string"
    },
    description: {
      type: "string"
    },
    rel: {
      type: "string"
    },
    id: {
      type: "number"
    },
    opensInNewTab: {
      type: "boolean",
      "default": false
    },
    url: {
      type: "string"
    },
    title: {
      type: "string"
    },
    kind: {
      type: "string"
    },
    isTopLevelItem: {
      type: "boolean"
    }
  },
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
  supports: {
    reusable: false,
    html: false
  },
  editorStyle: "wp-block-navigation-submenu-editor",
  style: "wp-block-navigation-submenu"
};



const {
  name: navigation_submenu_name
} = navigation_submenu_metadata;

const navigation_submenu_settings = {
  icon: add_submenu,
  __experimentalLabel: _ref => {
    let {
      label
    } = _ref;
    return label;
  },
  edit: NavigationSubmenuEdit,
  save: navigation_submenu_save_save,
  transforms: navigation_submenu_transforms
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page-break.js


/**
 * WordPress dependencies
 */

const pageBreak = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M7.8 6c0-.7.6-1.2 1.2-1.2h6c.7 0 1.2.6 1.2 1.2v3h1.5V6c0-1.5-1.2-2.8-2.8-2.8H9C7.5 3.2 6.2 4.5 6.2 6v3h1.5V6zm8.4 11c0 .7-.6 1.2-1.2 1.2H9c-.7 0-1.2-.6-1.2-1.2v-3H6.2v3c0 1.5 1.2 2.8 2.8 2.8h6c1.5 0 2.8-1.2 2.8-2.8v-3h-1.5v3zM4 11v1h16v-1H4z"
}));
/* harmony default export */ var page_break = (pageBreak);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js


/**
 * WordPress dependencies
 */


function NextPageEdit() {
  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-nextpage"
  }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Page break'))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/save.js


/**
 * WordPress dependencies
 */

function nextpage_save_save() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, '<!--nextpage-->');
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js
/**
 * WordPress dependencies
 */

const nextpage_transforms_transforms = {
  from: [{
    type: 'raw',
    schema: {
      'wp-block': {
        attributes: ['data-block']
      }
    },
    isMatch: node => node.dataset && node.dataset.block === 'core/nextpage',

    transform() {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/nextpage', {});
    }

  }]
};
/* harmony default export */ var nextpage_transforms = (nextpage_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const nextpage_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/nextpage",
  title: "Page Break",
  category: "design",
  description: "Separate your content into a multi-page experience.",
  keywords: ["next page", "pagination"],
  parent: ["core/post-content"],
  textdomain: "default",
  supports: {
    customClassName: false,
    className: false,
    html: false
  },
  editorStyle: "wp-block-nextpage-editor"
};


const {
  name: nextpage_name
} = nextpage_metadata;

const nextpage_settings = {
  icon: page_break,
  example: {},
  transforms: nextpage_transforms,
  edit: NextPageEdit,
  save: nextpage_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/edit.js


/**
 * WordPress dependencies
 */




const PatternEdit = _ref => {
  let {
    attributes,
    clientId
  } = _ref;
  const selectedPattern = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
  const {
    replaceBlocks,
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); // Run this effect when the component loads.
  // This adds the Pattern's contents to the post.
  // This change won't be saved.
  // It will continue to pull from the pattern file unless changes are made to its respective template part.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (selectedPattern !== null && selectedPattern !== void 0 && selectedPattern.blocks) {
      __unstableMarkNextChangeAsNotPersistent();

      replaceBlocks(clientId, selectedPattern.blocks);
    }
  }, [selectedPattern === null || selectedPattern === void 0 ? void 0 : selectedPattern.blocks]);
  const props = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)("div", props);
};

/* harmony default export */ var pattern_edit = (PatternEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/index.js
/**
 * Internal dependencies
 */
const pattern_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/pattern",
  title: "Pattern",
  category: "theme",
  description: "Show a block pattern.",
  supports: {
    html: false,
    inserter: false
  },
  textdomain: "default",
  attributes: {
    slug: {
      type: "string"
    }
  }
};

const {
  name: pattern_name
} = pattern_metadata;

const pattern_settings = {
  edit: pattern_edit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pages.js


/**
 * WordPress dependencies
 */

const pages = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M7 13.8h6v-1.5H7v1.5zM18 16V4c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2zM5.5 16V4c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5zM7 10.5h8V9H7v1.5zm0-3.3h8V5.8H7v1.4zM20.2 6v13c0 .7-.6 1.2-1.2 1.2H8v1.5h11c1.5 0 2.7-1.2 2.7-2.8V6h-1.5z"
}));
/* harmony default export */ var library_pages = (pages);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/convert-to-links-modal.js


/**
 * WordPress dependencies
 */






const PAGE_FIELDS = ['id', 'title', 'link', 'type', 'parent'];
const MAX_PAGE_COUNT = 100;
const convertSelectedBlockToNavigationLinks = _ref => {
  let {
    pages,
    clientId,
    replaceBlock,
    createBlock
  } = _ref;
  return () => {
    if (!pages) {
      return;
    }

    const linkMap = {};
    const navigationLinks = [];
    pages.forEach(_ref2 => {
      var _linkMap$id$innerBloc, _linkMap$id;

      let {
        id,
        title,
        link: url,
        type,
        parent
      } = _ref2;
      // See if a placeholder exists. This is created if children appear before parents in list.
      const innerBlocks = (_linkMap$id$innerBloc = (_linkMap$id = linkMap[id]) === null || _linkMap$id === void 0 ? void 0 : _linkMap$id.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
      linkMap[id] = createBlock('core/navigation-link', {
        id,
        label: title.rendered,
        url,
        type,
        kind: 'post-type'
      }, innerBlocks);

      if (!parent) {
        navigationLinks.push(linkMap[id]);
      } else {
        if (!linkMap[parent]) {
          // Use a placeholder if the child appears before parent in list.
          linkMap[parent] = {
            innerBlocks: []
          };
        }

        const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
        parentLinkInnerBlocks.push(linkMap[id]);
      }
    }); // Transform all links with innerBlocks into Submenus. This can't be done
    // sooner because page objects have no information on their children.

    const transformSubmenus = listOfLinks => {
      listOfLinks.forEach((block, index, listOfLinksArray) => {
        const {
          attributes,
          innerBlocks
        } = block;

        if (innerBlocks.length !== 0) {
          transformSubmenus(innerBlocks);
          const transformedBlock = createBlock('core/navigation-submenu', attributes, innerBlocks);
          listOfLinksArray[index] = transformedBlock;
        }
      });
    };

    transformSubmenus(navigationLinks);
    replaceBlock(clientId, navigationLinks);
  };
};
function ConvertToLinksModal(_ref3) {
  let {
    onClose,
    clientId
  } = _ref3;
  const {
    records: pages,
    hasResolved: pagesFinished
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', {
    per_page: MAX_PAGE_COUNT,
    _fields: PAGE_FIELDS,
    // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
    // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
    // sort.
    orderby: 'menu_order',
    order: 'asc'
  });
  const {
    replaceBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close'),
    onRequestClose: onClose,
    title: (0,external_wp_i18n_namespaceObject.__)('Convert to links'),
    className: 'wp-block-page-list-modal',
    aria: {
      describedby: 'wp-block-page-list-modal__description'
    }
  }, (0,external_wp_element_namespaceObject.createElement)("p", {
    id: 'wp-block-page-list-modal__description'
  }, (0,external_wp_i18n_namespaceObject.__)('To edit this navigation menu, convert it to single page links. This allows you to add, re-order, remove items, or edit their labels.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)("Note: if you add new pages to your site, you'll need to add them to your navigation menu.")), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-page-list-modal-buttons"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "tertiary",
    onClick: onClose
  }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "primary",
    disabled: !pagesFinished,
    onClick: convertSelectedBlockToNavigationLinks({
      pages,
      replaceBlock,
      clientId,
      createBlock: external_wp_blocks_namespaceObject.createBlock
    })
  }, (0,external_wp_i18n_namespaceObject.__)('Convert'))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/icons.js


/**
 * WordPress dependencies
 */

const icons_ItemSubmenuIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  width: "12",
  height: "12",
  viewBox: "0 0 12 12",
  fill: "none"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M1.50002 4L6.00002 8L10.5 4",
  strokeWidth: "1.5"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


 // We only show the edit option when page count is <= MAX_PAGE_COUNT
// Performance of Navigation Links is not good past this value.

const edit_MAX_PAGE_COUNT = 100;
function PageListEdit(_ref) {
  var _context$style;

  let {
    context,
    clientId
  } = _ref;
  const {
    pagesByParentId,
    totalPages,
    hasResolvedPages
  } = usePageData();
  const isNavigationChild = ('showSubmenuIcon' in context);
  const allowConvertToLinks = isNavigationChild && totalPages <= edit_MAX_PAGE_COUNT;
  const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);

  const openModal = () => setOpen(true);

  const closeModal = () => setOpen(false);

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()('wp-block-page-list', {
      'has-text-color': !!context.textColor,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', context.textColor)]: !!context.textColor,
      'has-background': !!context.backgroundColor,
      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', context.backgroundColor)]: !!context.backgroundColor
    }),
    style: { ...((_context$style = context.style) === null || _context$style === void 0 ? void 0 : _context$style.color)
    }
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, allowConvertToLinks && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    title: (0,external_wp_i18n_namespaceObject.__)('Edit'),
    onClick: openModal
  }, (0,external_wp_i18n_namespaceObject.__)('Edit'))), allowConvertToLinks && isOpen && (0,external_wp_element_namespaceObject.createElement)(ConvertToLinksModal, {
    onClose: closeModal,
    clientId: clientId
  }), !hasResolvedPages && (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), hasResolvedPages && totalPages === null && (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, {
    status: 'warning',
    isDismissible: false
  }, (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')))), totalPages === 0 && (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, {
    status: 'info',
    isDismissible: false
  }, (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.'))), totalPages > 0 && (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, (0,external_wp_element_namespaceObject.createElement)(PageItems, {
    context: context,
    pagesByParentId: pagesByParentId
  })));
}

function useFrontPageId() {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    const site = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'site');
    return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front);
  }, []);
}

function usePageData() {
  const {
    records: pages,
    hasResolved: hasResolvedPages
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', {
    orderby: 'menu_order',
    order: 'asc',
    _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
    per_page: -1
  });
  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    var _pages$length;

    // TODO: Once the REST API supports passing multiple values to
    // 'orderby', this can be removed.
    // https://core.trac.wordpress.org/ticket/39037
    const sortedPages = (0,external_lodash_namespaceObject.sortBy)(pages, ['menu_order', 'title.rendered']);
    const pagesByParentId = sortedPages.reduce((accumulator, page) => {
      const {
        parent
      } = page;

      if (accumulator.has(parent)) {
        accumulator.get(parent).push(page);
      } else {
        accumulator.set(parent, [page]);
      }

      return accumulator;
    }, new Map());
    return {
      pagesByParentId,
      hasResolvedPages,
      totalPages: (_pages$length = pages === null || pages === void 0 ? void 0 : pages.length) !== null && _pages$length !== void 0 ? _pages$length : null
    };
  }, [pages, hasResolvedPages]);
}

const PageItems = (0,external_wp_element_namespaceObject.memo)(function PageItems(_ref2) {
  let {
    context,
    pagesByParentId,
    parentId = 0,
    depth = 0
  } = _ref2;
  const pages = pagesByParentId.get(parentId);
  const frontPageId = useFrontPageId();

  if (!(pages !== null && pages !== void 0 && pages.length)) {
    return [];
  }

  return pages.map(page => {
    var _page$title, _page$title2;

    const hasChildren = pagesByParentId.has(page.id);
    const isNavigationChild = ('showSubmenuIcon' in context);
    return (0,external_wp_element_namespaceObject.createElement)("li", {
      key: page.id,
      className: classnames_default()('wp-block-pages-list__item', {
        'has-child': hasChildren,
        'wp-block-navigation-item': isNavigationChild,
        'open-on-click': context.openSubmenusOnClick,
        'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
        'menu-item-home': page.id === frontPageId
      })
    }, hasChildren && context.openSubmenusOnClick ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("button", {
      className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
      "aria-expanded": "false"
    }, (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered), (0,external_wp_element_namespaceObject.createElement)("span", {
      className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"
    }, (0,external_wp_element_namespaceObject.createElement)(icons_ItemSubmenuIcon, null))) : (0,external_wp_element_namespaceObject.createElement)("a", {
      className: classnames_default()('wp-block-pages-list__item__link', {
        'wp-block-navigation-item__content': isNavigationChild
      }),
      href: page.link
    }, (_page$title2 = page.title) === null || _page$title2 === void 0 ? void 0 : _page$title2.rendered), hasChildren && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !context.openSubmenusOnClick && context.showSubmenuIcon && (0,external_wp_element_namespaceObject.createElement)("button", {
      className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
      "aria-expanded": "false"
    }, (0,external_wp_element_namespaceObject.createElement)(icons_ItemSubmenuIcon, null)), (0,external_wp_element_namespaceObject.createElement)("ul", {
      className: classnames_default()('submenu-container', {
        'wp-block-navigation__submenu-container': isNavigationChild
      })
    }, (0,external_wp_element_namespaceObject.createElement)(PageItems, {
      context: context,
      pagesByParentId: pagesByParentId,
      parentId: page.id,
      depth: depth + 1
    }))));
  });
});

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const page_list_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/page-list",
  title: "Page List",
  category: "widgets",
  description: "Display a list of all pages.",
  keywords: ["menu", "navigation"],
  textdomain: "default",
  attributes: {
    __unstableMaxPages: {
      type: "number"
    }
  },
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
  supports: {
    reusable: false,
    html: false
  },
  editorStyle: "wp-block-page-list-editor",
  style: "wp-block-page-list"
};

const {
  name: page_list_name
} = page_list_metadata;

const page_list_settings = {
  icon: library_pages,
  example: {},
  edit: PageListEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js


/**
 * WordPress dependencies
 */

const paragraph = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.3 4H9.9v-.1l-.9.2c-2.3.4-4 2.4-4 4.8s1.7 4.4 4 4.8l.7.1V20h1.5V5.5h2.9V20h1.5V5.5h2.7V4z"
}));
/* harmony default export */ var library_paragraph = (paragraph);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



const deprecated_supports = {
  className: false
};
const paragraph_deprecated_blockAttributes = {
  align: {
    type: 'string'
  },
  content: {
    type: 'string',
    source: 'html',
    selector: 'p',
    default: ''
  },
  dropCap: {
    type: 'boolean',
    default: false
  },
  placeholder: {
    type: 'string'
  },
  textColor: {
    type: 'string'
  },
  backgroundColor: {
    type: 'string'
  },
  fontSize: {
    type: 'string'
  },
  direction: {
    type: 'string',
    enum: ['ltr', 'rtl']
  },
  style: {
    type: 'object'
  }
};

const migrateCustomColorsAndFontSizes = attributes => {
  if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) {
    return attributes;
  }

  const style = {};

  if (attributes.customTextColor || attributes.customBackgroundColor) {
    style.color = {};
  }

  if (attributes.customTextColor) {
    style.color.text = attributes.customTextColor;
  }

  if (attributes.customBackgroundColor) {
    style.color.background = attributes.customBackgroundColor;
  }

  if (attributes.customFontSize) {
    style.typography = {
      fontSize: attributes.customFontSize
    };
  }

  return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor', 'customFontSize']),
    style
  };
};

const paragraph_deprecated_deprecated = [{
  supports: deprecated_supports,
  attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']),
    customTextColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customFontSize: {
      type: 'number'
    }
  },
  migrate: migrateCustomColorsAndFontSizes,

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      align,
      content,
      dropCap,
      backgroundColor,
      textColor,
      customBackgroundColor,
      customTextColor,
      fontSize,
      customFontSize,
      direction
    } = attributes;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
    const className = classnames_default()({
      'has-text-color': textColor || customTextColor,
      'has-background': backgroundColor || customBackgroundColor,
      'has-drop-cap': dropCap,
      [`has-text-align-${align}`]: align,
      [fontSizeClass]: fontSizeClass,
      [textClass]: textClass,
      [backgroundClass]: backgroundClass
    });
    const styles = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor,
      fontSize: fontSizeClass ? undefined : customFontSize
    };
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "p",
      style: styles,
      className: className ? className : undefined,
      value: content,
      dir: direction
    });
  }

}, {
  supports: deprecated_supports,
  attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']),
    customTextColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customFontSize: {
      type: 'number'
    }
  },
  migrate: migrateCustomColorsAndFontSizes,

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      align,
      content,
      dropCap,
      backgroundColor,
      textColor,
      customBackgroundColor,
      customTextColor,
      fontSize,
      customFontSize,
      direction
    } = attributes;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
    const className = classnames_default()({
      'has-text-color': textColor || customTextColor,
      'has-background': backgroundColor || customBackgroundColor,
      'has-drop-cap': dropCap,
      [fontSizeClass]: fontSizeClass,
      [textClass]: textClass,
      [backgroundClass]: backgroundClass
    });
    const styles = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor,
      fontSize: fontSizeClass ? undefined : customFontSize,
      textAlign: align
    };
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "p",
      style: styles,
      className: className ? className : undefined,
      value: content,
      dir: direction
    });
  }

}, {
  supports: deprecated_supports,
  attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']),
    customTextColor: {
      type: 'string'
    },
    customBackgroundColor: {
      type: 'string'
    },
    customFontSize: {
      type: 'number'
    },
    width: {
      type: 'string'
    }
  },
  migrate: migrateCustomColorsAndFontSizes,

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      width,
      align,
      content,
      dropCap,
      backgroundColor,
      textColor,
      customBackgroundColor,
      customTextColor,
      fontSize,
      customFontSize
    } = attributes;
    const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const fontSizeClass = fontSize && `is-${fontSize}-text`;
    const className = classnames_default()({
      [`align${width}`]: width,
      'has-background': backgroundColor || customBackgroundColor,
      'has-drop-cap': dropCap,
      [fontSizeClass]: fontSizeClass,
      [textClass]: textClass,
      [backgroundClass]: backgroundClass
    });
    const styles = {
      backgroundColor: backgroundClass ? undefined : customBackgroundColor,
      color: textClass ? undefined : customTextColor,
      fontSize: fontSizeClass ? undefined : customFontSize,
      textAlign: align
    };
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "p",
      style: styles,
      className: className ? className : undefined,
      value: content
    });
  }

}, {
  supports: deprecated_supports,
  attributes: (0,external_lodash_namespaceObject.omit)({ ...paragraph_deprecated_blockAttributes,
    fontSize: {
      type: 'number'
    }
  }, ['style']),

  save(_ref4) {
    let {
      attributes
    } = _ref4;
    const {
      width,
      align,
      content,
      dropCap,
      backgroundColor,
      textColor,
      fontSize
    } = attributes;
    const className = classnames_default()({
      [`align${width}`]: width,
      'has-background': backgroundColor,
      'has-drop-cap': dropCap
    });
    const styles = {
      backgroundColor,
      color: textColor,
      fontSize,
      textAlign: align
    };
    return (0,external_wp_element_namespaceObject.createElement)("p", {
      style: styles,
      className: className ? className : undefined
    }, content);
  },

  migrate(attributes) {
    return migrateCustomColorsAndFontSizes((0,external_lodash_namespaceObject.omit)({ ...attributes,
      customFontSize: (0,external_lodash_namespaceObject.isFinite)(attributes.fontSize) ? attributes.fontSize : undefined,
      customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
      customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined
    }), ['fontSize', 'textColor', 'backgroundColor', 'style']);
  }

}, {
  supports: deprecated_supports,
  attributes: { ...paragraph_deprecated_blockAttributes,
    content: {
      type: 'string',
      source: 'html',
      default: ''
    }
  },

  save(_ref5) {
    let {
      attributes
    } = _ref5;
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.content);
  },

  migrate(attributes) {
    return attributes;
  }

}];
/* harmony default export */ var paragraph_deprecated = (paragraph_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-ltr.js


/**
 * WordPress dependencies
 */

const formatLtr = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z"
}));
/* harmony default export */ var format_ltr = (formatLtr);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






const paragraph_edit_name = 'core/paragraph';

function ParagraphRTLControl(_ref) {
  let {
    direction,
    setDirection
  } = _ref;
  return (0,external_wp_i18n_namespaceObject.isRTL)() && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    controls: [{
      icon: format_ltr,
      title: (0,external_wp_i18n_namespaceObject._x)('Left to right', 'editor button'),
      isActive: direction === 'ltr',

      onClick() {
        setDirection(direction === 'ltr' ? undefined : 'ltr');
      }

    }]
  });
}

function ParagraphBlock(_ref2) {
  let {
    attributes,
    mergeBlocks,
    onReplace,
    onRemove,
    setAttributes,
    clientId
  } = _ref2;
  const {
    align,
    content,
    direction,
    dropCap,
    placeholder
  } = attributes;
  const isDropCapFeatureEnabled = (0,external_wp_blockEditor_namespaceObject.useSetting)('typography.dropCap');
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      'has-drop-cap': dropCap,
      [`has-text-align-${align}`]: align
    }),
    style: {
      direction
    }
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: align,
    onChange: newAlign => setAttributes({
      align: newAlign
    })
  }), (0,external_wp_element_namespaceObject.createElement)(ParagraphRTLControl, {
    direction: direction,
    setDirection: newDirection => setAttributes({
      direction: newDirection
    })
  })), isDropCapFeatureEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "typography"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
    hasValue: () => !!dropCap,
    label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
    onDeselect: () => setAttributes({
      dropCap: undefined
    }),
    resetAllFilter: () => ({
      dropCap: undefined
    }),
    panelId: clientId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
    checked: !!dropCap,
    onChange: () => setAttributes({
      dropCap: !dropCap
    }),
    help: dropCap ? (0,external_wp_i18n_namespaceObject.__)('Showing large initial letter.') : (0,external_wp_i18n_namespaceObject.__)('Toggle to show a large initial letter.')
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    identifier: "content",
    tagName: "p"
  }, blockProps, {
    value: content,
    onChange: newContent => setAttributes({
      content: newContent
    }),
    onSplit: (value, isOriginal) => {
      let newAttributes;

      if (isOriginal || value) {
        newAttributes = { ...attributes,
          content: value
        };
      }

      const block = (0,external_wp_blocks_namespaceObject.createBlock)(paragraph_edit_name, newAttributes);

      if (isOriginal) {
        block.clientId = clientId;
      }

      return block;
    },
    onMerge: mergeBlocks,
    onReplace: onReplace,
    onRemove: onRemove,
    "aria-label": content ? (0,external_wp_i18n_namespaceObject.__)('Paragraph block') : (0,external_wp_i18n_namespaceObject.__)('Empty block; start writing or type forward slash to choose a block'),
    "data-empty": content ? false : true,
    placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'),
    __unstableEmbedURLOnPaste: true,
    __unstableAllowPrefixTransformations: true
  })));
}

/* harmony default export */ var paragraph_edit = (ParagraphBlock);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function paragraph_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    align,
    content,
    dropCap,
    direction
  } = attributes;
  const className = classnames_default()({
    'has-drop-cap': dropCap,
    [`has-text-align-${align}`]: align
  });
  return (0,external_wp_element_namespaceObject.createElement)("p", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className,
    dir: direction
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: content
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const {
  name: paragraph_transforms_name
} = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/paragraph",
  title: "Paragraph",
  category: "text",
  description: "Start with the basic building block of all narrative.",
  keywords: ["text"],
  textdomain: "default",
  attributes: {
    align: {
      type: "string"
    },
    content: {
      type: "string",
      source: "html",
      selector: "p",
      "default": "",
      __experimentalRole: "content"
    },
    dropCap: {
      type: "boolean",
      "default": false
    },
    placeholder: {
      type: "string"
    },
    direction: {
      type: "string",
      "enum": ["ltr", "rtl"]
    }
  },
  supports: {
    anchor: true,
    className: false,
    color: {
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    __experimentalSelector: "p",
    __unstablePasteTextInline: true
  },
  editorStyle: "wp-block-paragraph-editor",
  style: "wp-block-paragraph"
};
const paragraph_transforms_transforms = {
  from: [{
    type: 'raw',
    // Paragraph is a fallback and should be matched last.
    priority: 20,
    selector: 'p',
    schema: _ref => {
      let {
        phrasingContentSchema,
        isPaste
      } = _ref;
      return {
        p: {
          children: phrasingContentSchema,
          attributes: isPaste ? [] : ['style', 'id']
        }
      };
    },

    transform(node) {
      const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(paragraph_transforms_name, node.outerHTML);
      const {
        textAlign
      } = node.style || {};

      if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
        attributes.align = textAlign;
      }

      return (0,external_wp_blocks_namespaceObject.createBlock)(paragraph_transforms_name, attributes);
    }

  }]
};
/* harmony default export */ var paragraph_transforms = (paragraph_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const paragraph_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/paragraph",
  title: "Paragraph",
  category: "text",
  description: "Start with the basic building block of all narrative.",
  keywords: ["text"],
  textdomain: "default",
  attributes: {
    align: {
      type: "string"
    },
    content: {
      type: "string",
      source: "html",
      selector: "p",
      "default": "",
      __experimentalRole: "content"
    },
    dropCap: {
      type: "boolean",
      "default": false
    },
    placeholder: {
      type: "string"
    },
    direction: {
      type: "string",
      "enum": ["ltr", "rtl"]
    }
  },
  supports: {
    anchor: true,
    className: false,
    color: {
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    __experimentalSelector: "p",
    __unstablePasteTextInline: true
  },
  editorStyle: "wp-block-paragraph-editor",
  style: "wp-block-paragraph"
};


const {
  name: paragraph_name
} = paragraph_metadata;

const paragraph_settings = {
  icon: library_paragraph,
  example: {
    attributes: {
      content: (0,external_wp_i18n_namespaceObject.__)('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'),
      style: {
        typography: {
          fontSize: 28
        }
      },
      dropCap: true
    }
  },

  __experimentalLabel(attributes, _ref) {
    let {
      context
    } = _ref;

    if (context === 'accessibility') {
      const {
        content
      } = attributes;
      return (0,external_lodash_namespaceObject.isEmpty)(content) ? (0,external_wp_i18n_namespaceObject.__)('Empty') : content;
    }
  },

  transforms: paragraph_transforms,
  deprecated: paragraph_deprecated,

  merge(attributes, attributesToMerge) {
    return {
      content: (attributes.content || '') + (attributesToMerge.content || '')
    };
  },

  edit: paragraph_edit,
  save: paragraph_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







function PostAuthorEdit(_ref) {
  let {
    isSelected,
    context: {
      postType,
      postId,
      queryId
    },
    attributes,
    setAttributes
  } = _ref;
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
  const {
    authorId,
    authorDetails,
    authors
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getEditedEntityRecor;

    const {
      getEditedEntityRecord,
      getUser,
      getUsers
    } = select(external_wp_coreData_namespaceObject.store);

    const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author;

    return {
      authorId: _authorId,
      authorDetails: _authorId ? getUser(_authorId) : null,
      authors: getUsers({
        who: 'authors'
      })
    };
  }, [postType, postId]);
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    textAlign,
    showAvatar,
    showBio,
    byline
  } = attributes;
  const avatarSizes = [];

  if (authorDetails) {
    (0,external_lodash_namespaceObject.forEach)(authorDetails.avatar_urls, (url, size) => {
      avatarSizes.push({
        value: size,
        label: `${size} x ${size}`
      });
    });
  }

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Author Settings')
  }, !isDescendentOfQueryLoop && !!(authors !== null && authors !== void 0 && authors.length) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Author'),
    value: authorId,
    options: authors.map(_ref2 => {
      let {
        id,
        name
      } = _ref2;
      return {
        value: id,
        label: name
      };
    }),
    onChange: nextAuthorId => {
      editEntityRecord('postType', postType, postId, {
        author: nextAuthorId
      });
    }
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show avatar'),
    checked: showAvatar,
    onChange: () => setAttributes({
      showAvatar: !showAvatar
    })
  }), showAvatar && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Avatar size'),
    value: attributes.avatarSize,
    options: avatarSizes,
    onChange: size => {
      setAttributes({
        avatarSize: Number(size)
      });
    }
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show bio'),
    checked: showBio,
    onChange: () => setAttributes({
      showBio: !showBio
    })
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, showAvatar && authorDetails && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-post-author__avatar"
  }, (0,external_wp_element_namespaceObject.createElement)("img", {
    width: attributes.avatarSize,
    src: authorDetails.avatar_urls[attributes.avatarSize],
    alt: authorDetails.name
  })), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-post-author__content"
  }, (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(byline) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    className: "wp-block-post-author__byline",
    multiline: false,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post author byline text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write byline…'),
    value: byline,
    onChange: value => setAttributes({
      byline: value
    })
  }), (0,external_wp_element_namespaceObject.createElement)("p", {
    className: "wp-block-post-author__name"
  }, (authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.name) || (0,external_wp_i18n_namespaceObject.__)('Post Author')), showBio && (0,external_wp_element_namespaceObject.createElement)("p", {
    className: "wp-block-post-author__bio"
  }, authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.description))));
}

/* harmony default export */ var post_author_edit = (PostAuthorEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-author.js


/**
 * WordPress dependencies
 */

const postAuthor = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M10 4.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm2.25 7.5v-1A2.75 2.75 0 0011 8.25H7A2.75 2.75 0 004.25 11v1h1.5v-1c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v1h1.5zM4 20h9v-1.5H4V20zm16-4H4v-1.5h16V16z",
  fillRule: "evenodd",
  clipRule: "evenodd"
}));
/* harmony default export */ var post_author = (postAuthor);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/index.js
/**
 * Internal dependencies
 */
const post_author_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-author",
  title: "Post Author",
  category: "theme",
  description: "Display post author details such as name, avatar, and bio.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    },
    avatarSize: {
      type: "number",
      "default": 48
    },
    showAvatar: {
      type: "boolean",
      "default": true
    },
    showBio: {
      type: "boolean"
    },
    byline: {
      type: "string"
    }
  },
  usesContext: ["postType", "postId", "queryId"],
  supports: {
    html: false,
    spacing: {
      margin: true,
      padding: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    color: {
      gradients: true,
      link: true,
      __experimentalDuotone: ".wp-block-post-author__avatar img",
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    }
  },
  editorStyle: "wp-block-post-author-editor",
  style: "wp-block-post-author"
};

/**
 * WordPress dependencies
 */


const {
  name: post_author_name
} = post_author_metadata;

const post_author_settings = {
  icon: post_author,
  edit: post_author_edit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






function PostAuthorBiographyEdit(_ref) {
  let {
    context: {
      postType,
      postId
    },
    attributes: {
      textAlign
    },
    setAttributes
  } = _ref;
  const {
    authorDetails
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getEditedEntityRecor;

    const {
      getEditedEntityRecord,
      getUser
    } = select(external_wp_coreData_namespaceObject.store);

    const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author;

    return {
      authorDetails: _authorId ? getUser(_authorId) : null
    };
  }, [postType, postId]);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });

  const displayAuthorBiography = (authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.description) || (0,external_wp_i18n_namespaceObject.__)('Author Biography');

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, " ", displayAuthorBiography, " "));
}

/* harmony default export */ var post_author_biography_edit = (PostAuthorBiographyEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
/**
 * Internal dependencies
 */
const post_author_biography_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-author-biography",
  title: "Post Author Biography",
  category: "theme",
  description: "The author biography.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    }
  },
  usesContext: ["postType", "postId"],
  supports: {
    spacing: {
      margin: true,
      padding: true
    },
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};

/**
 * WordPress dependencies
 */


const {
  name: post_author_biography_name
} = post_author_biography_metadata;

const post_author_biography_settings = {
  icon: post_author,
  edit: post_author_biography_edit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







function PostCommentsEdit(_ref) {
  let {
    attributes: {
      textAlign
    },
    setAttributes,
    context: {
      postType,
      postId
    }
  } = _ref;
  let [postTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
  postTitle = postTitle || (0,external_wp_i18n_namespaceObject.__)('Post Title');
  const [commentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId);
  const {
    avatarURL,
    defaultCommentStatus
  } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings);
  const isSiteEditor = postType === undefined || postId === undefined;
  const postTypeSupportsComments = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getPostType;

    return postType ? !!((_select$getPostType = select(external_wp_coreData_namespaceObject.store).getPostType(postType)) !== null && _select$getPostType !== void 0 && _select$getPostType.supports.comments) : false;
  });

  let warning = (0,external_wp_i18n_namespaceObject.__)('Post Comments block: This is just a placeholder, not a real comment. The final styling may differ because it also depends on the current theme. For better compatibility with the Block Editor, please consider replacing this block with the "Comments Query Loop" block.');

  let showPlacholder = true;

  if (!isSiteEditor && 'open' !== commentStatus) {
    if ('closed' === commentStatus) {
      warning = (0,external_wp_i18n_namespaceObject.sprintf)(
      /* translators: 1: Post type (i.e. "post", "page") */
      (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments to this %s are not allowed.'), postType);
      showPlacholder = false;
    } else if (!postTypeSupportsComments) {
      warning = (0,external_wp_i18n_namespaceObject.sprintf)(
      /* translators: 1: Post type (i.e. "post", "page") */
      (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments for this post type (%s) are not enabled.'), postType);
      showPlacholder = false;
    } else if ('open' !== defaultCommentStatus) {
      warning = (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments are not enabled.');
      showPlacholder = false;
    }
  }

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const disabledRef = (0,external_wp_compose_namespaceObject.__experimentalUseDisabled)();
  const textareaId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsEdit);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, warning), showPlacholder && (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-post-comments__placeholder",
    ref: disabledRef
  }, (0,external_wp_element_namespaceObject.createElement)("h3", null,
  /* translators: %s: Post title. */
  (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('One response to %s'), postTitle)), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "navigation"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "alignleft"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#top"
  }, "\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments'))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "alignright"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#top"
  }, (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"))), (0,external_wp_element_namespaceObject.createElement)("ol", {
    className: "commentlist"
  }, (0,external_wp_element_namespaceObject.createElement)("li", {
    className: "comment even thread-even depth-1"
  }, (0,external_wp_element_namespaceObject.createElement)("article", {
    className: "comment-body"
  }, (0,external_wp_element_namespaceObject.createElement)("footer", {
    className: "comment-meta"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "comment-author vcard"
  }, (0,external_wp_element_namespaceObject.createElement)("img", {
    alt: "Commenter Avatar",
    src: avatarURL,
    className: "avatar avatar-32 photo",
    height: "32",
    width: "32",
    loading: "lazy"
  }), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(
  /* translators: %s: Comment author link. */
  (0,external_wp_i18n_namespaceObject.__)('%s <span>says:</span>'), (0,external_wp_i18n_namespaceObject.sprintf)('<cite><a>%s</a></cite>', (0,external_wp_i18n_namespaceObject.__)('A WordPress Commenter'))), {
    span: (0,external_wp_element_namespaceObject.createElement)("span", {
      className: "says"
    }),
    a:
    /* eslint-disable jsx-a11y/anchor-has-content */
    (0,external_wp_element_namespaceObject.createElement)("a", {
      href: "#top",
      className: "url"
    })
    /* eslint-enable jsx-a11y/anchor-has-content */
    ,
    cite: (0,external_wp_element_namespaceObject.createElement)("cite", {
      className: "fn"
    })
  })), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "comment-metadata"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#top"
  }, (0,external_wp_element_namespaceObject.createElement)("time", {
    dateTime: "2000-01-01T12:00:00+00:00"
  }, (0,external_wp_i18n_namespaceObject.__)('January 1, 2000 at 12:00 am'))), ' ', (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "edit-link"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    className: "comment-edit-link",
    href: "#top"
  }, (0,external_wp_i18n_namespaceObject.__)('Edit'))))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "comment-content"
  }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Hi, this is a comment.'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_i18n_namespaceObject.__)('To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Commenter avatars come from <a>Gravatar</a>'), {
    a:
    /* eslint-disable-next-line jsx-a11y/anchor-has-content */
    (0,external_wp_element_namespaceObject.createElement)("a", {
      href: "https://gravatar.com/"
    })
  }))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "reply"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    className: "comment-reply-link",
    href: "#top",
    "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: Comment reply button text. %s: Comment author name. */
    (0,external_wp_i18n_namespaceObject.__)('Reply to %s'), (0,external_wp_i18n_namespaceObject.__)('A WordPress Commenter'))
  }, (0,external_wp_i18n_namespaceObject.__)('Reply')))))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "navigation"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "alignleft"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#top"
  }, "\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments'))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "alignright"
  }, (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#top"
  }, (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"))), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "comment-respond"
  }, (0,external_wp_element_namespaceObject.createElement)("h3", {
    className: "comment-reply-title"
  }, (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')), (0,external_wp_element_namespaceObject.createElement)("form", {
    className: "comment-form",
    noValidate: true
  }, (0,external_wp_element_namespaceObject.createElement)("p", {
    className: "comment-form-comment"
  }, (0,external_wp_element_namespaceObject.createElement)("label", {
    htmlFor: `comment-${textareaId}`
  }, (0,external_wp_i18n_namespaceObject.__)('Comment'), ' ', (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "required"
  }, "*")), (0,external_wp_element_namespaceObject.createElement)("textarea", {
    id: `comment-${textareaId}`,
    name: "comment",
    cols: "45",
    rows: "8",
    required: true
  })), (0,external_wp_element_namespaceObject.createElement)("p", {
    className: "form-submit wp-block-button"
  }, (0,external_wp_element_namespaceObject.createElement)("input", {
    name: "submit",
    type: "submit",
    className: "submit wp-block-button__link",
    value: (0,external_wp_i18n_namespaceObject.__)('Post Comment')
  })))))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_comments_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-comments",
  title: "Post Comments (deprecated)",
  category: "theme",
  description: "This block is deprecated. Please use the Comments Query Loop block instead.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    }
  },
  usesContext: ["postId", "postType"],
  supports: {
    html: false,
    align: ["wide", "full"],
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    inserter: false
  },
  style: ["wp-block-post-comments", "wp-block-buttons", "wp-block-button"],
  editorStyle: "wp-block-post-comments-editor"
};

const {
  name: post_comments_name
} = post_comments_metadata;

const post_comments_settings = {
  icon: post_comments,
  edit: PostCommentsEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments-form.js


/**
 * WordPress dependencies
 */

const postCommentsForm = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M13 8H4v1.5h9V8zM4 4v1.5h16V4H4zm9 8H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1V13c0-.6-.4-1-1-1zm-.5 6.6H6.7l-1.2 1.2v-6.3h7v5.1z"
}));
/* harmony default export */ var post_comments_form = (postCommentsForm);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





function PostCommentsFormEdit(_ref) {
  let {
    attributes,
    context,
    setAttributes
  } = _ref;
  const {
    textAlign
  } = attributes;
  const {
    postId,
    postType
  } = context;
  const [commentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const isInSiteEditor = postType === undefined || postId === undefined;
  const disabledFormRef = (0,external_wp_compose_namespaceObject.__experimentalUseDisabled)();
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsFormEdit);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, !commentStatus && !isInSiteEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: comments are not enabled for this post type.')), 'open' !== commentStatus && !isInSiteEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.sprintf)(
  /* translators: 1: Post type (i.e. "post", "page") */
  (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: comments to this %s are not allowed.'), postType)), ('open' === commentStatus || isInSiteEditor) && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')), (0,external_wp_element_namespaceObject.createElement)("form", {
    noValidate: true,
    className: "comment-form",
    ref: disabledFormRef
  }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("label", {
    htmlFor: `comment-${instanceId}`
  }, (0,external_wp_i18n_namespaceObject.__)('Comment')), (0,external_wp_element_namespaceObject.createElement)("textarea", {
    id: `comment-${instanceId}`,
    name: "comment",
    cols: "45",
    rows: "8"
  })), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("input", {
    name: "submit",
    className: "submit wp-block-button__link",
    label: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
    value: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
    readOnly: true
  }))))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_comments_form_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-comments-form",
  title: "Post Comments Form",
  category: "theme",
  description: "Display a post's comments form.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    }
  },
  usesContext: ["postId", "postType"],
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  editorStyle: "wp-block-post-comments-form-editor",
  style: ["wp-block-post-comments-form", "wp-block-buttons", "wp-block-button"]
};

const {
  name: post_comments_form_name
} = post_comments_form_metadata;

const post_comments_form_settings = {
  icon: post_comments_form,
  edit: PostCommentsFormEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-content.js


/**
 * WordPress dependencies
 */

const postContent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "https://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 20h16v-1.5H4V20zm0-4.8h16v-1.5H4v1.5zm0-6.4v1.5h16V8.8H4zM16 4H4v1.5h12V4z"
}));
/* harmony default export */ var post_content = (postContent);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/hooks.js
/**
 * WordPress dependencies
 */


/**
 * Returns whether the current user can edit the given entity.
 *
 * @param {string} kind     Entity kind.
 * @param {string} name     Entity name.
 * @param {string} recordId Record's id.
 */

function useCanEditEntity(kind, name, recordId) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).canUserEditEntityRecord(kind, name, recordId), [kind, name, recordId]);
}
/* harmony default export */ var hooks = ({
  useCanEditEntity
});

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/edit.js



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



function ReadOnlyContent(_ref) {
  let {
    userCanEdit,
    postType,
    postId
  } = _ref;
  const [,, content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return content !== null && content !== void 0 && content.protected && !userCanEdit ? (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('This content is password protected.'))) : (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
    dangerouslySetInnerHTML: {
      __html: content === null || content === void 0 ? void 0 : content.rendered
    }
  }));
}

function EditableContent(_ref2) {
  let {
    layout,
    context = {}
  } = _ref2;
  const {
    postType,
    postId
  } = context;
  const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getSettings;

    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout;
  }, []);
  const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
  const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
  const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
    id: postId
  });
  const props = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)((0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: 'entry-content'
  }), {
    value: blocks,
    onInput,
    onChange,
    __experimentalLayout: themeSupportsLayout ? usedLayout : undefined
  });
  return (0,external_wp_element_namespaceObject.createElement)("div", props);
}

function Content(props) {
  const {
    context: {
      queryId,
      postType,
      postId
    } = {}
  } = props;
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
  const userCanEdit = useCanEditEntity('postType', postType, postId);
  const isEditable = userCanEdit && !isDescendentOfQueryLoop;
  return isEditable ? (0,external_wp_element_namespaceObject.createElement)(EditableContent, props) : (0,external_wp_element_namespaceObject.createElement)(ReadOnlyContent, {
    userCanEdit: userCanEdit,
    postType: postType,
    postId: postId
  });
}

function edit_Placeholder() {
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('This is the Post Content block, it will display all the blocks in any single post or page.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('If there are any Custom Post Types registered at your site, the Post Content block can display the contents of those entries as well.')));
}

function RecursionError() {
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')));
}

function PostContentEdit(_ref3) {
  let {
    context,
    attributes
  } = _ref3;
  const {
    postId: contextPostId,
    postType: contextPostType
  } = context;
  const {
    layout = {}
  } = attributes;
  const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(contextPostId);

  if (contextPostId && contextPostType && hasAlreadyRendered) {
    return (0,external_wp_element_namespaceObject.createElement)(RecursionError, null);
  }

  return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, contextPostId && contextPostType ? (0,external_wp_element_namespaceObject.createElement)(Content, {
    context: context,
    layout: layout
  }) : (0,external_wp_element_namespaceObject.createElement)(edit_Placeholder, null));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_content_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-content",
  title: "Post Content",
  category: "theme",
  description: "Displays the contents of a post or page.",
  textdomain: "default",
  usesContext: ["postId", "postType", "queryId"],
  supports: {
    align: ["wide", "full"],
    html: false,
    __experimentalLayout: true
  },
  editorStyle: "wp-block-post-content-editor"
};

const {
  name: post_content_name
} = post_content_metadata;

const post_content_settings = {
  icon: post_content,
  edit: PostContentEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */










function PostDateEdit(_ref) {
  let {
    attributes: {
      textAlign,
      format,
      isLink
    },
    context: {
      postId,
      postType: postTypeSlug,
      queryId
    },
    setAttributes
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const timeRef = (0,external_wp_element_namespaceObject.useRef)();
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
  const dateSettings = (0,external_wp_date_namespaceObject.__experimentalGetSettings)();
  const [siteFormat = dateSettings.formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
  const [siteTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format');
  const [date, setDate] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'date', postId);
  const postType = (0,external_wp_data_namespaceObject.useSelect)(select => postTypeSlug ? select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug) : null, [postTypeSlug]);
  let postDate = date ? (0,external_wp_element_namespaceObject.createElement)("time", {
    dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
    ref: timeRef
  }, (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)) : (0,external_wp_i18n_namespaceObject.__)('Post Date');

  if (isLink && date) {
    postDate = (0,external_wp_element_namespaceObject.createElement)("a", {
      href: "#post-date-pseudo-link",
      onClick: event => event.preventDefault()
    }, postDate);
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  }), date && !isDescendentOfQueryLoop && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, {
    popoverProps: {
      anchorRef: timeRef.current
    },
    renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DateTimePicker, {
      currentDate: date,
      onChange: setDate,
      is12Hour: is12HourFormat(siteTimeFormat)
    }),
    renderToggle: _ref2 => {
      let {
        isOpen,
        onToggle
      } = _ref2;

      const openOnArrowDown = event => {
        if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
          event.preventDefault();
          onToggle();
        }
      };

      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
        "aria-expanded": isOpen,
        icon: library_edit,
        title: (0,external_wp_i18n_namespaceObject.__)('Change Date'),
        onClick: onToggle,
        onKeyDown: openOnArrowDown
      });
    }
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
    format: format,
    defaultFormat: siteFormat,
    onChange: nextFormat => setAttributes({
      format: nextFormat
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: postType !== null && postType !== void 0 && postType.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: Name of the post type e.g: "post".
    (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, postDate));
}
function is12HourFormat(format) {
  // To know if the time format is a 12 hour time, look for any of the 12 hour
  // format characters: 'a', 'A', 'g', and 'h'. The character must be
  // unescaped, i.e. not preceded by a '\'. Coincidentally, 'aAgh' is how I
  // feel when working with regular expressions.
  // https://www.php.net/manual/en/datetime.format.php
  return /(?:^|[^\\])[aAgh]/.test(format);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/deprecated.js
/**
 * Internal dependencies
 */

const post_date_deprecated_v1 = {
  attributes: {
    textAlign: {
      type: 'string'
    },
    format: {
      type: 'string'
    },
    isLink: {
      type: 'boolean',
      default: false
    }
  },
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var post_date_deprecated = ([post_date_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_date_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-date",
  title: "Post Date",
  category: "theme",
  description: "Add the date of this post.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    },
    format: {
      type: "string"
    },
    isLink: {
      type: "boolean",
      "default": false
    }
  },
  usesContext: ["postId", "postType", "queryId"],
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};


const {
  name: post_date_name
} = post_date_metadata;

const post_date_settings = {
  icon: post_date,
  edit: PostDateEdit,
  deprecated: post_date_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-excerpt.js


/**
 * WordPress dependencies
 */

const postExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.75 9.333c0 .521-.102.977-.327 1.354-.23.386-.555.628-.893.774-.545.234-1.183.227-1.544.222l-.12-.001v-1.5h.123c.414.001.715.002.948-.099a.395.395 0 00.199-.166c.05-.083.114-.253.114-.584V7.2H8.8V4h3.95v5.333zM7.95 9.333c0 .521-.102.977-.327 1.354-.23.386-.555.628-.893.774-.545.234-1.183.227-1.544.222l-.12-.001v-1.5h.123c.414.001.715.002.948-.099a.394.394 0 00.198-.166c.05-.083.115-.253.115-.584V7.2H4V4h3.95v5.333zM13 20H4v-1.5h9V20zM20 16H4v-1.5h16V16z"
}));
/* harmony default export */ var post_excerpt = (postExcerpt);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


function PostExcerptEditor(_ref) {
  let {
    attributes: {
      textAlign,
      moreText,
      showMoreOnNewLine
    },
    setAttributes,
    isSelected,
    context: {
      postId,
      postType,
      queryId
    }
  } = _ref;
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
  const userCanEdit = useCanEditEntity('postType', postType, postId);
  const isEditable = userCanEdit && !isDescendentOfQueryLoop;
  const [rawExcerpt, setExcerpt, {
    rendered: renderedExcerpt,
    protected: isProtected
  } = {}] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'excerpt', postId);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  /**
   * When excerpt is editable, strip the html tags from
   * rendered excerpt. This will be used if the entity's
   * excerpt has been produced from the content.
   */

  const strippedRenderedExcerpt = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!renderedExcerpt) return '';
    const document = new window.DOMParser().parseFromString(renderedExcerpt, 'text/html');
    return document.body.textContent || document.body.innerText || '';
  }, [renderedExcerpt]);

  if (!postType || !postId) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('This is the Post Excerpt block, it will display the excerpt from single posts.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.')));
  }

  if (isProtected && !userCanEdit) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('There is no excerpt because this is a protected post.')));
  }

  const readMoreLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    className: "wp-block-post-excerpt__more-link",
    tagName: "a",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('"Read more" link text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add "read more" link text'),
    value: moreText,
    onChange: newMoreText => setAttributes({
      moreText: newMoreText
    }),
    withoutInteractiveFormatting: true
  });
  const excerptClassName = classnames_default()('wp-block-post-excerpt__excerpt', {
    'is-inline': !showMoreOnNewLine
  });
  const excerptContent = isEditable ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    className: excerptClassName,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post excerpt text'),
    value: rawExcerpt || strippedRenderedExcerpt || (isSelected ? '' : (0,external_wp_i18n_namespaceObject.__)('No post excerpt found')),
    onChange: setExcerpt,
    tagName: "p"
  }) : (0,external_wp_element_namespaceObject.createElement)("p", {
    className: excerptClassName
  }, strippedRenderedExcerpt || (0,external_wp_i18n_namespaceObject.__)('No post excerpt found'));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
    value: textAlign,
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    })
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Post Excerpt Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
    checked: showMoreOnNewLine,
    onChange: newShowMoreOnNewLine => setAttributes({
      showMoreOnNewLine: newShowMoreOnNewLine
    })
  }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, excerptContent, !showMoreOnNewLine && ' ', showMoreOnNewLine ? (0,external_wp_element_namespaceObject.createElement)("p", {
    className: "wp-block-post-excerpt__more-text"
  }, readMoreLink) : readMoreLink));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/transforms.js
/**
 * WordPress dependencies
 */

const post_excerpt_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/post-content'],
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-excerpt')
  }],
  to: [{
    type: 'block',
    blocks: ['core/post-content'],
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content')
  }]
};
/* harmony default export */ var post_excerpt_transforms = (post_excerpt_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_excerpt_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-excerpt",
  title: "Post Excerpt",
  category: "theme",
  description: "Display a post's excerpt.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    },
    moreText: {
      type: "string"
    },
    showMoreOnNewLine: {
      type: "boolean",
      "default": true
    }
  },
  usesContext: ["postId", "postType", "queryId"],
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    spacing: {
      margin: true,
      padding: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  editorStyle: "wp-block-post-excerpt-editor",
  style: "wp-block-post-excerpt"
};


const {
  name: post_excerpt_name
} = post_excerpt_metadata;

const post_excerpt_settings = {
  icon: post_excerpt,
  transforms: post_excerpt_transforms,
  edit: PostExcerptEditor
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/dimension-controls.js


/**
 * WordPress dependencies
 */



const SCALE_OPTIONS = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
  value: "cover",
  label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for Image dimension control')
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
  value: "contain",
  label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for Image dimension control')
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
  value: "fill",
  label: (0,external_wp_i18n_namespaceObject._x)('Fill', 'Scale option for Image dimension control')
}));
const DEFAULT_SCALE = 'cover';
const DEFAULT_SIZE = 'full';
const scaleHelp = {
  cover: (0,external_wp_i18n_namespaceObject.__)('Image is scaled and cropped to fill the entire space without being distorted.'),
  contain: (0,external_wp_i18n_namespaceObject.__)('Image is scaled to fill the space without clipping nor distorting.'),
  fill: (0,external_wp_i18n_namespaceObject.__)('Image will be stretched and distorted to completely fill the space.')
};

const DimensionControls = _ref => {
  let {
    clientId,
    attributes: {
      width,
      height,
      scale,
      sizeSlug
    },
    setAttributes,
    imageSizeOptions = []
  } = _ref;
  const defaultUnits = ['px', '%', 'vw', 'em', 'rem'];
  const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
    availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || defaultUnits
  });

  const onDimensionChange = (dimension, nextValue) => {
    const parsedValue = parseFloat(nextValue);
    /**
     * If we have no value set and we change the unit,
     * we don't want to set the attribute, as it would
     * end up having the unit as value without any number.
     */

    if (isNaN(parsedValue) && nextValue) return;
    setAttributes({
      [dimension]: parsedValue < 0 ? '0' : nextValue
    });
  };

  const scaleLabel = (0,external_wp_i18n_namespaceObject._x)('Scale', 'Image scaling options');

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "dimensions"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
    className: "single-column",
    hasValue: () => !!height,
    label: (0,external_wp_i18n_namespaceObject.__)('Height'),
    onDeselect: () => setAttributes({
      height: undefined
    }),
    resetAllFilter: () => ({
      height: undefined
    }),
    isShownByDefault: true,
    panelId: clientId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Height'),
    labelPosition: "top",
    value: height || '',
    min: 0,
    onChange: nextHeight => onDimensionChange('height', nextHeight),
    units: units
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
    className: "single-column",
    hasValue: () => !!width,
    label: (0,external_wp_i18n_namespaceObject.__)('Width'),
    onDeselect: () => setAttributes({
      width: undefined
    }),
    resetAllFilter: () => ({
      width: undefined
    }),
    isShownByDefault: true,
    panelId: clientId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Width'),
    labelPosition: "top",
    value: width || '',
    min: 0,
    onChange: nextWidth => onDimensionChange('width', nextWidth),
    units: units
  })), !!height && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
    hasValue: () => !!scale && scale !== DEFAULT_SCALE,
    label: scaleLabel,
    onDeselect: () => setAttributes({
      scale: DEFAULT_SCALE
    }),
    resetAllFilter: () => ({
      scale: DEFAULT_SCALE
    }),
    isShownByDefault: true,
    panelId: clientId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
    label: scaleLabel,
    value: scale,
    help: scaleHelp[scale],
    onChange: value => setAttributes({
      scale: value
    }),
    isBlock: true
  }, SCALE_OPTIONS)), !!imageSizeOptions.length && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
    hasValue: () => !!sizeSlug,
    label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
    onDeselect: () => setAttributes({
      sizeSlug: undefined
    }),
    resetAllFilter: () => ({
      sizeSlug: undefined
    }),
    isShownByDefault: false,
    panelId: clientId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
    value: sizeSlug || DEFAULT_SIZE,
    options: imageSizeOptions,
    onChange: nextSizeSlug => setAttributes({
      sizeSlug: nextSizeSlug
    }),
    help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.')
  })));
};

/* harmony default export */ var dimension_controls = (DimensionControls);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/edit.js


/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


const placeholderIllustration = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  className: "components-placeholder__illustration",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 60 60",
  preserveAspectRatio: "none"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  vectorEffect: "non-scaling-stroke",
  d: "M60 60 0 0"
}));
const post_featured_image_edit_ALLOWED_MEDIA_TYPES = ['image'];
const placeholderChip = (0,external_wp_element_namespaceObject.createElement)("div", {
  className: "wp-block-post-featured-image__placeholder"
}, placeholderIllustration);

function getMediaSourceUrlBySizeSlug(media, slug) {
  var _media$media_details, _media$media_details$, _media$media_details$2;

  return (media === null || media === void 0 ? void 0 : (_media$media_details = media.media_details) === null || _media$media_details === void 0 ? void 0 : (_media$media_details$ = _media$media_details.sizes) === null || _media$media_details$ === void 0 ? void 0 : (_media$media_details$2 = _media$media_details$[slug]) === null || _media$media_details$2 === void 0 ? void 0 : _media$media_details$2.source_url) || (media === null || media === void 0 ? void 0 : media.source_url);
}

function PostFeaturedImageDisplay(_ref) {
  let {
    clientId,
    attributes,
    setAttributes,
    context: {
      postId,
      postType: postTypeSlug,
      queryId
    }
  } = _ref;
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
  const {
    isLink,
    height,
    width,
    scale,
    sizeSlug
  } = attributes;
  const [featuredImage, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'featured_media', postId);
  const {
    media,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getMedia,
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      media: featuredImage && getMedia(featuredImage, {
        context: 'view'
      }),
      postType: postTypeSlug && getPostType(postTypeSlug)
    };
  }, [featuredImage, postTypeSlug]);
  const mediaUrl = getMediaSourceUrlBySizeSlug(media, sizeSlug);
  const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().imageSizes, []);
  const imageSizeOptions = imageSizes.filter(_ref2 => {
    var _media$media_details2, _media$media_details3, _media$media_details4;

    let {
      slug
    } = _ref2;
    return media === null || media === void 0 ? void 0 : (_media$media_details2 = media.media_details) === null || _media$media_details2 === void 0 ? void 0 : (_media$media_details3 = _media$media_details2.sizes) === null || _media$media_details3 === void 0 ? void 0 : (_media$media_details4 = _media$media_details3[slug]) === null || _media$media_details4 === void 0 ? void 0 : _media$media_details4.source_url;
  }).map(_ref3 => {
    let {
      name,
      slug
    } = _ref3;
    return {
      value: slug,
      label: name
    };
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    style: {
      width,
      height
    }
  });

  const placeholder = content => {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
      className: "block-editor-media-placeholder"
    }, placeholderIllustration, content);
  };

  const onSelectImage = value => {
    if (value !== null && value !== void 0 && value.id) {
      setFeaturedImage(value.id);
    }
  };

  const {
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);

  const onUploadError = message => {
    createErrorNotice(message[2], {
      type: 'snackbar'
    });
  };

  const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(dimension_controls, {
    clientId: clientId,
    attributes: attributes,
    setAttributes: setAttributes,
    imageSizeOptions: imageSizeOptions
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: postType !== null && postType !== void 0 && postType.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: Name of the post type e.g: "post".
    (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  }))));
  let image;

  if (!featuredImage && isDescendentOfQueryLoop) {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, placeholderChip));
  }

  const label = (0,external_wp_i18n_namespaceObject.__)('Add a featured image');

  if (!featuredImage) {
    image = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
      onSelect: onSelectImage,
      accept: "image/*",
      allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
      onError: onUploadError,
      placeholder: placeholder,
      mediaLibraryButton: _ref4 => {
        let {
          open
        } = _ref4;
        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
          icon: library_upload,
          variant: "primary",
          label: label,
          showTooltip: true,
          tooltipPosition: "top center",
          onClick: () => {
            open();
          }
        });
      }
    });
  } else {
    // We have a Featured image so show a Placeholder if is loading.
    image = !media ? placeholderChip : (0,external_wp_element_namespaceObject.createElement)("img", {
      src: mediaUrl,
      alt: media.alt_text ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The image's alt text.
      (0,external_wp_i18n_namespaceObject.__)('Featured image: %s'), media.alt_text) : (0,external_wp_i18n_namespaceObject.__)('Featured image'),
      style: {
        height,
        objectFit: height && scale
      }
    });
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, !!media && !isDescendentOfQueryLoop && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: featuredImage,
    mediaURL: mediaUrl,
    allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
    accept: "image/*",
    onSelect: onSelectImage,
    onError: onUploadError
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
    onClick: () => setFeaturedImage(0)
  }, (0,external_wp_i18n_namespaceObject.__)('Reset')))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, image));
}

function PostFeaturedImageEdit(props) {
  var _props$context;

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();

  if (!((_props$context = props.context) !== null && _props$context !== void 0 && _props$context.postId)) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, placeholderChip);
  }

  return (0,external_wp_element_namespaceObject.createElement)(PostFeaturedImageDisplay, props);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_featured_image_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-featured-image",
  title: "Post Featured Image",
  category: "theme",
  description: "Display a post's featured image.",
  textdomain: "default",
  attributes: {
    isLink: {
      type: "boolean",
      "default": false
    },
    width: {
      type: "string"
    },
    height: {
      type: "string"
    },
    scale: {
      type: "string",
      "default": "cover"
    },
    sizeSlug: {
      type: "string"
    }
  },
  usesContext: ["postId", "postType", "queryId"],
  supports: {
    align: ["left", "right", "center", "wide", "full"],
    color: {
      __experimentalDuotone: "img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before",
      text: false,
      background: false
    },
    html: false,
    spacing: {
      margin: true,
      padding: true
    }
  },
  editorStyle: "wp-block-post-featured-image-editor",
  style: "wp-block-post-featured-image"
};

const {
  name: post_featured_image_name
} = post_featured_image_metadata;

const post_featured_image_settings = {
  icon: post_featured_image,
  edit: PostFeaturedImageEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */




function PostNavigationLinkEdit(_ref) {
  let {
    attributes: {
      type,
      label,
      showTitle,
      textAlign,
      linkLabel
    },
    setAttributes
  } = _ref;
  const isNext = type === 'next';
  let placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next') : (0,external_wp_i18n_namespaceObject.__)('Previous');

  if (showTitle) {
    /* translators: Label before for next and previous post. There is a space after the colon. */
    placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next: ') : (0,external_wp_i18n_namespaceObject.__)('Previous: ');
  }

  const ariaLabel = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next post') : (0,external_wp_i18n_namespaceObject.__)('Previous post');
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display the title as a link'),
    help: (0,external_wp_i18n_namespaceObject.__)('If you have entered a custom label, it will be prepended before the title.'),
    checked: !!showTitle,
    onChange: () => setAttributes({
      showTitle: !showTitle
    })
  }), showTitle && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Include the label as part of the link'),
    checked: !!linkLabel,
    onChange: () => setAttributes({
      linkLabel: !linkLabel
    })
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "a",
    "aria-label": ariaLabel,
    placeholder: placeholder,
    value: label,
    allowedFormats: ['core/bold', 'core/italic'],
    onChange: newLabel => setAttributes({
      label: newLabel
    })
  }), showTitle && (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#post-navigation-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_i18n_namespaceObject.__)('An example title'))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/next.js


/**
 * WordPress dependencies
 */

const next = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z"
}));
/* harmony default export */ var library_next = (next);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/previous.js


/**
 * WordPress dependencies
 */

const previous = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z"
}));
/* harmony default export */ var library_previous = (previous);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/variations.js
/**
 * WordPress dependencies
 */


const post_navigation_link_variations_variations = [{
  isDefault: true,
  name: 'post-next',
  title: (0,external_wp_i18n_namespaceObject.__)('Next post'),
  description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that follows the current post.'),
  icon: library_next,
  attributes: {
    type: 'next'
  },
  scope: ['inserter', 'transform']
}, {
  name: 'post-previous',
  title: (0,external_wp_i18n_namespaceObject.__)('Previous post'),
  description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that precedes the current post.'),
  icon: library_previous,
  attributes: {
    type: 'previous'
  },
  scope: ['inserter', 'transform']
}];
/**
 * Add `isActive` function to all `post-navigation-link` variations, if not defined.
 * `isActive` function is used to find a variation match from a created
 *  Block by providing its attributes.
 */

post_navigation_link_variations_variations.forEach(variation => {
  if (variation.isActive) return;

  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
});
/* harmony default export */ var post_navigation_link_variations = (post_navigation_link_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
/**
 * Internal dependencies
 */
const post_navigation_link_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-navigation-link",
  title: "Post Navigation Link",
  category: "theme",
  description: "Displays the next or previous post link that is adjacent to the current post.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    },
    type: {
      type: "string",
      "default": "next"
    },
    label: {
      type: "string"
    },
    showTitle: {
      type: "boolean",
      "default": false
    },
    linkLabel: {
      type: "boolean",
      "default": false
    }
  },
  supports: {
    reusable: false,
    html: false,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};


const {
  name: post_navigation_link_name
} = post_navigation_link_metadata;

const post_navigation_link_settings = {
  edit: PostNavigationLinkEdit,
  variations: post_navigation_link_variations
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







const post_template_edit_TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];

function PostTemplateInnerBlocks() {
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
    className: 'wp-block-post'
  }, {
    template: post_template_edit_TEMPLATE
  });
  return (0,external_wp_element_namespaceObject.createElement)("li", innerBlocksProps);
}

function PostTemplateBlockPreview(_ref) {
  let {
    blocks,
    blockContextId,
    isHidden,
    setActiveBlockContextId
  } = _ref;
  const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
    blocks,
    props: {
      className: 'wp-block-post'
    }
  });

  const handleOnClick = () => {
    setActiveBlockContextId(blockContextId);
  };

  const style = {
    display: isHidden ? 'none' : undefined
  };
  return (0,external_wp_element_namespaceObject.createElement)("li", _extends({}, blockPreviewProps, {
    tabIndex: 0 // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
    ,
    role: "button",
    onClick: handleOnClick,
    onKeyPress: handleOnClick,
    style: style
  }));
}

const MemoizedPostTemplateBlockPreview = (0,external_wp_element_namespaceObject.memo)(PostTemplateBlockPreview);
function PostTemplateEdit(_ref2) {
  let {
    clientId,
    context: {
      query: {
        perPage,
        offset,
        postType,
        order,
        orderBy,
        author,
        search,
        exclude,
        sticky,
        inherit,
        taxQuery
      } = {},
      queryContext = [{
        page: 1
      }],
      templateSlug,
      displayLayout: {
        type: layoutType = 'flex',
        columns = 1
      } = {}
    }
  } = _ref2;
  const [{
    page
  }] = queryContext;
  const [activeBlockContextId, setActiveBlockContextId] = (0,external_wp_element_namespaceObject.useState)();
  const {
    posts,
    blocks
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords,
      getTaxonomies
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getBlocks
    } = select(external_wp_blockEditor_namespaceObject.store);
    const taxonomies = getTaxonomies({
      type: postType,
      per_page: -1,
      context: 'view'
    });
    const query = {
      offset: perPage ? perPage * (page - 1) + offset : 0,
      order,
      orderby: orderBy
    };

    if (taxQuery) {
      // We have to build the tax query for the REST API and use as
      // keys the taxonomies `rest_base` with the `term ids` as values.
      const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, _ref3) => {
        let [taxonomySlug, terms] = _ref3;
        const taxonomy = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.find(_ref4 => {
          let {
            slug
          } = _ref4;
          return slug === taxonomySlug;
        });

        if (taxonomy !== null && taxonomy !== void 0 && taxonomy.rest_base) {
          accumulator[taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.rest_base] = terms;
        }

        return accumulator;
      }, {});

      if (!!Object.keys(builtTaxQuery).length) {
        Object.assign(query, builtTaxQuery);
      }
    }

    if (perPage) {
      query.per_page = perPage;
    }

    if (author) {
      query.author = author;
    }

    if (search) {
      query.search = search;
    }

    if (exclude !== null && exclude !== void 0 && exclude.length) {
      query.exclude = exclude;
    } // If sticky is not set, it will return all posts in the results.
    // If sticky is set to `only`, it will limit the results to sticky posts only.
    // If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.


    if (sticky) {
      query.sticky = sticky === 'only';
    } // If `inherit` is truthy, adjust conditionally the query to create a better preview.


    if (inherit) {
      // Change the post-type if needed.
      if (templateSlug !== null && templateSlug !== void 0 && templateSlug.startsWith('archive-')) {
        query.postType = templateSlug.replace('archive-', '');
        postType = query.postType;
      }
    }

    return {
      posts: getEntityRecords('postType', postType, query),
      blocks: getBlocks(clientId)
    };
  }, [perPage, page, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery]);
  const blockContexts = (0,external_wp_element_namespaceObject.useMemo)(() => posts === null || posts === void 0 ? void 0 : posts.map(post => ({
    postType: post.type,
    postId: post.id
  })), [posts]);
  const hasLayoutFlex = layoutType === 'flex' && columns > 1;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      'is-flex-container': hasLayoutFlex,
      [`columns-${columns}`]: hasLayoutFlex
    })
  });

  if (!posts) {
    return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
  }

  if (!posts.length) {
    return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, " ", (0,external_wp_i18n_namespaceObject.__)('No results found.'));
  } // To avoid flicker when switching active block contexts, a preview is rendered
  // for each block context, but the preview for the active block context is hidden.
  // This ensures that when it is displayed again, the cached rendering of the
  // block preview is used, instead of having to re-render the preview from scratch.


  return (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, blockContexts && blockContexts.map(blockContext => {
    var _blockContexts$, _blockContexts$2;

    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
      key: blockContext.postId,
      value: blockContext
    }, blockContext.postId === (activeBlockContextId || ((_blockContexts$ = blockContexts[0]) === null || _blockContexts$ === void 0 ? void 0 : _blockContexts$.postId)) ? (0,external_wp_element_namespaceObject.createElement)(PostTemplateInnerBlocks, null) : null, (0,external_wp_element_namespaceObject.createElement)(MemoizedPostTemplateBlockPreview, {
      blocks: blocks,
      blockContextId: blockContext.postId,
      setActiveBlockContextId: setActiveBlockContextId,
      isHidden: blockContext.postId === (activeBlockContextId || ((_blockContexts$2 = blockContexts[0]) === null || _blockContexts$2 === void 0 ? void 0 : _blockContexts$2.postId))
    }));
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/save.js


/**
 * WordPress dependencies
 */

function PostTemplateSave() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_template_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-template",
  title: "Post Template",
  category: "theme",
  parent: ["core/query"],
  description: "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.",
  textdomain: "default",
  usesContext: ["queryId", "query", "queryContext", "displayLayout", "templateSlug"],
  supports: {
    reusable: false,
    html: false,
    align: true,
    __experimentalLayout: {
      allowEditing: false
    }
  },
  style: "wp-block-post-template",
  editorStyle: "wp-block-post-template-editor"
};


const {
  name: post_template_name
} = post_template_metadata;

const post_template_settings = {
  icon: library_layout,
  edit: PostTemplateEdit,
  save: PostTemplateSave
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/use-post-terms.js
/**
 * WordPress dependencies
 */


function usePostTerms(_ref) {
  var _term$visibility2;

  let {
    postId,
    postType,
    term
  } = _ref;
  const {
    rest_base: restBase,
    slug
  } = term;
  const [termIds] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, restBase, postId);
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _term$visibility;

    const visible = term === null || term === void 0 ? void 0 : (_term$visibility = term.visibility) === null || _term$visibility === void 0 ? void 0 : _term$visibility.publicly_queryable;

    if (!visible) {
      return {
        postTerms: [],
        _isLoading: false,
        hasPostTerms: false
      };
    }

    if (!termIds) {
      var _term$postTerms;

      // Waiting for post terms to be fetched.
      return {
        isLoading: term === null || term === void 0 ? void 0 : (_term$postTerms = term.postTerms) === null || _term$postTerms === void 0 ? void 0 : _term$postTerms.includes(postType)
      };
    }

    if (!termIds.length) {
      return {
        isLoading: false
      };
    }

    const {
      getEntityRecords,
      isResolving
    } = select(external_wp_coreData_namespaceObject.store);
    const taxonomyArgs = ['taxonomy', slug, {
      include: termIds,
      context: 'view'
    }];
    const terms = getEntityRecords(...taxonomyArgs);

    const _isLoading = isResolving('getEntityRecords', taxonomyArgs);

    return {
      postTerms: terms,
      isLoading: _isLoading,
      hasPostTerms: !!(terms !== null && terms !== void 0 && terms.length)
    };
  }, [termIds, term === null || term === void 0 ? void 0 : (_term$visibility2 = term.visibility) === null || _term$visibility2 === void 0 ? void 0 : _term$visibility2.publicly_queryable]);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


function PostTermsEdit(_ref) {
  var _selectedTerm$labels;

  let {
    attributes,
    clientId,
    context,
    setAttributes
  } = _ref;
  const {
    term,
    textAlign,
    separator
  } = attributes;
  const {
    postId,
    postType
  } = context;
  const selectedTerm = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _taxonomy$visibility;

    if (!term) return {};
    const {
      getTaxonomy
    } = select(external_wp_coreData_namespaceObject.store);
    const taxonomy = getTaxonomy(term);
    return taxonomy !== null && taxonomy !== void 0 && (_taxonomy$visibility = taxonomy.visibility) !== null && _taxonomy$visibility !== void 0 && _taxonomy$visibility.publicly_queryable ? taxonomy : {};
  }, [term]);
  const {
    postTerms,
    hasPostTerms,
    isLoading
  } = usePostTerms({
    postId,
    postType,
    term: selectedTerm
  });
  const hasPost = postId && postType;
  const blockInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(clientId);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign,
      [`taxonomy-${term}`]: term
    })
  });

  if (!hasPost || !term) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, blockInformation.title);
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    autoComplete: "off",
    label: (0,external_wp_i18n_namespaceObject.__)('Separator'),
    value: separator || '',
    onChange: nextValue => {
      setAttributes({
        separator: nextValue
      });
    },
    help: (0,external_wp_i18n_namespaceObject.__)('Enter character(s) used to separate terms.')
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, isLoading && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), !isLoading && hasPostTerms && postTerms.map(postTerm => (0,external_wp_element_namespaceObject.createElement)("a", {
    key: postTerm.id,
    href: postTerm.link,
    onClick: event => event.preventDefault()
  }, (0,external_lodash_namespaceObject.unescape)(postTerm.name))).reduce((prev, curr) => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, prev, (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "wp-block-post-terms__separator"
  }, separator || ' '), curr)), !isLoading && !hasPostTerms && ((selectedTerm === null || selectedTerm === void 0 ? void 0 : (_selectedTerm$labels = selectedTerm.labels) === null || _selectedTerm$labels === void 0 ? void 0 : _selectedTerm$labels.no_terms) || (0,external_wp_i18n_namespaceObject.__)('Term items not found.'))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-categories.js


/**
 * WordPress dependencies
 */

const postCategories = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20 4H4v1.5h16V4zm-2 9h-3c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3zM4 9.5h9V8H4v1.5zM9 13H6c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3z",
  fillRule: "evenodd",
  clipRule: "evenodd"
}));
/* harmony default export */ var post_categories = (postCategories);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-terms.js


/**
 * WordPress dependencies
 */

const postTerms = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M8.1 12.3c.1.1.3.3.5.3.2.1.4.1.6.1.2 0 .4 0 .6-.1.2-.1.4-.2.5-.3l3-3c.3-.3.5-.7.5-1.1 0-.4-.2-.8-.5-1.1L9.7 3.5c-.1-.2-.3-.3-.5-.3H5c-.4 0-.8.4-.8.8v4.2c0 .2.1.4.2.5l3.7 3.6zM5.8 4.8h3.1l3.4 3.4v.1l-3 3 .5.5-.7-.5-3.3-3.4V4.8zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z"
}));
/* harmony default export */ var post_terms = (postTerms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/variations.js
/**
 * WordPress dependencies
 */


const post_terms_variations_variations = [{
  name: 'category',
  title: (0,external_wp_i18n_namespaceObject.__)('Post Categories'),
  description: (0,external_wp_i18n_namespaceObject.__)("Display a post's categories."),
  icon: post_categories,
  isDefault: true,
  attributes: {
    term: 'category'
  },
  isActive: blockAttributes => blockAttributes.term === 'category'
}, {
  name: 'post_tag',
  title: (0,external_wp_i18n_namespaceObject.__)('Post Tags'),
  description: (0,external_wp_i18n_namespaceObject.__)("Display a post's tags."),
  icon: post_terms,
  attributes: {
    term: 'post_tag'
  },
  isActive: blockAttributes => blockAttributes.term === 'post_tag'
}];
/* harmony default export */ var post_terms_variations = (post_terms_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
/**
 * Internal dependencies
 */
const post_terms_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-terms",
  title: "Post Terms",
  category: "theme",
  description: "Post terms.",
  textdomain: "default",
  attributes: {
    term: {
      type: "string"
    },
    textAlign: {
      type: "string"
    },
    separator: {
      type: "string",
      "default": ", "
    }
  },
  usesContext: ["postId", "postType"],
  supports: {
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    typography: {
      lineHeight: true,
      fontSize: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  style: "wp-block-post-terms"
};


/**
 * WordPress dependencies
 */


const {
  name: post_terms_name
} = post_terms_metadata;

const post_terms_settings = {
  icon: post_terms,
  variations: post_terms_variations,
  edit: PostTermsEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



function PostTitleEdit(_ref) {
  let {
    attributes: {
      level,
      textAlign,
      isLink,
      rel,
      linkTarget
    },
    setAttributes,
    context: {
      postType,
      postId,
      queryId
    }
  } = _ref;
  const TagName = 0 === level ? 'p' : 'h' + level;
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
  const userCanEdit = useCanEditEntity('postType', postType, postId);
  const [rawTitle = '', setTitle, fullTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
  const [link] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'link', postId);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  let titleElement = (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_i18n_namespaceObject.__)('Post Title'));

  if (postType && postId) {
    titleElement = userCanEdit && !isDescendentOfQueryLoop ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, _extends({
      tagName: TagName,
      placeholder: (0,external_wp_i18n_namespaceObject.__)('No Title'),
      value: rawTitle,
      onChange: setTitle,
      __experimentalVersion: 2
    }, blockProps)) : (0,external_wp_element_namespaceObject.createElement)(TagName, _extends({}, blockProps, {
      dangerouslySetInnerHTML: {
        __html: fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered
      }
    }));
  }

  if (isLink && postType && postId) {
    titleElement = userCanEdit && !isDescendentOfQueryLoop ? (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
      tagName: "a",
      href: link,
      target: linkTarget,
      rel: rel,
      placeholder: !rawTitle.length ? (0,external_wp_i18n_namespaceObject.__)('No Title') : null,
      value: rawTitle,
      onChange: setTitle,
      __experimentalVersion: 2
    })) : (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
      href: link,
      target: linkTarget,
      rel: rel,
      onClick: event => event.preventDefault(),
      dangerouslySetInnerHTML: {
        __html: fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered
      }
    }));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
    selectedLevel: level,
    onChange: newLevel => setAttributes({
      level: newLevel
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Make title a link'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: linkTarget === '_blank'
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
    value: rel,
    onChange: newRel => setAttributes({
      rel: newRel
    })
  })))), titleElement);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/deprecated.js
/**
 * Internal dependencies
 */

const post_title_deprecated_v1 = {
  attributes: {
    textAlign: {
      type: 'string'
    },
    level: {
      type: 'number',
      default: 2
    },
    isLink: {
      type: 'boolean',
      default: false
    },
    rel: {
      type: 'string',
      attribute: 'rel',
      default: ''
    },
    linkTarget: {
      type: 'string',
      default: '_self'
    }
  },
  supports: {
    align: ['wide', 'full'],
    html: false,
    color: {
      gradients: true,
      link: true
    },
    spacing: {
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var post_title_deprecated = ([post_title_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const post_title_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/post-title",
  title: "Post Title",
  category: "theme",
  description: "Displays the title of a post, page, or any other content-type.",
  textdomain: "default",
  usesContext: ["postId", "postType", "queryId"],
  attributes: {
    textAlign: {
      type: "string"
    },
    level: {
      type: "number",
      "default": 2
    },
    isLink: {
      type: "boolean",
      "default": false
    },
    rel: {
      type: "string",
      attribute: "rel",
      "default": ""
    },
    linkTarget: {
      type: "string",
      "default": "_self"
    }
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    spacing: {
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true,
        textTransform: true
      }
    }
  },
  style: "wp-block-post-title"
};


const {
  name: post_title_name
} = post_title_metadata;

const post_title_settings = {
  icon: post_title,
  edit: PostTitleEdit,
  deprecated: post_title_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/preformatted.js


/**
 * WordPress dependencies
 */

const preformatted = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 16.5h6V15H7v1.5zm4-4h6V11h-6v1.5zM9 11H7v1.5h2V11zm6 5.5h2V15h-2v1.5z"
}));
/* harmony default export */ var library_preformatted = (preformatted);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js



/**
 * WordPress dependencies
 */


function PreformattedEdit(_ref) {
  let {
    attributes,
    mergeBlocks,
    setAttributes,
    onRemove,
    style
  } = _ref;
  const {
    content
  } = attributes;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    style
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    tagName: "pre",
    identifier: "content",
    preserveWhiteSpace: true,
    value: content,
    onChange: nextContent => {
      setAttributes({
        content: nextContent
      });
    },
    onRemove: onRemove,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preformatted text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write preformatted text…'),
    onMerge: mergeBlocks
  }, blockProps, {
    __unstablePastePlainText: true
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/save.js


/**
 * WordPress dependencies
 */

function preformatted_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    content
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: content
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js
/**
 * WordPress dependencies
 */

const preformatted_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/code', 'core/paragraph'],
    transform: _ref => {
      let {
        content,
        anchor
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/preformatted', {
        content,
        anchor
      });
    }
  }, {
    type: 'raw',
    isMatch: node => node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE'),
    schema: _ref2 => {
      let {
        phrasingContentSchema
      } = _ref2;
      return {
        pre: {
          children: phrasingContentSchema
        }
      };
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/paragraph'],
    transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
  }, {
    type: 'block',
    blocks: ['core/code'],
    transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', attributes)
  }]
};
/* harmony default export */ var preformatted_transforms = (preformatted_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const preformatted_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/preformatted",
  title: "Preformatted",
  category: "text",
  description: "Add text that respects your spacing and tabs, and also allows styling.",
  textdomain: "default",
  attributes: {
    content: {
      type: "string",
      source: "html",
      selector: "pre",
      "default": "",
      __unstablePreserveWhiteSpace: true,
      __experimentalRole: "content"
    }
  },
  supports: {
    anchor: true,
    color: {
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  style: "wp-block-preformatted"
};


const {
  name: preformatted_name
} = preformatted_metadata;

const preformatted_settings = {
  icon: library_preformatted,
  example: {
    attributes: {
      /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
      // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.
      content: (0,external_wp_i18n_namespaceObject.__)('EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\nWindow, very small in the distance, illuminated.\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;')
      /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */

    }
  },
  transforms: preformatted_transforms,
  edit: PreformattedEdit,
  save: preformatted_save_save,

  merge(attributes, attributesToMerge) {
    return {
      content: attributes.content + attributesToMerge.content
    };
  }

};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pullquote.js


/**
 * WordPress dependencies
 */

const pullquote = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 8H6c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v4zM4 4v1.5h16V4H4zm0 16h16v-1.5H4V20z"
}));
/* harmony default export */ var library_pullquote = (pullquote);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js
const SOLID_COLOR_CLASS = `is-style-solid-color`;

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


const pullquote_deprecated_blockAttributes = {
  value: {
    type: 'string',
    source: 'html',
    selector: 'blockquote',
    multiline: 'p'
  },
  citation: {
    type: 'string',
    source: 'html',
    selector: 'cite',
    default: ''
  },
  mainColor: {
    type: 'string'
  },
  customMainColor: {
    type: 'string'
  },
  textColor: {
    type: 'string'
  },
  customTextColor: {
    type: 'string'
  }
};

function parseBorderColor(styleString) {
  if (!styleString) {
    return;
  }

  const matches = styleString.match(/border-color:([^;]+)[;]?/);

  if (matches && matches[1]) {
    return matches[1];
  }
} // TODO: this is ripe for a bit of a clean up according to the example in https://developer.wordpress.org/block-editor/reference-guides/block-api/block-deprecation/#example


const pullquote_deprecated_deprecated = [{
  attributes: { ...pullquote_deprecated_blockAttributes
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      mainColor,
      customMainColor,
      customTextColor,
      textColor,
      value,
      citation,
      className
    } = attributes;
    const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
    let figureClasses, figureStyles; // Is solid color style

    if (isSolidColorStyle) {
      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
      figureClasses = classnames_default()({
        'has-background': backgroundClass || customMainColor,
        [backgroundClass]: backgroundClass
      });
      figureStyles = {
        backgroundColor: backgroundClass ? undefined : customMainColor
      }; // Is normal style and a custom color is being used ( we can set a style directly with its value)
    } else if (customMainColor) {
      figureStyles = {
        borderColor: customMainColor
      };
    }

    const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const blockquoteClasses = classnames_default()({
      'has-text-color': textColor || customTextColor,
      [blockquoteTextColorClass]: blockquoteTextColorClass
    });
    const blockquoteStyles = blockquoteTextColorClass ? undefined : {
      color: customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className: figureClasses,
      style: figureStyles
    }), (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      className: blockquoteClasses,
      style: blockquoteStyles
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: value,
      multiline: true
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "cite",
      value: citation
    })));
  },

  migrate(_ref2) {
    let {
      className,
      mainColor,
      customMainColor,
      customTextColor,
      ...attributes
    } = _ref2;
    const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
    let style;

    if (customMainColor) {
      if (!isSolidColorStyle) {
        // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
        style = {
          border: {
            color: customMainColor
          }
        };
      } else {
        // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
        style = {
          color: {
            background: customMainColor
          }
        };
      }
    } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.


    if (customTextColor && style) {
      style.color = { ...style.color,
        text: customTextColor
      };
    }

    return {
      className,
      backgroundColor: isSolidColorStyle ? mainColor : undefined,
      borderColor: isSolidColorStyle ? undefined : mainColor,
      textAlign: isSolidColorStyle ? 'left' : undefined,
      style,
      ...attributes
    };
  }

}, {
  attributes: { ...pullquote_deprecated_blockAttributes,
    // figureStyle is an attribute that never existed.
    // We are using it as a way to access the styles previously applied to the figure.
    figureStyle: {
      source: 'attribute',
      selector: 'figure',
      attribute: 'style'
    }
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      mainColor,
      customMainColor,
      textColor,
      customTextColor,
      value,
      citation,
      className,
      figureStyle
    } = attributes;
    const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
    let figureClasses, figureStyles; // Is solid color style

    if (isSolidColorStyle) {
      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
      figureClasses = classnames_default()({
        'has-background': backgroundClass || customMainColor,
        [backgroundClass]: backgroundClass
      });
      figureStyles = {
        backgroundColor: backgroundClass ? undefined : customMainColor
      }; // Is normal style and a custom color is being used ( we can set a style directly with its value)
    } else if (customMainColor) {
      figureStyles = {
        borderColor: customMainColor
      }; // If normal style and a named color are being used, we need to retrieve the color value to set the style,
      // as there is no expectation that themes create classes that set border colors.
    } else if (mainColor) {
      // Previously here we queried the color settings to know the color value
      // of a named color. This made the save function impure and the block was refactored,
      // because meanwhile a change in the editor made it impossible to query color settings in the save function.
      // Here instead of querying the color settings to know the color value, we retrieve the value
      // directly from the style previously serialized.
      const borderColor = parseBorderColor(figureStyle);
      figureStyles = {
        borderColor
      };
    }

    const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const blockquoteClasses = (textColor || customTextColor) && classnames_default()('has-text-color', {
      [blockquoteTextColorClass]: blockquoteTextColorClass
    });
    const blockquoteStyles = blockquoteTextColorClass ? undefined : {
      color: customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: figureClasses,
      style: figureStyles
    }, (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      className: blockquoteClasses,
      style: blockquoteStyles
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: value,
      multiline: true
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "cite",
      value: citation
    })));
  },

  migrate(_ref4) {
    let {
      className,
      figureStyle,
      mainColor,
      customMainColor,
      customTextColor,
      ...attributes
    } = _ref4;
    const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
    let style;

    if (customMainColor) {
      if (!isSolidColorStyle) {
        // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
        style = {
          border: {
            color: customMainColor
          }
        };
      } else {
        // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
        style = {
          color: {
            background: customMainColor
          }
        };
      }
    } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.


    if (customTextColor && style) {
      style.color = { ...style.color,
        text: customTextColor
      };
    } // If is the default style, and a main color is set,
    // migrate the main color value into a custom border color.
    // The custom border color value is retrieved by parsing the figure styles.


    if (!isSolidColorStyle && mainColor && figureStyle) {
      const borderColor = parseBorderColor(figureStyle);

      if (borderColor) {
        return { ...attributes,
          className,
          // Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style.
          style: {
            border: {
              color: borderColor
            }
          }
        };
      }
    }

    return {
      className,
      backgroundColor: isSolidColorStyle ? mainColor : undefined,
      borderColor: isSolidColorStyle ? undefined : mainColor,
      textAlign: isSolidColorStyle ? 'left' : undefined,
      style,
      ...attributes
    };
  }

}, {
  attributes: pullquote_deprecated_blockAttributes,

  save(_ref5) {
    let {
      attributes
    } = _ref5;
    const {
      mainColor,
      customMainColor,
      textColor,
      customTextColor,
      value,
      citation,
      className
    } = attributes;
    const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
    let figureClass, figureStyles; // Is solid color style

    if (isSolidColorStyle) {
      figureClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);

      if (!figureClass) {
        figureStyles = {
          backgroundColor: customMainColor
        };
      } // Is normal style and a custom color is being used ( we can set a style directly with its value)

    } else if (customMainColor) {
      figureStyles = {
        borderColor: customMainColor
      }; // Is normal style and a named color is being used, we need to retrieve the color value to set the style,
      // as there is no expectation that themes create classes that set border colors.
    } else if (mainColor) {
      const colors = (0,external_lodash_namespaceObject.get)((0,external_wp_data_namespaceObject.select)(external_wp_blockEditor_namespaceObject.store).getSettings(), ['colors'], []);
      const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colors, mainColor);
      figureStyles = {
        borderColor: colorObject.color
      };
    }

    const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
    const blockquoteClasses = textColor || customTextColor ? classnames_default()('has-text-color', {
      [blockquoteTextColorClass]: blockquoteTextColorClass
    }) : undefined;
    const blockquoteStyle = blockquoteTextColorClass ? undefined : {
      color: customTextColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("figure", {
      className: figureClass,
      style: figureStyles
    }, (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      className: blockquoteClasses,
      style: blockquoteStyle
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: value,
      multiline: true
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "cite",
      value: citation
    })));
  },

  migrate(_ref6) {
    let {
      className,
      mainColor,
      customMainColor,
      customTextColor,
      ...attributes
    } = _ref6;
    const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
    let style = {};

    if (customMainColor) {
      if (!isSolidColorStyle) {
        // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
        style = {
          border: {
            color: customMainColor
          }
        };
      } else {
        // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
        style = {
          color: {
            background: customMainColor
          }
        };
      }
    } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.


    if (customTextColor && style) {
      style.color = { ...style.color,
        text: customTextColor
      };
    }

    return {
      className,
      backgroundColor: isSolidColorStyle ? mainColor : undefined,
      borderColor: isSolidColorStyle ? undefined : mainColor,
      textAlign: isSolidColorStyle ? 'left' : undefined,
      style,
      ...attributes
    };
  }

}, {
  attributes: { ...pullquote_deprecated_blockAttributes
  },

  save(_ref7) {
    let {
      attributes
    } = _ref7;
    const {
      value,
      citation
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("blockquote", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: value,
      multiline: true
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "cite",
      value: citation
    }));
  }

}, {
  attributes: { ...pullquote_deprecated_blockAttributes,
    citation: {
      type: 'string',
      source: 'html',
      selector: 'footer'
    },
    align: {
      type: 'string',
      default: 'none'
    }
  },

  save(_ref8) {
    let {
      attributes
    } = _ref8;
    const {
      value,
      citation,
      align
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      className: `align${align}`
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: value,
      multiline: true
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "footer",
      value: citation
    }));
  }

}];
/* harmony default export */ var pullquote_deprecated = (pullquote_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js
const Figure = 'figure';

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js
const BlockQuote = 'blockquote';

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



const isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';

function PullQuoteEdit(_ref) {
  let {
    attributes,
    setAttributes,
    isSelected,
    insertBlocksAfter
  } = _ref;
  const {
    textAlign,
    citation,
    value
  } = attributes;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  });
  const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(Figure, blockProps, (0,external_wp_element_namespaceObject.createElement)(BlockQuote, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    identifier: "value",
    multiline: true,
    value: value,
    onChange: nextValue => setAttributes({
      value: nextValue
    }),
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote text'),
    placeholder: // translators: placeholder text used for the quote
    (0,external_wp_i18n_namespaceObject.__)('Add quote'),
    textAlign: "center"
  }), shouldShowCitation && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    identifier: "citation",
    tagName: isWebPlatform ? 'cite' : undefined,
    style: {
      display: 'block'
    },
    value: citation,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote citation text'),
    placeholder: // translators: placeholder text used for the citation
    (0,external_wp_i18n_namespaceObject.__)('Add citation'),
    onChange: nextCitation => setAttributes({
      citation: nextCitation
    }),
    className: "wp-block-pullquote__citation",
    __unstableMobileNoFocusOnMount: true,
    textAlign: "center",
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  }))));
}

/* harmony default export */ var pullquote_edit = (PullQuoteEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function pullquote_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    textAlign,
    citation,
    value
  } = attributes;
  const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
  return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    })
  }), (0,external_wp_element_namespaceObject.createElement)("blockquote", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: value,
    multiline: true
  }), shouldShowCitation && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "cite",
    value: citation
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js
/**
 * WordPress dependencies
 */


const pullquote_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/paragraph'],
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
        value: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: (0,external_wp_richText_namespaceObject.join)(attributes.map(_ref => {
            let {
              content
            } = _ref;
            return (0,external_wp_richText_namespaceObject.create)({
              html: content
            });
          }), '\u2028'),
          multilineTag: 'p'
        }),
        anchor: attributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/heading'],
    transform: _ref2 => {
      let {
        content,
        anchor
      } = _ref2;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
        value: `<p>${content}</p>`,
        anchor
      });
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/paragraph'],
    transform: _ref3 => {
      let {
        value,
        citation
      } = _ref3;
      const paragraphs = [];

      if (value && value !== '<p></p>') {
        paragraphs.push(...(0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
          html: value,
          multilineTag: 'p'
        }), '\u2028').map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
            value: piece
          })
        })));
      }

      if (citation && citation !== '<p></p>') {
        paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: citation
        }));
      }

      if (paragraphs.length === 0) {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: ''
        });
      }

      return paragraphs;
    }
  }, {
    type: 'block',
    blocks: ['core/heading'],
    transform: _ref4 => {
      let {
        value,
        citation,
        ...attrs
      } = _ref4;

      // If there is no pullquote content, use the citation as the
      // content of the resulting heading. A nonexistent citation
      // will result in an empty heading.
      if (value === '<p></p>') {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
          content: citation
        });
      }

      const pieces = (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
        html: value,
        multilineTag: 'p'
      }), '\u2028');
      const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
        content: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: pieces[0]
        })
      });

      if (!citation && pieces.length === 1) {
        return headingBlock;
      }

      const quotePieces = pieces.slice(1);
      const pullquoteBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { ...attrs,
        citation,
        value: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: quotePieces.length ? (0,external_wp_richText_namespaceObject.join)(pieces.slice(1), '\u2028') : (0,external_wp_richText_namespaceObject.create)(),
          multilineTag: 'p'
        })
      });
      return [headingBlock, pullquoteBlock];
    }
  }]
};
/* harmony default export */ var pullquote_transforms = (pullquote_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const pullquote_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/pullquote",
  title: "Pullquote",
  category: "text",
  description: "Give special visual emphasis to a quote from your text.",
  textdomain: "default",
  attributes: {
    value: {
      type: "string",
      source: "html",
      selector: "blockquote",
      multiline: "p",
      __experimentalRole: "content"
    },
    citation: {
      type: "string",
      source: "html",
      selector: "cite",
      "default": "",
      __experimentalRole: "content"
    },
    textAlign: {
      type: "string"
    }
  },
  supports: {
    anchor: true,
    align: ["left", "right", "wide", "full"],
    color: {
      gradients: true,
      background: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true
      }
    },
    __experimentalBorder: {
      color: true,
      radius: true,
      style: true,
      width: true,
      __experimentalDefaultControls: {
        color: true,
        radius: true,
        style: true,
        width: true
      }
    }
  },
  editorStyle: "wp-block-pullquote-editor",
  style: "wp-block-pullquote"
};


const {
  name: pullquote_name
} = pullquote_metadata;

const pullquote_settings = {
  icon: library_pullquote,
  example: {
    attributes: {
      value: '<p>' + // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.
      (0,external_wp_i18n_namespaceObject.__)('One of the hardest things to do in technology is disrupt yourself.') + '</p>',
      citation: (0,external_wp_i18n_namespaceObject.__)('Matt Mullenweg')
    }
  },
  transforms: pullquote_transforms,
  edit: pullquote_edit,
  save: pullquote_save_save,
  deprecated: pullquote_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/loop.js


/**
 * WordPress dependencies
 */

const loop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.1823 11.6392C18.1823 13.0804 17.0139 14.2487 15.5727 14.2487C14.3579 14.2487 13.335 13.4179 13.0453 12.2922L13.0377 12.2625L13.0278 12.2335L12.3985 10.377L12.3942 10.3785C11.8571 8.64997 10.246 7.39405 8.33961 7.39405C5.99509 7.39405 4.09448 9.29465 4.09448 11.6392C4.09448 13.9837 5.99509 15.8843 8.33961 15.8843C8.88499 15.8843 9.40822 15.781 9.88943 15.5923L9.29212 14.0697C8.99812 14.185 8.67729 14.2487 8.33961 14.2487C6.89838 14.2487 5.73003 13.0804 5.73003 11.6392C5.73003 10.1979 6.89838 9.02959 8.33961 9.02959C9.55444 9.02959 10.5773 9.86046 10.867 10.9862L10.8772 10.9836L11.4695 12.7311C11.9515 14.546 13.6048 15.8843 15.5727 15.8843C17.9172 15.8843 19.8178 13.9837 19.8178 11.6392C19.8178 9.29465 17.9172 7.39404 15.5727 7.39404C15.0287 7.39404 14.5066 7.4968 14.0264 7.6847L14.6223 9.20781C14.9158 9.093 15.2358 9.02959 15.5727 9.02959C17.0139 9.02959 18.1823 10.1979 18.1823 11.6392Z"
}));
/* harmony default export */ var library_loop = (loop);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/settings.js


/**
 * WordPress dependencies
 */

const settings_settings = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M14.5 13.8c-1.1 0-2.1.7-2.4 1.8H4V17h8.1c.3 1 1.3 1.8 2.4 1.8s2.1-.7 2.4-1.8H20v-1.5h-3.1c-.3-1-1.3-1.7-2.4-1.7zM11.9 7c-.3-1-1.3-1.8-2.4-1.8S7.4 6 7.1 7H4v1.5h3.1c.3 1 1.3 1.8 2.4 1.8s2.1-.7 2.4-1.8H20V7h-8.1z"
}));
/* harmony default export */ var library_settings = (settings_settings);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-toolbar.js


/**
 * WordPress dependencies
 */




function QueryToolbar(_ref) {
  let {
    attributes: {
      query,
      displayLayout
    },
    setQuery,
    setDisplayLayout,
    openPatternSelectionModal
  } = _ref;
  const maxPageInputId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryToolbar, 'blocks-query-pagination-max-page-input');
  const displayLayoutControls = [{
    icon: library_list,
    title: (0,external_wp_i18n_namespaceObject.__)('List view'),
    onClick: () => setDisplayLayout({
      type: 'list'
    }),
    isActive: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'list'
  }, {
    icon: library_grid,
    title: (0,external_wp_i18n_namespaceObject.__)('Grid view'),
    onClick: () => setDisplayLayout({
      type: 'flex',
      columns: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.columns) || 3
    }),
    isActive: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'flex'
  }];
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !query.inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, {
    contentClassName: "block-library-query-toolbar__popover",
    renderToggle: _ref2 => {
      let {
        onToggle
      } = _ref2;
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
        icon: library_settings,
        label: (0,external_wp_i18n_namespaceObject.__)('Display settings'),
        onClick: onToggle
      });
    },
    renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, {
      __unstableInputWidth: "60px",
      label: (0,external_wp_i18n_namespaceObject.__)('Items per Page'),
      labelPosition: "edge",
      min: 1,
      max: 100,
      onChange: value => {
        if (isNaN(value) || value < 1 || value > 100) {
          return;
        }

        setQuery({
          perPage: value
        });
      },
      step: "1",
      value: query.perPage,
      isDragEnabled: false
    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, {
      __unstableInputWidth: "60px",
      label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
      labelPosition: "edge",
      min: 0,
      max: 100,
      onChange: value => {
        if (isNaN(value) || value < 0 || value > 100) {
          return;
        }

        setQuery({
          offset: value
        });
      },
      step: "1",
      value: query.offset,
      isDragEnabled: false
    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
      id: maxPageInputId,
      help: (0,external_wp_i18n_namespaceObject.__)('Limit the pages you want to show, even if the query has more results. To show all pages use 0 (zero).')
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, {
      id: maxPageInputId,
      __unstableInputWidth: "60px",
      label: (0,external_wp_i18n_namespaceObject.__)('Max page to show'),
      labelPosition: "edge",
      min: 0,
      onChange: value => {
        if (isNaN(value) || value < 0) {
          return;
        }

        setQuery({
          pages: value
        });
      },
      step: "1",
      value: query.pages,
      isDragEnabled: false
    })))
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
    className: "wp-block-template-part__block-control-group"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: openPatternSelectionModal
  }, (0,external_wp_i18n_namespaceObject.__)('Replace'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
    controls: displayLayoutControls
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/order-control.js


/**
 * WordPress dependencies
 */


const orderOptions = [{
  label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
  value: 'date/desc'
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
  value: 'date/asc'
}, {
  /* translators: label for ordering posts by title in ascending order */
  label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
  value: 'title/asc'
}, {
  /* translators: label for ordering posts by title in descending order */
  label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
  value: 'title/desc'
}];

function OrderControl(_ref) {
  let {
    order,
    orderBy,
    onChange
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
    value: `${orderBy}/${order}`,
    options: orderOptions,
    onChange: value => {
      const [newOrderBy, newOrder] = value.split('/');
      onChange({
        order: newOrder,
        orderBy: newOrderBy
      });
    }
  });
}

/* harmony default export */ var order_control = (OrderControl);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/utils.js
/**
 * WordPress dependencies
 */



/**
 * @typedef IHasNameAndId
 * @property {string|number} id   The entity's id.
 * @property {string}        name The entity's name.
 */

/**
 * The object used in Query block that contains info and helper mappings
 * from an array of IHasNameAndId objects.
 *
 * @typedef {Object} QueryEntitiesInfo
 * @property {IHasNameAndId[]}               entities  The array of entities.
 * @property {Object<string, IHasNameAndId>} mapById   Object mapping with the id as key and the entity as value.
 * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.
 * @property {string[]}                      names     Array with the entities' names.
 */

/**
 * Returns a helper object with mapping from Objects that implement
 * the `IHasNameAndId` interface. The returned object is used for
 * integration with `FormTokenField` component.
 *
 * @param {IHasNameAndId[]} entities The entities to extract of helper object.
 * @return {QueryEntitiesInfo} The object with the entities information.
 */

const getEntitiesInfo = entities => {
  const mapping = entities === null || entities === void 0 ? void 0 : entities.reduce((accumulator, entity) => {
    const {
      mapById,
      mapByName,
      names
    } = accumulator;
    mapById[entity.id] = entity;
    mapByName[entity.name] = entity;
    names.push(entity.name);
    return accumulator;
  }, {
    mapById: {},
    mapByName: {},
    names: []
  });
  return {
    entities,
    ...mapping
  };
};
/**
 * Returns a helper object that contains:
 * 1. An `options` object from the available post types, to be passed to a `SelectControl`.
 * 2. A helper map with available taxonomies per post type.
 *
 * @return {Object} The helper object related to post types.
 */

const usePostTypes = () => {
  const postTypes = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getPostTypes;

    const {
      getPostTypes
    } = select(external_wp_coreData_namespaceObject.store);
    const excludedPostTypes = ['attachment'];
    const filteredPostTypes = (_getPostTypes = getPostTypes({
      per_page: -1
    })) === null || _getPostTypes === void 0 ? void 0 : _getPostTypes.filter(_ref => {
      let {
        viewable,
        slug
      } = _ref;
      return viewable && !excludedPostTypes.includes(slug);
    });
    return filteredPostTypes;
  }, []);
  const postTypesTaxonomiesMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!(postTypes !== null && postTypes !== void 0 && postTypes.length)) return;
    return postTypes.reduce((accumulator, type) => {
      accumulator[type.slug] = type.taxonomies;
      return accumulator;
    }, {});
  }, [postTypes]);
  const postTypesSelectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => (postTypes || []).map(_ref2 => {
    let {
      labels,
      slug
    } = _ref2;
    return {
      label: labels.singular_name,
      value: slug
    };
  }), [postTypes]);
  return {
    postTypesTaxonomiesMap,
    postTypesSelectOptions
  };
};
/**
 * Hook that returns the taxonomies associated with a specific post type.
 *
 * @param {string} postType The post type from which to retrieve the associated taxonomies.
 * @return {Object[]} An array of the associated taxonomies.
 */

const useTaxonomies = postType => {
  const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getTaxonomies
    } = select(external_wp_coreData_namespaceObject.store);
    const filteredTaxonomies = getTaxonomies({
      type: postType,
      per_page: -1,
      context: 'view'
    });
    return filteredTaxonomies;
  }, [postType]);
  return taxonomies;
};
/**
 * Recurses over a list of blocks and returns the first found
 * Query Loop block's clientId.
 *
 * @param {WPBlock[]} blocks The list of blocks to look through.
 * @return {string=} The first found Query Loop's clientId.
 */

const getFirstQueryClientIdFromBlocks = blocks => {
  const blocksQueue = [...blocks];

  while (blocksQueue.length > 0) {
    var _block$innerBlocks;

    const block = blocksQueue.shift();

    if (block.name === 'core/query') {
      return block.clientId;
    }

    (_block$innerBlocks = block.innerBlocks) === null || _block$innerBlocks === void 0 ? void 0 : _block$innerBlocks.forEach(innerBlock => {
      blocksQueue.push(innerBlock);
    });
  }
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/author-control.js


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


const author_control_AUTHORS_QUERY = {
  who: 'authors',
  per_page: -1,
  _fields: 'id,name',
  context: 'view'
};

function AuthorControl(_ref) {
  let {
    value,
    onChange
  } = _ref;
  const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getUsers
    } = select(external_wp_coreData_namespaceObject.store);
    return getUsers(author_control_AUTHORS_QUERY);
  }, []);

  if (!authorsList) {
    return null;
  }

  const authorsInfo = getEntitiesInfo(authorsList);
  /**
   * We need to normalize the value because the block operates on a
   * comma(`,`) separated string value and `FormTokenFiels` needs an
   * array.
   */

  const normalizedValue = !value ? [] : value.toString().split(','); // Returns only the existing authors ids. This prevents the component
  // from crashing in the editor, when non existing ids are provided.

  const sanitizedValue = normalizedValue.reduce((accumulator, authorId) => {
    const author = authorsInfo.mapById[authorId];

    if (author) {
      accumulator.push({
        id: authorId,
        value: author.name
      });
    }

    return accumulator;
  }, []);

  const getIdByValue = (entitiesMappedByName, authorValue) => {
    var _entitiesMappedByName;

    const id = (authorValue === null || authorValue === void 0 ? void 0 : authorValue.id) || ((_entitiesMappedByName = entitiesMappedByName[authorValue]) === null || _entitiesMappedByName === void 0 ? void 0 : _entitiesMappedByName.id);
    if (id) return id;
  };

  const onAuthorChange = newValue => {
    const ids = Array.from(newValue.reduce((accumulator, author) => {
      // Verify that new values point to existing entities.
      const id = getIdByValue(authorsInfo.mapByName, author);
      if (id) accumulator.add(id);
      return accumulator;
    }, new Set()));
    onChange({
      author: ids.join(',')
    });
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, {
    label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
    value: sanitizedValue,
    suggestions: authorsInfo.names,
    onChange: onAuthorChange
  });
}

/* harmony default export */ var author_control = (AuthorControl);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/constants.js
const MAX_FETCHED_TERMS = 100;
const DEFAULTS_POSTS_PER_PAGE = 3;
/* harmony default export */ var constants = ({
  MAX_FETCHED_TERMS,
  DEFAULTS_POSTS_PER_PAGE
});

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/taxonomy-controls.js


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


 // Helper function to get the term id based on user input in terms `FormTokenField`.

const getTermIdByTermValue = (termsMappedByName, termValue) => {
  var _termsMappedByName$te;

  // First we check for exact match by `term.id` or case sensitive `term.name` match.
  const termId = (termValue === null || termValue === void 0 ? void 0 : termValue.id) || ((_termsMappedByName$te = termsMappedByName[termValue]) === null || _termsMappedByName$te === void 0 ? void 0 : _termsMappedByName$te.id);
  if (termId) return termId;
  /**
   * Here we make an extra check for entered terms in a non case sensitive way,
   * to match user expectations, due to `FormTokenField` behaviour that shows
   * suggestions which are case insensitive.
   *
   * Although WP tries to discourage users to add terms with the same name (case insensitive),
   * it's still possible if you manually change the name, as long as the terms have different slugs.
   * In this edge case we always apply the first match from the terms list.
   */

  const termValueLower = termValue.toLocaleLowerCase();

  for (const term in termsMappedByName) {
    if (term.toLocaleLowerCase() === termValueLower) {
      return termsMappedByName[term].id;
    }
  }
};

function TaxonomyControls(_ref) {
  let {
    onChange,
    query
  } = _ref;
  const taxonomies = useTaxonomies(query.postType);
  const taxonomiesInfo = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords
    } = select(external_wp_coreData_namespaceObject.store);
    const termsQuery = {
      per_page: MAX_FETCHED_TERMS
    };

    const _taxonomiesInfo = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.map(_ref2 => {
      let {
        slug,
        name
      } = _ref2;

      const _terms = getEntityRecords('taxonomy', slug, termsQuery);

      return {
        slug,
        name,
        terms: getEntitiesInfo(_terms)
      };
    });

    return _taxonomiesInfo;
  }, [taxonomies]);

  const onTermsChange = taxonomySlug => newTermValues => {
    const taxonomyInfo = taxonomiesInfo.find(_ref3 => {
      let {
        slug
      } = _ref3;
      return slug === taxonomySlug;
    });
    if (!taxonomyInfo) return;
    const termIds = Array.from(newTermValues.reduce((accumulator, termValue) => {
      const termId = getTermIdByTermValue(taxonomyInfo.terms.mapByName, termValue);
      if (termId) accumulator.add(termId);
      return accumulator;
    }, new Set()));
    const newTaxQuery = { ...query.taxQuery,
      [taxonomySlug]: termIds
    };
    onChange({
      taxQuery: newTaxQuery
    });
  }; // Returns only the existing term ids in proper format to be
  // used in `FormTokenField`. This prevents the component from
  // crashing in the editor, when non existing term ids were provided.


  const getExistingTaxQueryValue = taxonomySlug => {
    var _query$taxQuery;

    const taxonomyInfo = taxonomiesInfo.find(_ref4 => {
      let {
        slug
      } = _ref4;
      return slug === taxonomySlug;
    });
    if (!taxonomyInfo) return [];
    return (((_query$taxQuery = query.taxQuery) === null || _query$taxQuery === void 0 ? void 0 : _query$taxQuery[taxonomySlug]) || []).reduce((accumulator, termId) => {
      const term = taxonomyInfo.terms.mapById[termId];

      if (term) {
        accumulator.push({
          id: termId,
          value: term.name
        });
      }

      return accumulator;
    }, []);
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !!(taxonomiesInfo !== null && taxonomiesInfo !== void 0 && taxonomiesInfo.length) && taxonomiesInfo.map(_ref5 => {
    var _terms$names;

    let {
      slug,
      name,
      terms
    } = _ref5;

    if (!(terms !== null && terms !== void 0 && (_terms$names = terms.names) !== null && _terms$names !== void 0 && _terms$names.length)) {
      return null;
    }

    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, {
      key: slug,
      label: name,
      value: getExistingTaxQueryValue(slug),
      suggestions: terms.names,
      onChange: onTermsChange(slug)
    });
  }));
}

/* harmony default export */ var taxonomy_controls = (TaxonomyControls);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/index.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */





const stickyOptions = [{
  label: (0,external_wp_i18n_namespaceObject.__)('Include'),
  value: ''
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Exclude'),
  value: 'exclude'
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Only'),
  value: 'only'
}];
function QueryInspectorControls(_ref) {
  let {
    attributes: {
      query,
      displayLayout
    },
    setQuery,
    setDisplayLayout
  } = _ref;
  const {
    order,
    orderBy,
    author: authorIds,
    postType,
    sticky,
    inherit,
    taxQuery
  } = query;
  const [showSticky, setShowSticky] = (0,external_wp_element_namespaceObject.useState)(postType === 'post');
  const {
    postTypesTaxonomiesMap,
    postTypesSelectOptions
  } = usePostTypes();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    setShowSticky(postType === 'post');
  }, [postType]);

  const onPostTypeChange = newValue => {
    const updateQuery = {
      postType: newValue
    }; // We need to dynamically update the `taxQuery` property,
    // by removing any not supported taxonomy from the query.

    const supportedTaxonomies = postTypesTaxonomiesMap[newValue];
    const updatedTaxQuery = Object.entries(taxQuery || {}).reduce((accumulator, _ref2) => {
      let [taxonomySlug, terms] = _ref2;

      if (supportedTaxonomies.includes(taxonomySlug)) {
        accumulator[taxonomySlug] = terms;
      }

      return accumulator;
    }, {});
    updateQuery.taxQuery = !!Object.keys(updatedTaxQuery).length ? updatedTaxQuery : undefined;

    if (newValue !== 'post') {
      updateQuery.sticky = '';
    }

    setQuery(updateQuery);
  };

  const [querySearch, setQuerySearch] = (0,external_wp_element_namespaceObject.useState)(query.search);
  const onChangeDebounced = (0,external_wp_element_namespaceObject.useCallback)((0,external_lodash_namespaceObject.debounce)(() => {
    if (query.search !== querySearch) {
      setQuery({
        search: querySearch
      });
    }
  }, 250), [querySearch, query.search]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    onChangeDebounced();
    return onChangeDebounced.cancel;
  }, [querySearch, onChangeDebounced]);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Inherit query from template'),
    help: (0,external_wp_i18n_namespaceObject.__)('Toggle to use the global query context that is set with the current template, such as an archive or search. Disable to customize the settings independently.'),
    checked: !!inherit,
    onChange: value => setQuery({
      inherit: !!value
    })
  }), !inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    options: postTypesSelectOptions,
    value: postType,
    label: (0,external_wp_i18n_namespaceObject.__)('Post type'),
    onChange: onPostTypeChange,
    help: (0,external_wp_i18n_namespaceObject.__)('WordPress contains different types of content and they are divided into collections called "Post types". By default there are a few different ones such as blog posts and pages, but plugins could add more.')
  }), (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'flex' && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: displayLayout.columns,
    onChange: value => setDisplayLayout({
      columns: value
    }),
    min: 2,
    max: Math.max(6, displayLayout.columns)
  }), displayLayout.columns > 6 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, {
    status: "warning",
    isDismissible: false
  }, (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.'))), !inherit && (0,external_wp_element_namespaceObject.createElement)(order_control, {
    order,
    orderBy,
    onChange: setQuery
  }), showSticky && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
    options: stickyOptions,
    value: sticky,
    onChange: value => setQuery({
      sticky: value
    }),
    help: (0,external_wp_i18n_namespaceObject.__)('Blog posts can be "stickied", a feature that places them at the top of the front page of posts, keeping it there until new sticky posts are published.')
  })), !inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Filters')
  }, (0,external_wp_element_namespaceObject.createElement)(taxonomy_controls, {
    onChange: setQuery,
    query: query
  }), (0,external_wp_element_namespaceObject.createElement)(author_control, {
    value: authorIds,
    onChange: setQuery
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
    value: querySearch,
    onChange: setQuerySearch
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-placeholder.js


/**
 * WordPress dependencies
 */




function QueryPlaceholder(_ref) {
  let {
    clientId,
    name,
    setAttributes,
    icon,
    label
  } = _ref;
  const {
    defaultVariation,
    scopeVariations
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockVariations,
      getBlockType,
      getDefaultBlockVariation
    } = select(external_wp_blocks_namespaceObject.store);
    return {
      blockType: getBlockType(name),
      defaultVariation: getDefaultBlockVariation(name, 'block'),
      scopeVariations: getBlockVariations(name, 'block')
    };
  }, [name]);
  const {
    replaceInnerBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
    icon: icon,
    label: label,
    variations: scopeVariations,
    onSelect: function () {
      let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;

      if (nextVariation.attributes) {
        setAttributes(nextVariation.attributes);
      }

      if (nextVariation.innerBlocks) {
        replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), false);
      }
    }
  }));
}

/* harmony default export */ var query_placeholder = (QueryPlaceholder);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/index.js



/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */






const query_edit_TEMPLATE = [['core/post-template']];
function QueryContent(_ref) {
  let {
    attributes,
    setAttributes,
    openPatternSelectionModal
  } = _ref;
  const {
    queryId,
    query,
    displayLayout,
    tagName: TagName = 'div',
    layout = {}
  } = attributes;
  const {
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryContent);
  const {
    themeSupportsLayout
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getSettings;

    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout
    };
  }, []);
  const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
  const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    template: query_edit_TEMPLATE,
    __experimentalLayout: themeSupportsLayout ? usedLayout : undefined
  });
  const {
    postsPerPage
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      postsPerPage: +getSettings().postsPerPage || DEFAULTS_POSTS_PER_PAGE
    };
  }, []); // There are some effects running where some initialization logic is
  // happening and setting some values to some attributes (ex. queryId).
  // These updates can cause an `undo trap` where undoing will result in
  // resetting again, so we need to mark these changes as not persistent
  // with `__unstableMarkNextChangeAsNotPersistent`.
  // Changes in query property (which is an object) need to be in the same callback,
  // because updates are batched after the render and changes in different query properties
  // would cause to override previous wanted changes.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const newQuery = {};

    if (!query.perPage && postsPerPage) {
      newQuery.perPage = postsPerPage;
    }

    if (!!Object.keys(newQuery).length) {
      __unstableMarkNextChangeAsNotPersistent();

      updateQuery(newQuery);
    }
  }, [query.perPage]); // We need this for multi-query block pagination.
  // Query parameters for each block are scoped to their ID.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!Number.isFinite(queryId)) {
      __unstableMarkNextChangeAsNotPersistent();

      setAttributes({
        queryId: instanceId
      });
    }
  }, [queryId, instanceId]);

  const updateQuery = newQuery => setAttributes({
    query: { ...query,
      ...newQuery
    }
  });

  const updateDisplayLayout = newDisplayLayout => setAttributes({
    displayLayout: { ...displayLayout,
      ...newDisplayLayout
    }
  });

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(QueryInspectorControls, {
    attributes: attributes,
    setQuery: updateQuery,
    setDisplayLayout: updateDisplayLayout
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(QueryToolbar, {
    attributes: attributes,
    setQuery: updateQuery,
    setDisplayLayout: updateDisplayLayout,
    openPatternSelectionModal: openPatternSelectionModal
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
    options: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
      value: 'div'
    }, {
      label: '<main>',
      value: 'main'
    }, {
      label: '<section>',
      value: 'section'
    }, {
      label: '<aside>',
      value: 'aside'
    }],
    value: TagName,
    onChange: value => setAttributes({
      tagName: value
    })
  })), (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps));
}

function QueryPatternSetup(_ref2) {
  var _blockType$icon;

  let {
    attributes,
    clientId,
    name,
    openPatternSelectionModal,
    setAttributes
  } = _ref2;
  const [isStartingBlank, setIsStartingBlank] = (0,external_wp_element_namespaceObject.useState)(false);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const {
    blockType,
    allVariations,
    hasPatterns
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockVariations,
      getBlockType
    } = select(external_wp_blocks_namespaceObject.store);
    const {
      getBlockRootClientId,
      __experimentalGetPatternsByBlockTypes
    } = select(external_wp_blockEditor_namespaceObject.store);
    const rootClientId = getBlockRootClientId(clientId);
    return {
      blockType: getBlockType(name),
      allVariations: getBlockVariations(name),
      hasPatterns: !!__experimentalGetPatternsByBlockTypes(name, rootClientId).length
    };
  }, [name, clientId]);
  const matchingVariation = (0,external_wp_blockEditor_namespaceObject.__experimentalGetMatchingVariation)(attributes, allVariations);
  const icon = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.icon) || (blockType === null || blockType === void 0 ? void 0 : (_blockType$icon = blockType.icon) === null || _blockType$icon === void 0 ? void 0 : _blockType$icon.src);
  const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title);

  if (isStartingBlank) {
    return (0,external_wp_element_namespaceObject.createElement)(query_placeholder, {
      clientId: clientId,
      name: name,
      setAttributes: setAttributes,
      icon: icon,
      label: label
    });
  }

  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    icon: icon,
    label: label,
    instructions: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern for the query loop or start blank.')
  }, !!hasPatterns && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "primary",
    onClick: openPatternSelectionModal
  }, (0,external_wp_i18n_namespaceObject.__)('Choose')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    onClick: () => {
      setIsStartingBlank(true);
    }
  }, (0,external_wp_i18n_namespaceObject.__)('Start blank'))));
}

const QueryEdit = props => {
  const {
    clientId,
    name
  } = props;
  const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    replaceBlock,
    selectBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length, [clientId]);
  const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;

  const onBlockPatternSelect = blocks => {
    const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block));
    const firstQueryClientId = getFirstQueryClientIdFromBlocks(clonedBlocks);
    replaceBlock(clientId, clonedBlocks);

    if (firstQueryClientId) {
      selectBlock(firstQueryClientId);
    }
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(Component, _extends({}, props, {
    openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
  })), isPatternSelectionModalOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
    className: "block-editor-query-pattern__selection-modal",
    title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
    onRequestClose: () => setIsPatternSelectionModalOpen(false)
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternSetup, {
    blockName: name,
    clientId: clientId,
    onBlockPatternSelect: onBlockPatternSelect
  })));
};

/* harmony default export */ var query_edit = (QueryEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/save.js


/**
 * WordPress dependencies
 */

function QuerySave(_ref) {
  let {
    attributes: {
      tagName: Tag = 'div'
    }
  } = _ref;
  const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
  const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
  return (0,external_wp_element_namespaceObject.createElement)(Tag, innerBlocksProps);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/icons.js


/**
 * WordPress dependencies
 */

const titleDate = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 48 48"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z"
}));
const titleExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 48 48"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z"
}));
const titleDateExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 48 48"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z"
}));
const imageDateTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 48 48"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/variations.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const QUERY_DEFAULT_ATTRIBUTES = {
  query: {
    perPage: 3,
    pages: 0,
    offset: 0,
    postType: 'post',
    order: 'desc',
    orderBy: 'date',
    author: '',
    search: '',
    exclude: [],
    sticky: '',
    inherit: false
  }
};
const query_variations_variations = [{
  name: 'posts-list',
  title: (0,external_wp_i18n_namespaceObject.__)('Posts List'),
  description: (0,external_wp_i18n_namespaceObject.__)('Display a list of your most recent posts, excluding sticky posts.'),
  icon: post_list,
  attributes: {
    query: {
      perPage: 4,
      pages: 1,
      offset: 0,
      postType: 'post',
      order: 'desc',
      orderBy: 'date',
      author: '',
      search: '',
      sticky: 'exclude',
      inherit: false
    }
  },
  scope: ['inserter']
}, {
  name: 'title-date',
  title: (0,external_wp_i18n_namespaceObject.__)('Title & Date'),
  icon: titleDate,
  attributes: { ...QUERY_DEFAULT_ATTRIBUTES
  },
  innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date']]], ['core/query-pagination'], ['core/query-no-results']],
  scope: ['block']
}, {
  name: 'title-excerpt',
  title: (0,external_wp_i18n_namespaceObject.__)('Title & Excerpt'),
  icon: titleExcerpt,
  attributes: { ...QUERY_DEFAULT_ATTRIBUTES
  },
  innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
  scope: ['block']
}, {
  name: 'title-date-excerpt',
  title: (0,external_wp_i18n_namespaceObject.__)('Title, Date, & Excerpt'),
  icon: titleDateExcerpt,
  attributes: { ...QUERY_DEFAULT_ATTRIBUTES
  },
  innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
  scope: ['block']
}, {
  name: 'image-date-title',
  title: (0,external_wp_i18n_namespaceObject.__)('Image, Date, & Title'),
  icon: imageDateTitle,
  attributes: { ...QUERY_DEFAULT_ATTRIBUTES
  },
  innerBlocks: [['core/post-template', {}, [['core/post-featured-image'], ['core/post-date'], ['core/post-title']]], ['core/query-pagination'], ['core/query-no-results']],
  scope: ['block']
}];
/* harmony default export */ var query_variations = (query_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



const migrateToTaxQuery = attributes => {
  var _query$categoryIds, _query$tagIds;

  const {
    query
  } = attributes;
  const newQuery = { ...(0,external_lodash_namespaceObject.omit)(query, ['categoryIds', 'tagIds'])
  };

  if ((_query$categoryIds = query.categoryIds) !== null && _query$categoryIds !== void 0 && _query$categoryIds.length || (_query$tagIds = query.tagIds) !== null && _query$tagIds !== void 0 && _query$tagIds.length) {
    var _query$categoryIds2, _query$tagIds2;

    newQuery.taxQuery = {
      category: !!((_query$categoryIds2 = query.categoryIds) !== null && _query$categoryIds2 !== void 0 && _query$categoryIds2.length) ? query.categoryIds : undefined,
      post_tag: !!((_query$tagIds2 = query.tagIds) !== null && _query$tagIds2 !== void 0 && _query$tagIds2.length) ? query.tagIds : undefined
    };
  }

  return { ...attributes,
    query: newQuery
  };
};

const query_deprecated_deprecated = [// Version with `categoryIds and tagIds`.
{
  attributes: {
    queryId: {
      type: 'number'
    },
    query: {
      type: 'object',
      default: {
        perPage: null,
        pages: 0,
        offset: 0,
        postType: 'post',
        categoryIds: [],
        tagIds: [],
        order: 'desc',
        orderBy: 'date',
        author: '',
        search: '',
        exclude: [],
        sticky: '',
        inherit: true
      }
    },
    tagName: {
      type: 'string',
      default: 'div'
    },
    displayLayout: {
      type: 'object',
      default: {
        type: 'list'
      }
    }
  },
  supports: {
    align: ['wide', 'full'],
    html: false,
    color: {
      gradients: true,
      link: true
    },
    __experimentalLayout: true
  },
  isEligible: _ref => {
    let {
      query: {
        categoryIds,
        tagIds
      } = {}
    } = _ref;
    return categoryIds || tagIds;
  },
  migrate: migrateToTaxQuery,

  save(_ref2) {
    let {
      attributes: {
        tagName: Tag = 'div'
      }
    } = _ref2;
    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
    return (0,external_wp_element_namespaceObject.createElement)(Tag, innerBlocksProps);
  }

}, // Version with NO wrapper `div` element.
{
  attributes: {
    queryId: {
      type: 'number'
    },
    query: {
      type: 'object',
      default: {
        perPage: null,
        pages: 0,
        offset: 0,
        postType: 'post',
        categoryIds: [],
        tagIds: [],
        order: 'desc',
        orderBy: 'date',
        author: '',
        search: '',
        exclude: [],
        sticky: '',
        inherit: true
      }
    },
    layout: {
      type: 'object',
      default: {
        type: 'list'
      }
    }
  },
  supports: {
    html: false
  },

  migrate(attributes) {
    const withTaxQuery = migrateToTaxQuery(attributes);
    return { ...(0,external_lodash_namespaceObject.omit)(withTaxQuery, ['layout']),
      displayLayout: withTaxQuery.layout
    };
  },

  save() {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
  }

}];
/* harmony default export */ var query_deprecated = (query_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/hooks.js



/**
 * WordPress dependencies
 */






const CreateNewPostLink = _ref => {
  let {
    attributes: {
      query: {
        postType
      } = {}
    } = {}
  } = _ref;
  if (!postType) return null;
  const newPostUrl = (0,external_wp_url_namespaceObject.addQueryArgs)('post-new.php', {
    post_type: postType
  });
  return (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-query__create-new-link"
  }, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('<a>Create a new post</a> for this feed.'), // eslint-disable-next-line jsx-a11y/anchor-has-content
  {
    a: (0,external_wp_element_namespaceObject.createElement)("a", {
      href: newPostUrl
    })
  }));
};
/**
 * Override the default edit UI to include layout controls
 *
 * @param {Function} BlockEdit Original component
 * @return {Function}           Wrapped component
 */


const queryTopInspectorControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => {
  const {
    name,
    isSelected
  } = props;

  if (name !== 'core/query' || !isSelected) {
    return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({
      key: "edit"
    }, props));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(CreateNewPostLink, props)), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({
    key: "edit"
  }, props)));
}, 'withInspectorControls');
/* harmony default export */ var query_hooks = (queryTopInspectorControls);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const query_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query",
  title: "Query Loop",
  category: "theme",
  description: "An advanced block that allows displaying post types based on different query parameters and visual configurations.",
  textdomain: "default",
  attributes: {
    queryId: {
      type: "number"
    },
    query: {
      type: "object",
      "default": {
        perPage: null,
        pages: 0,
        offset: 0,
        postType: "post",
        order: "desc",
        orderBy: "date",
        author: "",
        search: "",
        exclude: [],
        sticky: "",
        inherit: true,
        taxQuery: null
      }
    },
    tagName: {
      type: "string",
      "default": "div"
    },
    displayLayout: {
      type: "object",
      "default": {
        type: "list"
      }
    }
  },
  providesContext: {
    queryId: "queryId",
    query: "query",
    displayLayout: "displayLayout"
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    __experimentalLayout: true
  },
  editorStyle: "wp-block-query-editor"
};





const {
  name: query_name
} = query_metadata;

const query_settings = {
  icon: library_loop,
  edit: query_edit,
  save: QuerySave,
  variations: query_variations,
  deprecated: query_deprecated
}; // Importing this file includes side effects and is whitelisted
// in block-library/package.json under `sideEffects`.

(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/query', query_hooks);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/edit.js


/**
 * WordPress dependencies
 */


const query_no_results_edit_TEMPLATE = [['core/paragraph', {
  placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text or blocks that will display when the query returns no results.')
}]];
function QueryNoResultsEdit() {
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    template: query_no_results_edit_TEMPLATE
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/save.js


/**
 * WordPress dependencies
 */

function QueryNoResultsSave() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const query_no_results_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query-no-results",
  title: "No results",
  category: "theme",
  description: "Contains the block elements used to render content when no query results are found.",
  parent: ["core/query"],
  textdomain: "default",
  usesContext: ["queryId", "query"],
  supports: {
    align: true,
    reusable: false,
    html: false,
    color: {
      gradients: true,
      link: true
    }
  }
};


const {
  name: query_no_results_name
} = query_no_results_metadata;

const query_no_results_settings = {
  icon: library_loop,
  edit: QueryNoResultsEdit,
  save: QueryNoResultsSave
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-arrow-controls.js


/**
 * WordPress dependencies
 */


function QueryPaginationArrowControls(_ref) {
  let {
    value,
    onChange
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
    value: value,
    onChange: onChange,
    help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous page link.'),
    isBlock: true
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "none",
    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Query Pagination Next/Previous blocks')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "arrow",
    label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Query Pagination Next/Previous blocks')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
    value: "chevron",
    label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Query Pagination Next/Previous blocks')
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/edit.js


/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const query_pagination_edit_TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']];

const edit_getDefaultBlockLayout = blockTypeOrName => {
  const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout');
  return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default;
};

function edit_QueryPaginationEdit(_ref) {
  let {
    attributes: {
      paginationArrow,
      layout
    },
    setAttributes,
    clientId,
    name
  } = _ref;
  const usedLayout = layout || edit_getDefaultBlockLayout(name);
  const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlocks
    } = select(external_wp_blockEditor_namespaceObject.store);
    const innerBlocks = getBlocks(clientId);
    /**
     * Show the `paginationArrow` control only if a
     * `QueryPaginationNext/Previous` block exists.
     */

    return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => {
      return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name);
    });
  }, []);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    template: query_pagination_edit_TEMPLATE,
    allowedBlocks: ['core/query-pagination-previous', 'core/query-pagination-numbers', 'core/query-pagination-next'],
    __experimentalLayout: usedLayout
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasNextPreviousBlocks && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(QueryPaginationArrowControls, {
    value: paginationArrow,
    onChange: value => {
      setAttributes({
        paginationArrow: value
      });
    }
  }))), (0,external_wp_element_namespaceObject.createElement)("nav", innerBlocksProps));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/save.js


/**
 * WordPress dependencies
 */

function query_pagination_save_save() {
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/deprecated.js


/**
 * WordPress dependencies
 */

const query_pagination_deprecated_deprecated = [// Version with wrapper `div` element.
{
  save() {
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }

}];
/* harmony default export */ var query_pagination_deprecated = (query_pagination_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const query_pagination_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query-pagination",
  title: "Pagination",
  category: "theme",
  parent: ["core/query"],
  description: "Displays a paginated navigation to next/previous set of posts, when applicable.",
  textdomain: "default",
  attributes: {
    paginationArrow: {
      type: "string",
      "default": "none"
    }
  },
  usesContext: ["queryId", "query"],
  providesContext: {
    paginationArrow: "paginationArrow"
  },
  supports: {
    align: true,
    reusable: false,
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      "default": {
        type: "flex"
      }
    }
  },
  editorStyle: "wp-block-query-pagination-editor",
  style: "wp-block-query-pagination"
};



const {
  name: query_pagination_name
} = query_pagination_metadata;

const query_pagination_settings = {
  icon: query_pagination,
  edit: edit_QueryPaginationEdit,
  save: query_pagination_save_save,
  deprecated: query_pagination_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/edit.js



/**
 * WordPress dependencies
 */


const query_pagination_next_edit_arrowMap = {
  none: '',
  arrow: '→',
  chevron: '»'
};
function QueryPaginationNextEdit(_ref) {
  let {
    attributes: {
      label
    },
    setAttributes,
    context: {
      paginationArrow
    }
  } = _ref;
  const displayArrow = query_pagination_next_edit_arrowMap[paginationArrow];
  return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
    href: "#pagination-next-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
    __experimentalVersion: 2,
    tagName: "span",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page link'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Next Page'),
    value: label,
    onChange: newLabel => setAttributes({
      label: newLabel
    })
  }), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: `wp-block-query-pagination-next-arrow is-arrow-${paginationArrow}`
  }, displayArrow));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const query_pagination_next_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query-pagination-next",
  title: "Next Page",
  category: "theme",
  parent: ["core/query-pagination"],
  description: "Displays the next posts page link.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    }
  },
  usesContext: ["queryId", "query", "paginationArrow"],
  supports: {
    reusable: false,
    html: false,
    color: {
      gradients: true,
      text: false,
      __experimentalDefaultControls: {
        background: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};

const {
  name: query_pagination_next_name
} = query_pagination_next_metadata;

const query_pagination_next_settings = {
  icon: query_pagination_next,
  edit: QueryPaginationNextEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/edit.js


/**
 * WordPress dependencies
 */


const createPaginationItem = function (content) {
  let Tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'a';
  let extraClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
  return (0,external_wp_element_namespaceObject.createElement)(Tag, {
    className: `page-numbers ${extraClass}`
  }, content);
};

const previewPaginationNumbers = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, createPaginationItem(1), createPaginationItem(2), createPaginationItem(3, 'span', 'current'), createPaginationItem(4), createPaginationItem(5), createPaginationItem('...', 'span', 'dots'), createPaginationItem(8));

function QueryPaginationNumbersEdit() {
  const paginationNumbers = previewPaginationNumbers();
  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), paginationNumbers);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const query_pagination_numbers_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query-pagination-numbers",
  title: "Page Numbers",
  category: "theme",
  parent: ["core/query-pagination"],
  description: "Displays a list of page numbers for pagination",
  textdomain: "default",
  usesContext: ["queryId", "query"],
  supports: {
    reusable: false,
    html: false,
    color: {
      gradients: true,
      text: false,
      __experimentalDefaultControls: {
        background: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  editorStyle: "query-pagination-numbers-editor"
};

const {
  name: query_pagination_numbers_name
} = query_pagination_numbers_metadata;

const query_pagination_numbers_settings = {
  icon: query_pagination_numbers,
  edit: QueryPaginationNumbersEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/edit.js



/**
 * WordPress dependencies
 */


const query_pagination_previous_edit_arrowMap = {
  none: '',
  arrow: '←',
  chevron: '«'
};
function QueryPaginationPreviousEdit(_ref) {
  let {
    attributes: {
      label
    },
    setAttributes,
    context: {
      paginationArrow
    }
  } = _ref;
  const displayArrow = query_pagination_previous_edit_arrowMap[paginationArrow];
  return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
    href: "#pagination-previous-pseudo-link",
    onClick: event => event.preventDefault()
  }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: `wp-block-query-pagination-previous-arrow is-arrow-${paginationArrow}`
  }, displayArrow), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
    __experimentalVersion: 2,
    tagName: "span",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page link'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Previous Page'),
    value: label,
    onChange: newLabel => setAttributes({
      label: newLabel
    })
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const query_pagination_previous_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query-pagination-previous",
  title: "Previous Page",
  category: "theme",
  parent: ["core/query-pagination"],
  description: "Displays the previous posts page link.",
  textdomain: "default",
  attributes: {
    label: {
      type: "string"
    }
  },
  usesContext: ["queryId", "query", "paginationArrow"],
  supports: {
    reusable: false,
    html: false,
    color: {
      gradients: true,
      text: false,
      __experimentalDefaultControls: {
        background: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  }
};

const {
  name: query_pagination_previous_name
} = query_pagination_previous_metadata;

const query_pagination_previous_settings = {
  icon: query_pagination_previous,
  edit: QueryPaginationPreviousEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


const SUPPORTED_TYPES = ['archive'];
function QueryTitleEdit(_ref) {
  let {
    attributes: {
      type,
      level,
      textAlign
    },
    setAttributes
  } = _ref;
  const TagName = `h${level}`;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign,
      'wp-block-query-title__placeholder': type === 'archive'
    })
  }); // The plan is to augment this block with more
  // block variations like `Search Title`.

  if (!SUPPORTED_TYPES.includes(type)) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Provided type is not supported.')));
  }

  let titleElement;

  if (type === 'archive') {
    titleElement = (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_i18n_namespaceObject.__)('Archive title'));
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
    selectedLevel: level,
    onChange: newLevel => setAttributes({
      level: newLevel
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), titleElement);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive-title.js


/**
 * WordPress dependencies
 */

const archiveTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.08 10.103h2.914L9.657 12h1.417L8.23 4H6.846L4 12h1.417l.663-1.897Zm1.463-4.137.994 2.857h-2l1.006-2.857ZM20 16H4v-1.5h16V16Zm-7 4H4v-1.5h9V20Z"
}));
/* harmony default export */ var archive_title = (archiveTitle);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/variations.js
/**
 * WordPress dependencies
 */


const query_title_variations_variations = [{
  isDefault: true,
  name: 'archive-title',
  title: (0,external_wp_i18n_namespaceObject.__)('Archive Title'),
  description: (0,external_wp_i18n_namespaceObject.__)('Display the archive title based on the queried object.'),
  icon: archive_title,
  attributes: {
    type: 'archive'
  },
  scope: ['inserter']
}];
/**
 * Add `isActive` function to all `query-title` variations, if not defined.
 * `isActive` function is used to find a variation match from a created
 *  Block by providing its attributes.
 */

query_title_variations_variations.forEach(variation => {
  if (variation.isActive) return;

  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
});
/* harmony default export */ var query_title_variations = (query_title_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/deprecated.js
/**
 * Internal dependencies
 */

const query_title_deprecated_v1 = {
  attributes: {
    type: {
      type: 'string'
    },
    textAlign: {
      type: 'string'
    },
    level: {
      type: 'number',
      default: 1
    }
  },
  supports: {
    align: ['wide', 'full'],
    html: false,
    color: {
      gradients: true
    },
    spacing: {
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var query_title_deprecated = ([query_title_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-title.js


/**
 * WordPress dependencies
 */

const queryTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4zm1.3-2.9c.6.3 1.3.5 2 .5.8 0 1.4-.2 2-.5.1 0 .1-.1.2-.2l.8.7.9-1-.8-.7.3-.3a5.09 5.09 0 0 0 0-4.4c-.2-.6-.7-1-1.3-1.4-.6-.3-1.3-.5-2-.5-.8 0-1.4.2-2 .5-.7.4-1.1.8-1.5 1.5-.3.6-.5 1.3-.5 2.2 0 .8.2 1.6.5 2.2.4.6.8 1.1 1.4 1.4zm-.1-5c.2-.4.5-.7.8-1s.8-.4 1.3-.4 1 .1 1.3.4.6.6.8 1c.3.4.4.8.4 1.4 0 .5-.1 1-.3 1.4v.1l-1-.9-.9 1 .9.9c-.3.2-.7.3-1.2.3s-1-.1-1.3-.4c-.4-.2-.6-.6-.8-1C5 9 4.9 8.5 4.9 8c0-.6.1-1 .3-1.4z"
}));
/* harmony default export */ var query_title = (queryTitle);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/index.js
/**
 * Internal dependencies
 */
const query_title_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/query-title",
  title: "Query Title",
  category: "theme",
  description: "Display the query title.",
  textdomain: "default",
  attributes: {
    type: {
      type: "string"
    },
    textAlign: {
      type: "string"
    },
    level: {
      type: "number",
      "default": 1
    }
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true,
        textTransform: true
      }
    }
  },
  editorStyle: "wp-block-query-title-editor"
};



/**
 * WordPress dependencies
 */


const {
  name: query_title_name
} = query_title_metadata;

const query_title_settings = {
  icon: query_title,
  edit: QueryTitleEdit,
  variations: query_title_variations,
  deprecated: query_title_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/quote.js


/**
 * WordPress dependencies
 */

const quote = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z"
}));
/* harmony default export */ var library_quote = (quote);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


const quote_deprecated_blockAttributes = {
  value: {
    type: 'string',
    source: 'html',
    selector: 'blockquote',
    multiline: 'p',
    default: ''
  },
  citation: {
    type: 'string',
    source: 'html',
    selector: 'cite',
    default: ''
  },
  align: {
    type: 'string'
  }
};
const quote_deprecated_deprecated = [{
  attributes: quote_deprecated_blockAttributes,

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      align,
      value,
      citation
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      style: {
        textAlign: align ? align : null
      }
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      multiline: true,
      value: value
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "cite",
      value: citation
    }));
  }

}, {
  attributes: { ...quote_deprecated_blockAttributes,
    style: {
      type: 'number',
      default: 1
    }
  },

  migrate(attributes) {
    if (attributes.style === 2) {
      return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['style']),
        className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large'
      };
    }

    return attributes;
  },

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      align,
      value,
      citation,
      style
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      className: style === 2 ? 'is-large' : '',
      style: {
        textAlign: align ? align : null
      }
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      multiline: true,
      value: value
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "cite",
      value: citation
    }));
  }

}, {
  attributes: { ...quote_deprecated_blockAttributes,
    citation: {
      type: 'string',
      source: 'html',
      selector: 'footer',
      default: ''
    },
    style: {
      type: 'number',
      default: 1
    }
  },

  migrate(attributes) {
    if (!isNaN(parseInt(attributes.style))) {
      return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['style'])
      };
    }

    return attributes;
  },

  save(_ref3) {
    let {
      attributes
    } = _ref3;
    const {
      align,
      value,
      citation,
      style
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
      className: `blocks-quote-style-${style}`,
      style: {
        textAlign: align ? align : null
      }
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      multiline: true,
      value: value
    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "footer",
      value: citation
    }));
  }

}];
/* harmony default export */ var quote_deprecated = (quote_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






const edit_isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
function QuoteEdit(_ref) {
  let {
    attributes,
    setAttributes,
    isSelected,
    mergeBlocks,
    onReplace,
    className,
    insertBlocksAfter,
    style
  } = _ref;
  const {
    align,
    value,
    citation
  } = attributes;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()(className, {
      [`has-text-align-${align}`]: align
    }),
    style
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: align,
    onChange: nextAlign => {
      setAttributes({
        align: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BlockQuotation, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    identifier: "value",
    multiline: true,
    value: value,
    onChange: nextValue => setAttributes({
      value: nextValue
    }),
    onMerge: mergeBlocks,
    onRemove: forward => {
      const hasEmptyCitation = !citation || citation.length === 0;

      if (!forward && hasEmptyCitation) {
        onReplace([]);
      }
    },
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Quote text'),
    placeholder: // translators: placeholder text used for the quote
    (0,external_wp_i18n_namespaceObject.__)('Add quote'),
    onReplace: onReplace,
    onSplit: piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { ...attributes,
      value: piece
    }),
    __unstableOnSplitMiddle: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'),
    textAlign: align
  }), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    identifier: "citation",
    tagName: edit_isWebPlatform ? 'cite' : undefined,
    style: {
      display: 'block'
    },
    value: citation,
    onChange: nextCitation => setAttributes({
      citation: nextCitation
    }),
    __unstableMobileNoFocusOnMount: true,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Quote citation text'),
    placeholder: // translators: placeholder text used for the citation
    (0,external_wp_i18n_namespaceObject.__)('Add citation'),
    className: "wp-block-quote__citation",
    textAlign: align,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function quote_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    align,
    value,
    citation
  } = attributes;
  const className = classnames_default()({
    [`has-text-align-${align}`]: align
  });
  return (0,external_wp_element_namespaceObject.createElement)("blockquote", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    multiline: true,
    value: value
  }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "cite",
    value: citation
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/transforms.js
/**
 * WordPress dependencies
 */


const quote_transforms_transforms = {
  from: [{
    type: 'block',
    isMultiBlock: true,
    blocks: ['core/paragraph'],
    transform: attributes => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
        value: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: (0,external_wp_richText_namespaceObject.join)(attributes.map(_ref => {
            let {
              content
            } = _ref;
            return (0,external_wp_richText_namespaceObject.create)({
              html: content
            });
          }), '\u2028'),
          multilineTag: 'p'
        }),
        anchor: attributes.anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/heading'],
    transform: _ref2 => {
      let {
        content,
        anchor
      } = _ref2;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
        value: `<p>${content}</p>`,
        anchor
      });
    }
  }, {
    type: 'block',
    blocks: ['core/pullquote'],
    transform: _ref3 => {
      let {
        value,
        citation,
        anchor
      } = _ref3;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
        value,
        citation,
        anchor
      });
    }
  }, {
    type: 'prefix',
    prefix: '>',
    transform: content => {
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
        value: `<p>${content}</p>`
      });
    }
  }, {
    type: 'raw',
    isMatch: node => {
      const isParagraphOrSingleCite = (() => {
        let hasCitation = false;
        return child => {
          // Child is a paragraph.
          if (child.nodeName === 'P') {
            return true;
          } // Child is a cite and no other cite child exists before it.


          if (!hasCitation && child.nodeName === 'CITE') {
            hasCitation = true;
            return true;
          }
        };
      })();

      return node.nodeName === 'BLOCKQUOTE' && // The quote block can only handle multiline paragraph
      // content with an optional cite child.
      Array.from(node.childNodes).every(isParagraphOrSingleCite);
    },
    schema: _ref4 => {
      let {
        phrasingContentSchema
      } = _ref4;
      return {
        blockquote: {
          children: {
            p: {
              children: phrasingContentSchema
            },
            cite: {
              children: phrasingContentSchema
            }
          }
        }
      };
    }
  }],
  to: [{
    type: 'block',
    blocks: ['core/paragraph'],
    transform: _ref5 => {
      let {
        value,
        citation
      } = _ref5;
      const paragraphs = [];

      if (value && value !== '<p></p>') {
        paragraphs.push(...(0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
          html: value,
          multilineTag: 'p'
        }), '\u2028').map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
            value: piece
          })
        })));
      }

      if (citation && citation !== '<p></p>') {
        paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: citation
        }));
      }

      if (paragraphs.length === 0) {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: ''
        });
      }

      return paragraphs;
    }
  }, {
    type: 'block',
    blocks: ['core/heading'],
    transform: _ref6 => {
      let {
        value,
        citation,
        ...attrs
      } = _ref6;

      // If there is no quote content, use the citation as the
      // content of the resulting heading. A nonexistent citation
      // will result in an empty heading.
      if (value === '<p></p>') {
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
          content: citation
        });
      }

      const pieces = (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
        html: value,
        multilineTag: 'p'
      }), '\u2028');
      const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
        content: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: pieces[0]
        })
      });

      if (!citation && pieces.length === 1) {
        return headingBlock;
      }

      const quotePieces = pieces.slice(1);
      const quoteBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { ...attrs,
        citation,
        value: (0,external_wp_richText_namespaceObject.toHTMLString)({
          value: quotePieces.length ? (0,external_wp_richText_namespaceObject.join)(pieces.slice(1), '\u2028') : (0,external_wp_richText_namespaceObject.create)(),
          multilineTag: 'p'
        })
      });
      return [headingBlock, quoteBlock];
    }
  }, {
    type: 'block',
    blocks: ['core/pullquote'],
    transform: _ref7 => {
      let {
        value,
        citation,
        anchor
      } = _ref7;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
        value,
        citation,
        anchor
      });
    }
  }]
};
/* harmony default export */ var quote_transforms = (quote_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const quote_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/quote",
  title: "Quote",
  category: "text",
  description: "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" \u2014 Julio Cort\xE1zar",
  keywords: ["blockquote", "cite"],
  textdomain: "default",
  attributes: {
    value: {
      type: "string",
      source: "html",
      selector: "blockquote",
      multiline: "p",
      "default": "",
      __experimentalRole: "content"
    },
    citation: {
      type: "string",
      source: "html",
      selector: "cite",
      "default": "",
      __experimentalRole: "content"
    },
    align: {
      type: "string"
    }
  },
  supports: {
    anchor: true,
    __experimentalSlashInserter: true,
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true
      }
    },
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    }
  },
  styles: [{
    name: "default",
    label: "Default",
    isDefault: true
  }, {
    name: "plain",
    label: "Plain"
  }],
  editorStyle: "wp-block-quote-editor",
  style: "wp-block-quote"
};



const {
  name: quote_name
} = quote_metadata;

const quote_settingsV1 = {
  icon: library_quote,
  example: {
    attributes: {
      value: '<p>' + (0,external_wp_i18n_namespaceObject.__)('In quoting others, we cite ourselves.') + '</p>',
      citation: 'Julio Cortázar'
    }
  },
  transforms: quote_transforms,
  edit: QuoteEdit,
  save: quote_save_save,

  merge(attributes, _ref) {
    let {
      value,
      citation
    } = _ref;

    // Quote citations cannot be merged. Pick the second one unless it's
    // empty.
    if (!citation) {
      citation = attributes.citation;
    }

    if (!value || value === '<p></p>') {
      return { ...attributes,
        citation
      };
    }

    return { ...attributes,
      value: attributes.value + value,
      citation
    };
  },

  deprecated: quote_deprecated
};
let quote_settings = quote_settingsV1;

if (false) { var quote_window; }



;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js


/**
 * WordPress dependencies
 */

const symbol = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
}));
/* harmony default export */ var library_symbol = (symbol);

;// CONCATENATED MODULE: external ["wp","reusableBlocks"]
var external_wp_reusableBlocks_namespaceObject = window["wp"]["reusableBlocks"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/ungroup.js


/**
 * WordPress dependencies
 */

const ungroup = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 4h-7c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7zm-5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h1V9H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-1h-1.5v1z"
}));
/* harmony default export */ var library_ungroup = (ungroup);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/edit.js


/**
 * WordPress dependencies
 */







function ReusableBlockEdit(_ref) {
  let {
    attributes: {
      ref
    },
    clientId
  } = _ref;
  const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(ref);
  const {
    record,
    hasResolved
  } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecord)('postType', 'wp_block', ref);
  const isMissing = hasResolved && !record;
  const canRemove = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).canRemoveBlock(clientId), [clientId]);
  const {
    __experimentalConvertBlockToStatic: convertBlockToStatic
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_reusableBlocks_namespaceObject.store);
  const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_block', {
    id: ref
  });
  const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_block', 'title', ref);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, {
    value: blocks,
    onInput,
    onChange,
    renderAppender: blocks !== null && blocks !== void 0 && blocks.length ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
  });

  if (hasAlreadyRendered) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')));
  }

  if (isMissing) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block has been deleted or is unavailable.')));
  }

  if (!hasResolved) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)));
  }

  return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, canRemove && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: () => convertBlockToStatic(clientId),
    label: (0,external_wp_i18n_namespaceObject.__)('Convert to regular blocks'),
    icon: library_ungroup,
    showTooltip: true
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Name'),
    value: title,
    onChange: setTitle
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, {
    clientId: clientId,
    wrapperProps: innerBlocksProps,
    className: "block-library-block__reusable-block-container"
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const block_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/block",
  title: "Reusable block",
  category: "reusable",
  description: "Create and save content to reuse across your site. Update the block, and the changes apply everywhere it\u2019s used.",
  textdomain: "default",
  attributes: {
    ref: {
      type: "number"
    }
  },
  supports: {
    customClassName: false,
    html: false,
    inserter: false
  },
  editorStyle: "wp-block-editor"
};

const {
  name: block_name
} = block_metadata;

const block_settings = {
  edit: ReusableBlockEdit,
  icon: library_symbol
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/edit.js



/**
 * WordPress dependencies
 */




function ReadMore(_ref) {
  let {
    attributes: {
      content,
      linkTarget
    },
    setAttributes,
    insertBlocksAfter
  } = _ref;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: linkTarget === '_blank'
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    tagName: "a",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('"Read more" link text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Read more'),
    value: content,
    onChange: newValue => setAttributes({
      content: newValue
    }),
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
    withoutInteractiveFormatting: true
  }, blockProps)));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const read_more_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/read-more",
  title: "Read More",
  category: "theme",
  description: "Displays the link of a post, page, or any other content-type.",
  textdomain: "default",
  attributes: {
    content: {
      type: "string"
    },
    linkTarget: {
      type: "string",
      "default": "_self"
    }
  },
  usesContext: ["postId"],
  supports: {
    html: false,
    color: {
      gradients: true,
      text: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalFontWeight: true,
      __experimentalFontStyle: true,
      __experimentalTextTransform: true,
      __experimentalLetterSpacing: true,
      __experimentalTextDecoration: true,
      __experimentalDefaultControls: {
        fontSize: true,
        textDecoration: true
      }
    },
    spacing: {
      margin: ["top", "bottom"],
      padding: true,
      __experimentalDefaultControls: {
        padding: true
      }
    },
    __experimentalBorder: {
      color: true,
      radius: true,
      width: true,
      __experimentalDefaultControls: {
        width: true
      }
    }
  },
  style: "wp-block-read-more"
};

const {
  name: read_more_name
} = read_more_metadata;

const read_more_settings = {
  icon: library_link,
  edit: ReadMore
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rss.js


/**
 * WordPress dependencies
 */

const rss = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M5 10.2h-.8v1.5H5c1.9 0 3.8.8 5.1 2.1 1.4 1.4 2.1 3.2 2.1 5.1v.8h1.5V19c0-2.3-.9-4.5-2.6-6.2-1.6-1.6-3.8-2.6-6.1-2.6zm10.4-1.6C12.6 5.8 8.9 4.2 5 4.2h-.8v1.5H5c3.5 0 6.9 1.4 9.4 3.9s3.9 5.8 3.9 9.4v.8h1.5V19c0-3.9-1.6-7.6-4.4-10.4zM4 20h3v-3H4v3z"
}));
/* harmony default export */ var library_rss = (rss);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/edit.js


/**
 * WordPress dependencies
 */







const DEFAULT_MIN_ITEMS = 1;
const DEFAULT_MAX_ITEMS = 20;
function RSSEdit(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(!attributes.feedURL);
  const {
    blockLayout,
    columns,
    displayAuthor,
    displayDate,
    displayExcerpt,
    excerptLength,
    feedURL,
    itemsToShow
  } = attributes;

  function toggleAttribute(propName) {
    return () => {
      const value = attributes[propName];
      setAttributes({
        [propName]: !value
      });
    };
  }

  function onSubmitURL(event) {
    event.preventDefault();

    if (feedURL) {
      setAttributes({
        feedURL: (0,external_wp_url_namespaceObject.prependHTTP)(feedURL)
      });
      setIsEditing(false);
    }
  }

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();

  if (isEditing) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
      icon: library_rss,
      label: "RSS"
    }, (0,external_wp_element_namespaceObject.createElement)("form", {
      onSubmit: onSubmitURL,
      className: "wp-block-rss__placeholder-form"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL here…'),
      value: feedURL,
      onChange: value => setAttributes({
        feedURL: value
      }),
      className: "wp-block-rss__placeholder-input"
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
      variant: "primary",
      type: "submit"
    }, (0,external_wp_i18n_namespaceObject.__)('Use URL')))));
  }

  const toolbarControls = [{
    icon: library_edit,
    title: (0,external_wp_i18n_namespaceObject.__)('Edit RSS URL'),
    onClick: () => setIsEditing(true)
  }, {
    icon: library_list,
    title: (0,external_wp_i18n_namespaceObject.__)('List view'),
    onClick: () => setAttributes({
      blockLayout: 'list'
    }),
    isActive: blockLayout === 'list'
  }, {
    icon: library_grid,
    title: (0,external_wp_i18n_namespaceObject.__)('Grid view'),
    onClick: () => setAttributes({
      blockLayout: 'grid'
    }),
    isActive: blockLayout === 'grid'
  }];
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
    controls: toolbarControls
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('RSS settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Number of items'),
    value: itemsToShow,
    onChange: value => setAttributes({
      itemsToShow: value
    }),
    min: DEFAULT_MIN_ITEMS,
    max: DEFAULT_MAX_ITEMS,
    required: true
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display author'),
    checked: displayAuthor,
    onChange: toggleAttribute('displayAuthor')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
    checked: displayDate,
    onChange: toggleAttribute('displayDate')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
    checked: displayExcerpt,
    onChange: toggleAttribute('displayExcerpt')
  }), displayExcerpt && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
    value: excerptLength,
    onChange: value => setAttributes({
      excerptLength: value
    }),
    min: 10,
    max: 100,
    required: true
  }), blockLayout === 'grid' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: columns,
    onChange: value => setAttributes({
      columns: value
    }),
    min: 2,
    max: 6,
    required: true
  }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), {
    block: "core/rss",
    attributes: attributes
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const rss_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/rss",
  title: "RSS",
  category: "widgets",
  description: "Display entries from any RSS or Atom feed.",
  keywords: ["atom", "feed"],
  textdomain: "default",
  attributes: {
    columns: {
      type: "number",
      "default": 2
    },
    blockLayout: {
      type: "string",
      "default": "list"
    },
    feedURL: {
      type: "string",
      "default": ""
    },
    itemsToShow: {
      type: "number",
      "default": 5
    },
    displayExcerpt: {
      type: "boolean",
      "default": false
    },
    displayAuthor: {
      type: "boolean",
      "default": false
    },
    displayDate: {
      type: "boolean",
      "default": false
    },
    excerptLength: {
      type: "number",
      "default": 55
    }
  },
  supports: {
    align: true,
    html: false
  },
  editorStyle: "wp-block-rss-editor",
  style: "wp-block-rss"
};

const {
  name: rss_name
} = rss_metadata;

const rss_settings = {
  icon: library_rss,
  example: {
    attributes: {
      feedURL: 'https://wordpress.org'
    }
  },
  edit: RSSEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js


/**
 * WordPress dependencies
 */

const search = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"
}));
/* harmony default export */ var library_search = (search);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/icons.js


/**
 * WordPress dependencies
 */

const buttonOnly = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "7",
  y: "10",
  width: "10",
  height: "4",
  rx: "1",
  fill: "currentColor"
}));
const buttonOutside = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "4.75",
  y: "15.25",
  width: "6.5",
  height: "9.5",
  transform: "rotate(-90 4.75 15.25)",
  stroke: "currentColor",
  strokeWidth: "1.5",
  fill: "none"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "16",
  y: "10",
  width: "4",
  height: "4",
  rx: "1",
  fill: "currentColor"
}));
const buttonInside = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "4.75",
  y: "15.25",
  width: "6.5",
  height: "14.5",
  transform: "rotate(-90 4.75 15.25)",
  stroke: "currentColor",
  strokeWidth: "1.5",
  fill: "none"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "14",
  y: "10",
  width: "4",
  height: "4",
  rx: "1",
  fill: "currentColor"
}));
const noButton = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "4.75",
  y: "15.25",
  width: "6.5",
  height: "14.5",
  transform: "rotate(-90 4.75 15.25)",
  stroke: "currentColor",
  fill: "none",
  strokeWidth: "1.5"
}));
const buttonWithIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "4.75",
  y: "7.75",
  width: "14.5",
  height: "8.5",
  rx: "1.25",
  stroke: "currentColor",
  fill: "none",
  strokeWidth: "1.5"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "8",
  y: "11",
  width: "8",
  height: "2",
  fill: "currentColor"
}));
const toggleLabel = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "4.75",
  y: "17.25",
  width: "5.5",
  height: "14.5",
  transform: "rotate(-90 4.75 17.25)",
  stroke: "currentColor",
  fill: "none",
  strokeWidth: "1.5"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "4",
  y: "7",
  width: "10",
  height: "2",
  fill: "currentColor"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/utils.js
/**
 * Constants
 */
const PC_WIDTH_DEFAULT = 50;
const PX_WIDTH_DEFAULT = 350;
const MIN_WIDTH = 220;
const MIN_WIDTH_UNIT = 'px';
/**
 * Returns a boolean whether passed unit is percentage
 *
 * @param {string} unit Block width unit.
 *
 * @return {boolean} 	Whether unit is '%'.
 */

function utils_isPercentageUnit(unit) {
  return unit === '%';
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


 // Used to calculate border radius adjustment to avoid "fat" corners when
// button is placed inside wrapper.

const DEFAULT_INNER_PADDING = '4px';
function SearchEdit(_ref) {
  var _style$border, _style$border2, _style$border3;

  let {
    className,
    attributes,
    setAttributes,
    toggleSelection,
    isSelected,
    clientId
  } = _ref;
  const {
    label,
    showLabel,
    placeholder,
    width,
    widthUnit,
    align,
    buttonText,
    buttonPosition,
    buttonUseIcon,
    style
  } = attributes;
  const insertedInNavigationBlock = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getBlockParentsByBlo;

    const {
      getBlockParentsByBlockName,
      wasBlockJustInserted
    } = select(external_wp_blockEditor_namespaceObject.store);
    return !!((_getBlockParentsByBlo = getBlockParentsByBlockName(clientId, 'core/navigation')) !== null && _getBlockParentsByBlo !== void 0 && _getBlockParentsByBlo.length) && wasBlockJustInserted(clientId);
  }, [clientId]);
  const {
    __unstableMarkNextChangeAsNotPersistent
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!insertedInNavigationBlock) return; // This side-effect should not create an undo level.

    __unstableMarkNextChangeAsNotPersistent();

    setAttributes({
      showLabel: false,
      buttonUseIcon: true,
      buttonPosition: 'button-inside'
    });
  }, [insertedInNavigationBlock]);
  const borderRadius = style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius;
  const borderColor = style === null || style === void 0 ? void 0 : (_style$border2 = style.border) === null || _style$border2 === void 0 ? void 0 : _style$border2.color;
  const borderWidth = style === null || style === void 0 ? void 0 : (_style$border3 = style.border) === null || _style$border3 === void 0 ? void 0 : _style$border3.width;
  const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes); // Check for old deprecated numerical border radius. Done as a separate
  // check so that a borderRadius style won't overwrite the longhand
  // per-corner styles.

  if (typeof borderRadius === 'number') {
    borderProps.style.borderRadius = `${borderRadius}px`;
  }

  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
  const unitControlInstanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
  const unitControlInputId = `wp-block-search__width-${unitControlInstanceId}`;
  const isButtonPositionInside = 'button-inside' === buttonPosition;
  const isButtonPositionOutside = 'button-outside' === buttonPosition;
  const hasNoButton = 'no-button' === buttonPosition;
  const hasOnlyButton = 'button-only' === buttonPosition;
  const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
    availableUnits: ['%', 'px'],
    defaultValues: {
      '%': PC_WIDTH_DEFAULT,
      px: PX_WIDTH_DEFAULT
    }
  });

  const getBlockClassNames = () => {
    return classnames_default()(className, isButtonPositionInside ? 'wp-block-search__button-inside' : undefined, isButtonPositionOutside ? 'wp-block-search__button-outside' : undefined, hasNoButton ? 'wp-block-search__no-button' : undefined, hasOnlyButton ? 'wp-block-search__button-only' : undefined, !buttonUseIcon && !hasNoButton ? 'wp-block-search__text-button' : undefined, buttonUseIcon && !hasNoButton ? 'wp-block-search__icon-button' : undefined);
  };

  const buttonPositionControls = [{
    role: 'menuitemradio',
    title: (0,external_wp_i18n_namespaceObject.__)('Button outside'),
    isActive: buttonPosition === 'button-outside',
    icon: buttonOutside,
    onClick: () => {
      setAttributes({
        buttonPosition: 'button-outside'
      });
    }
  }, {
    role: 'menuitemradio',
    title: (0,external_wp_i18n_namespaceObject.__)('Button inside'),
    isActive: buttonPosition === 'button-inside',
    icon: buttonInside,
    onClick: () => {
      setAttributes({
        buttonPosition: 'button-inside'
      });
    }
  }, {
    role: 'menuitemradio',
    title: (0,external_wp_i18n_namespaceObject.__)('No button'),
    isActive: buttonPosition === 'no-button',
    icon: noButton,
    onClick: () => {
      setAttributes({
        buttonPosition: 'no-button'
      });
    }
  }];

  const getButtonPositionIcon = () => {
    switch (buttonPosition) {
      case 'button-inside':
        return buttonInside;

      case 'button-outside':
        return buttonOutside;

      case 'no-button':
        return noButton;

      case 'button-only':
        return buttonOnly;
    }
  };

  const getResizableSides = () => {
    if (hasOnlyButton) {
      return {};
    }

    return {
      right: align !== 'right',
      left: align === 'right'
    };
  };

  const renderTextField = () => {
    // If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.
    const textFieldClasses = classnames_default()('wp-block-search__input', isButtonPositionInside ? undefined : borderProps.className);
    const textFieldStyles = isButtonPositionInside ? {
      borderRadius
    } : borderProps.style;
    return (0,external_wp_element_namespaceObject.createElement)("input", {
      className: textFieldClasses,
      style: textFieldStyles,
      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text') // We hide the placeholder field's placeholder when there is a value. This
      // stops screen readers from reading the placeholder field's placeholder
      // which is confusing.
      ,
      placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
      value: placeholder,
      onChange: event => setAttributes({
        placeholder: event.target.value
      })
    });
  };

  const renderButton = () => {
    // If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.
    const buttonClasses = classnames_default()('wp-block-search__button', colorProps.className, isButtonPositionInside ? undefined : borderProps.className, buttonUseIcon ? 'has-icon' : undefined);
    const buttonStyles = { ...colorProps.style,
      ...(isButtonPositionInside ? {
        borderRadius
      } : borderProps.style)
    };
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, buttonUseIcon && (0,external_wp_element_namespaceObject.createElement)("button", {
      type: "button",
      className: buttonClasses,
      style: buttonStyles,
      "aria-label": buttonText ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(buttonText) : (0,external_wp_i18n_namespaceObject.__)('Search')
    }, (0,external_wp_element_namespaceObject.createElement)(icon, {
      icon: library_search
    })), !buttonUseIcon && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
      className: buttonClasses,
      style: buttonStyles,
      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add button text…'),
      withoutInteractiveFormatting: true,
      value: buttonText,
      onChange: html => setAttributes({
        buttonText: html
      })
    }));
  };

  const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    title: (0,external_wp_i18n_namespaceObject.__)('Toggle search label'),
    icon: toggleLabel,
    onClick: () => {
      setAttributes({
        showLabel: !showLabel
      });
    },
    className: showLabel ? 'is-pressed' : undefined
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    icon: getButtonPositionIcon(),
    label: (0,external_wp_i18n_namespaceObject.__)('Change button position'),
    controls: buttonPositionControls
  }), !hasNoButton && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    title: (0,external_wp_i18n_namespaceObject.__)('Use button with icon'),
    icon: buttonWithIcon,
    onClick: () => {
      setAttributes({
        buttonUseIcon: !buttonUseIcon
      });
    },
    className: buttonUseIcon ? 'is-pressed' : undefined
  }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Display Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Width'),
    id: unitControlInputId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    id: unitControlInputId,
    min: `${MIN_WIDTH}${MIN_WIDTH_UNIT}`,
    onChange: newWidth => {
      const filteredWidth = widthUnit === '%' && parseInt(newWidth, 10) > 100 ? 100 : newWidth;
      setAttributes({
        width: parseInt(filteredWidth, 10)
      });
    },
    onUnitChange: newUnit => {
      setAttributes({
        width: '%' === newUnit ? PC_WIDTH_DEFAULT : PX_WIDTH_DEFAULT,
        widthUnit: newUnit
      });
    },
    style: {
      maxWidth: 80
    },
    value: `${width}${widthUnit}`,
    units: units
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
    className: "wp-block-search__components-button-group",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Percentage Width')
  }, [25, 50, 75, 100].map(widthValue => {
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
      key: widthValue,
      isSmall: true,
      variant: `${widthValue}%` === `${width}${widthUnit}` ? 0 : undefined,
      onClick: () => setAttributes({
        width: widthValue,
        widthUnit: '%'
      })
    }, widthValue, "%");
  }))))));

  const padBorderRadius = radius => radius ? `calc(${radius} + ${DEFAULT_INNER_PADDING})` : undefined;

  const getWrapperStyles = () => {
    const styles = {
      borderColor,
      borderWidth: isButtonPositionInside ? borderWidth : undefined
    };
    const isNonZeroBorderRadius = borderRadius !== undefined && parseInt(borderRadius, 10) !== 0;

    if (isButtonPositionInside && isNonZeroBorderRadius) {
      // We have button inside wrapper and a border radius value to apply.
      // Add default padding so we don't get "fat" corners.
      //
      // CSS calc() is used here to support non-pixel units. The inline
      // style using calc() will only apply if both values have units.
      if (typeof borderRadius === 'object') {
        // Individual corner border radii present.
        const {
          topLeft,
          topRight,
          bottomLeft,
          bottomRight
        } = borderRadius;
        return {
          borderTopLeftRadius: padBorderRadius(topLeft),
          borderTopRightRadius: padBorderRadius(topRight),
          borderBottomLeftRadius: padBorderRadius(bottomLeft),
          borderBottomRightRadius: padBorderRadius(bottomRight),
          ...styles
        };
      } // The inline style using calc() will only apply if both values
      // supplied to calc() have units. Deprecated block's may have
      // unitless integer.


      const radius = Number.isInteger(borderRadius) ? `${borderRadius}px` : borderRadius;
      styles.borderRadius = `calc(${radius} + ${DEFAULT_INNER_PADDING})`;
    }

    return styles;
  };

  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: getBlockClassNames()
  });
  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, controls, showLabel && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    className: "wp-block-search__label",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add label…'),
    withoutInteractiveFormatting: true,
    value: label,
    onChange: html => setAttributes({
      label: html
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
    size: {
      width: `${width}${widthUnit}`
    },
    className: classnames_default()('wp-block-search__inside-wrapper', isButtonPositionInside ? borderProps.className : undefined),
    style: getWrapperStyles(),
    minWidth: MIN_WIDTH,
    enable: getResizableSides(),
    onResizeStart: (event, direction, elt) => {
      setAttributes({
        width: parseInt(elt.offsetWidth, 10),
        widthUnit: 'px'
      });
      toggleSelection(false);
    },
    onResizeStop: (event, direction, elt, delta) => {
      setAttributes({
        width: parseInt(width + delta.width, 10)
      });
      toggleSelection(true);
    },
    showHandle: isSelected
  }, (isButtonPositionInside || isButtonPositionOutside) && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, renderTextField(), renderButton()), hasOnlyButton && renderButton(), hasNoButton && renderTextField()));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/variations.js
/**
 * WordPress dependencies
 */

const search_variations_variations = [{
  name: 'default',
  isDefault: true,
  attributes: {
    buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
    label: (0,external_wp_i18n_namespaceObject.__)('Search')
  }
}];
/* harmony default export */ var search_variations = (search_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const search_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/search",
  title: "Search",
  category: "widgets",
  description: "Help visitors find your content.",
  keywords: ["find"],
  textdomain: "default",
  attributes: {
    label: {
      type: "string",
      __experimentalRole: "content"
    },
    showLabel: {
      type: "boolean",
      "default": true
    },
    placeholder: {
      type: "string",
      "default": "",
      __experimentalRole: "content"
    },
    width: {
      type: "number"
    },
    widthUnit: {
      type: "string"
    },
    buttonText: {
      type: "string",
      __experimentalRole: "content"
    },
    buttonPosition: {
      type: "string",
      "default": "button-outside"
    },
    buttonUseIcon: {
      type: "boolean",
      "default": false
    }
  },
  supports: {
    align: ["left", "center", "right"],
    color: {
      gradients: true,
      __experimentalSkipSerialization: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    __experimentalBorder: {
      color: true,
      radius: true,
      width: true,
      __experimentalSkipSerialization: true,
      __experimentalDefaultControls: {
        color: true,
        radius: true,
        width: true
      }
    },
    html: false
  },
  editorStyle: "wp-block-search-editor",
  style: "wp-block-search"
};


const {
  name: search_name
} = search_metadata;

const search_settings = {
  icon: library_search,
  example: {},
  variations: search_variations,
  edit: SearchEdit
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/separator.js


/**
 * WordPress dependencies
 */

const separator = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20.2 7v4H3.8V7H2.2v9h1.6v-3.5h16.4V16h1.6V7z"
}));
/* harmony default export */ var library_separator = (separator);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/use-deprecated-opacity.js
/**
 * WordPress dependencies
 */


function useDeprecatedOpacity(opacity, currentColor, setAttributes) {
  const [deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor] = (0,external_wp_element_namespaceObject.useState)(false);
  const previousColor = (0,external_wp_compose_namespaceObject.usePrevious)(currentColor); // A separator with no color set will always have previousColor set to undefined,
  // and we need to differentiate these from those with color set that will return
  // previousColor as undefined on the first render.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (opacity === 'css' && !currentColor && !previousColor) {
      setDeprecatedOpacityWithNoColor(true);
    }
  }, [currentColor, previousColor, opacity]); // For deprecated blocks, that have a default 0.4 css opacity set, we
  // need to remove this if the current color is changed, or a color is added.
  // In these instances the opacity attribute is set back to the default of
  // alpha-channel which allows a new custom opacity to be set via the color picker.

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (opacity === 'css' && (deprecatedOpacityWithNoColor && currentColor || previousColor && currentColor !== previousColor)) {
      setAttributes({
        opacity: 'alpha-channel'
      });
      setDeprecatedOpacityWithNoColor(false);
    }
  }, [deprecatedOpacityWithNoColor, currentColor, previousColor]);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function SeparatorEdit(_ref) {
  var _colorProps$style, _style$color;

  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    backgroundColor,
    opacity,
    style
  } = attributes;
  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
  const currentColor = colorProps === null || colorProps === void 0 ? void 0 : (_colorProps$style = colorProps.style) === null || _colorProps$style === void 0 ? void 0 : _colorProps$style.backgroundColor;
  const hasCustomColor = !!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.background);
  useDeprecatedOpacity(opacity, currentColor, setAttributes); // The dots styles uses text for the dots, to change those dots color is
  // using color, not backgroundColor.

  const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
  const className = classnames_default()({
    'has-text-color': backgroundColor || currentColor,
    [colorClass]: colorClass,
    'has-css-opacity': opacity === 'css',
    'has-alpha-channel-opacity': opacity === 'alpha-channel'
  }, colorProps.classname);
  const styles = {
    color: currentColor,
    backgroundColor: currentColor
  };
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.HorizontalRule, (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className,
    style: hasCustomColor ? styles : undefined
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function separatorSave(_ref) {
  var _style$color, _colorProps$style;

  let {
    attributes
  } = _ref;
  const {
    backgroundColor,
    style,
    opacity
  } = attributes;
  const customColor = style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.background;
  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); // The hr support changing color using border-color, since border-color
  // is not yet supported in the color palette, we use background-color.
  // The dots styles uses text for the dots, to change those dots color is
  // using color, not backgroundColor.

  const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
  const className = classnames_default()({
    'has-text-color': backgroundColor || customColor,
    [colorClass]: colorClass,
    'has-css-opacity': opacity === 'css',
    'has-alpha-channel-opacity': opacity === 'alpha-channel'
  }, colorProps.className);
  const styles = {
    backgroundColor: colorProps === null || colorProps === void 0 ? void 0 : (_colorProps$style = colorProps.style) === null || _colorProps$style === void 0 ? void 0 : _colorProps$style.backgroundColor,
    color: colorClass ? undefined : customColor
  };
  return (0,external_wp_element_namespaceObject.createElement)("hr", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className,
    style: styles
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/transforms.js
/**
 * WordPress dependencies
 */

const separator_transforms_transforms = {
  from: [{
    type: 'enter',
    regExp: /^-{3,}$/,
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/separator')
  }, {
    type: 'raw',
    selector: 'hr',
    schema: {
      hr: {}
    }
  }]
};
/* harmony default export */ var separator_transforms = (separator_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/deprecated.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


const separator_deprecated_v1 = {
  attributes: {
    color: {
      type: 'string'
    },
    customColor: {
      type: 'string'
    }
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      color,
      customColor
    } = attributes; // the hr support changing color using border-color, since border-color
    // is not yet supported in the color palette, we use background-color

    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', color); // the dots styles uses text for the dots, to change those dots color is
    // using color, not backgroundColor

    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', color);
    const className = classnames_default()({
      'has-text-color has-background': color || customColor,
      [backgroundClass]: backgroundClass,
      [colorClass]: colorClass
    });
    const style = {
      backgroundColor: backgroundClass ? undefined : customColor,
      color: colorClass ? undefined : customColor
    };
    return (0,external_wp_element_namespaceObject.createElement)("hr", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className,
      style
    }));
  },

  migrate(attributes) {
    const {
      color,
      customColor
    } = attributes;
    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['color', 'customColor']),
      backgroundColor: color ? color : undefined,
      opacity: 'css',
      style: customColor ? {
        color: {
          background: customColor
        }
      } : undefined
    };
  }

};
/* harmony default export */ var separator_deprecated = ([separator_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const separator_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/separator",
  title: "Separator",
  category: "design",
  description: "Create a break between ideas or sections with a horizontal separator.",
  keywords: ["horizontal-line", "hr", "divider"],
  textdomain: "default",
  attributes: {
    opacity: {
      type: "string",
      "default": "alpha-channel"
    }
  },
  supports: {
    anchor: true,
    align: ["center", "wide", "full"],
    color: {
      __experimentalSkipSerialization: true,
      gradients: true,
      background: true,
      text: false,
      __experimentalDefaultControls: {
        background: true
      }
    }
  },
  styles: [{
    name: "default",
    label: "Default",
    isDefault: true
  }, {
    name: "wide",
    label: "Wide Line"
  }, {
    name: "dots",
    label: "Dots"
  }],
  editorStyle: "wp-block-separator-editor",
  style: "wp-block-separator"
};



const {
  name: separator_name
} = separator_metadata;

const separator_settings = {
  icon: library_separator,
  example: {
    attributes: {
      customColor: '#065174',
      className: 'is-style-wide'
    }
  },
  transforms: separator_transforms,
  edit: SeparatorEdit,
  save: separatorSave,
  deprecated: separator_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shortcode.js


/**
 * WordPress dependencies
 */

const shortcode = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16 4.2v1.5h2.5v12.5H16v1.5h4V4.2h-4zM4.2 19.8h4v-1.5H5.8V5.8h2.5V4.2h-4l-.1 15.6zm5.1-3.1l1.4.6 4-10-1.4-.6-4 10z"
}));
/* harmony default export */ var library_shortcode = (shortcode);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js


/**
 * WordPress dependencies
 */




function ShortcodeEdit(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ShortcodeEdit);
  const inputId = `blocks-shortcode-input-${instanceId}`;
  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: 'components-placeholder'
  }), (0,external_wp_element_namespaceObject.createElement)("label", {
    htmlFor: inputId,
    className: "components-placeholder__label"
  }, (0,external_wp_element_namespaceObject.createElement)(icon, {
    icon: library_shortcode
  }), (0,external_wp_i18n_namespaceObject.__)('Shortcode')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
    className: "blocks-shortcode__textarea",
    id: inputId,
    value: attributes.text,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Shortcode text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write shortcode here…'),
    onChange: text => setAttributes({
      text
    })
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/save.js


/**
 * WordPress dependencies
 */

function shortcode_save_save(_ref) {
  let {
    attributes
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.text);
}

;// CONCATENATED MODULE: external ["wp","autop"]
var external_wp_autop_namespaceObject = window["wp"]["autop"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js
/**
 * WordPress dependencies
 */

const shortcode_transforms_transforms = {
  from: [{
    type: 'shortcode',
    // Per "Shortcode names should be all lowercase and use all
    // letters, but numbers and underscores should work fine too.
    // Be wary of using hyphens (dashes), you'll be better off not
    // using them." in https://codex.wordpress.org/Shortcode_API
    // Require that the first character be a letter. This notably
    // prevents footnote markings ([1]) from being caught as
    // shortcodes.
    tag: '[a-z][a-z0-9_-]*',
    attributes: {
      text: {
        type: 'string',
        shortcode: (attrs, _ref) => {
          let {
            content
          } = _ref;
          return (0,external_wp_autop_namespaceObject.removep)((0,external_wp_autop_namespaceObject.autop)(content));
        }
      }
    },
    priority: 20
  }]
};
/* harmony default export */ var shortcode_transforms = (shortcode_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */




const shortcode_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/shortcode",
  title: "Shortcode",
  category: "widgets",
  description: "Insert additional custom elements with a WordPress shortcode.",
  textdomain: "default",
  attributes: {
    text: {
      type: "string",
      source: "html"
    }
  },
  supports: {
    className: false,
    customClassName: false,
    html: false
  },
  editorStyle: "wp-block-shortcode-editor"
};
const {
  name: shortcode_name
} = shortcode_metadata;

const shortcode_settings = {
  icon: library_shortcode,
  transforms: shortcode_transforms,
  edit: ShortcodeEdit,
  save: shortcode_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/site-logo.js


/**
 * WordPress dependencies
 */

const siteLogo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12 3c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 1.5c4.1 0 7.5 3.4 7.5 7.5v.1c-1.4-.8-3.3-1.7-3.4-1.8-.2-.1-.5-.1-.8.1l-2.9 2.1L9 11.3c-.2-.1-.4 0-.6.1l-3.7 2.2c-.1-.5-.2-1-.2-1.5 0-4.2 3.4-7.6 7.5-7.6zm0 15c-3.1 0-5.7-1.9-6.9-4.5l3.7-2.2 3.5 1.2c.2.1.5 0 .7-.1l2.9-2.1c.8.4 2.5 1.2 3.5 1.9-.9 3.3-3.9 5.8-7.4 5.8z"
}));
/* harmony default export */ var site_logo = (siteLogo);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/edit.js


/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */












/**
 * Internal dependencies
 */


/**
 * Module constants
 */


const site_logo_edit_ALLOWED_MEDIA_TYPES = ['image'];
const ACCEPT_MEDIA_STRING = 'image/*';

const SiteLogo = _ref => {
  let {
    alt,
    attributes: {
      align,
      width,
      height,
      isLink,
      linkTarget,
      shouldSyncIcon
    },
    containerRef,
    isSelected,
    setAttributes,
    setLogo,
    logoUrl,
    siteUrl,
    logoId,
    iconId,
    setIcon,
    canUserEdit
  } = _ref;
  const clientWidth = useClientWidth(containerRef, [align]);
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const isWideAligned = (0,external_lodash_namespaceObject.includes)(['wide', 'full'], align);
  const isResizable = !isWideAligned && isLargeViewport;
  const [{
    naturalWidth,
    naturalHeight
  }, setNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
  const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    toggleSelection
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const classes = classnames_default()('custom-logo-link', {
    'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(logoUrl)
  });
  const {
    imageEditing,
    maxWidth,
    title
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const siteEntities = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('root', 'site');
    return {
      title: siteEntities.title,
      ...(0,external_lodash_namespaceObject.pick)(getSettings(), ['imageEditing', 'maxWidth'])
    };
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Turn the `Use as site icon` toggle off if it is on but the logo and icon have
    // fallen out of sync. This can happen if the toggle is saved in the `on` position,
    // but changes are later made to the site icon in the Customizer.
    if (shouldSyncIcon && logoId !== iconId) {
      setAttributes({
        shouldSyncIcon: false
      });
    }
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setIsEditingImage(false);
    }
  }, [isSelected]);

  function onResizeStart() {
    toggleSelection(false);
  }

  function onResizeStop() {
    toggleSelection(true);
  }

  const img = (0,external_wp_element_namespaceObject.createElement)("img", {
    className: "custom-logo",
    src: logoUrl,
    alt: alt,
    onLoad: event => {
      setNaturalSize((0,external_lodash_namespaceObject.pick)(event.target, ['naturalWidth', 'naturalHeight']));
    }
  });
  let imgWrapper = img; // Disable reason: Image itself is not meant to be interactive, but
  // should direct focus to block.

  if (isLink) {
    imgWrapper =
    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
    (0,external_wp_element_namespaceObject.createElement)("a", {
      href: siteUrl,
      className: classes,
      rel: "home",
      title: title,
      onClick: event => event.preventDefault()
    }, img)
    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
    ;
  }

  let imageWidthWithinContainer;

  if (clientWidth && naturalWidth && naturalHeight) {
    const exceedMaxWidth = naturalWidth > clientWidth;
    imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;
  }

  if (!isResizable || !imageWidthWithinContainer) {
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      style: {
        width,
        height
      }
    }, imgWrapper);
  } // Set the default width to a responsible size.
  // Note that this width is also set in the attached frontend CSS file.


  const defaultWidth = 120;
  const currentWidth = width || defaultWidth;
  const ratio = naturalWidth / naturalHeight;
  const currentHeight = currentWidth / ratio;
  const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : Math.ceil(MIN_SIZE * ratio);
  const minHeight = naturalHeight < naturalWidth ? MIN_SIZE : Math.ceil(MIN_SIZE / ratio); // With the current implementation of ResizableBox, an image needs an
  // explicit pixel value for the max-width. In absence of being able to
  // set the content-width, this max-width is currently dictated by the
  // vanilla editor style. The following variable adds a buffer to this
  // vanilla style, so 3rd party themes have some wiggleroom. This does,
  // in most cases, allow you to scale the image beyond the width of the
  // main column, though not infinitely.
  // @todo It would be good to revisit this once a content-width variable
  // becomes available.

  const maxWidthBuffer = maxWidth * 2.5;
  let showRightHandle = false;
  let showLeftHandle = false;
  /* eslint-disable no-lonely-if */
  // See https://github.com/WordPress/gutenberg/issues/7584.

  if (align === 'center') {
    // When the image is centered, show both handles.
    showRightHandle = true;
    showLeftHandle = true;
  } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
    // In RTL mode the image is on the right by default.
    // Show the right handle and hide the left handle only when it is
    // aligned left. Otherwise always show the left handle.
    if (align === 'left') {
      showRightHandle = true;
    } else {
      showLeftHandle = true;
    }
  } else {
    // Show the left handle and hide the right handle only when the
    // image is aligned right. Otherwise always show the right handle.
    if (align === 'right') {
      showLeftHandle = true;
    } else {
      showRightHandle = true;
    }
  }
  /* eslint-enable no-lonely-if */


  const canEditImage = logoId && naturalWidth && naturalHeight && imageEditing;
  const imgEdit = canEditImage && isEditingImage ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditingProvider, {
    id: logoId,
    url: logoUrl,
    naturalWidth: naturalWidth,
    naturalHeight: naturalHeight,
    clientWidth: clientWidth,
    onSaveImage: imageAttributes => {
      setLogo(imageAttributes.id);
    },
    isEditing: isEditingImage,
    onFinishEditing: () => setIsEditingImage(false)
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
    url: logoUrl,
    width: currentWidth,
    height: currentHeight,
    clientWidth: clientWidth,
    naturalHeight: naturalHeight,
    naturalWidth: naturalWidth
  })) : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
    size: {
      width: currentWidth,
      height: currentHeight
    },
    showHandle: isSelected,
    minWidth: minWidth,
    maxWidth: maxWidthBuffer,
    minHeight: minHeight,
    maxHeight: maxWidthBuffer / ratio,
    lockAspectRatio: true,
    enable: {
      top: false,
      right: showRightHandle,
      bottom: true,
      left: showLeftHandle
    },
    onResizeStart: onResizeStart,
    onResizeStop: (event, direction, elt, delta) => {
      onResizeStop();
      setAttributes({
        width: parseInt(currentWidth + delta.width, 10),
        height: parseInt(currentHeight + delta.height, 10)
      });
    }
  }, imgWrapper);
  const syncSiteIconHelpText = (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'), {
    a: // eslint-disable-next-line jsx-a11y/anchor-has-content
    (0,external_wp_element_namespaceObject.createElement)("a", {
      href: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline',
      target: "_blank",
      rel: "noopener noreferrer"
    })
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Image width'),
    onChange: newWidth => setAttributes({
      width: newWidth
    }),
    min: minWidth,
    max: maxWidthBuffer,
    initialPosition: Math.min(defaultWidth, maxWidthBuffer),
    value: width || '',
    disabled: !isResizable
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link image to home'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: linkTarget === '_blank'
  })), canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Use as site icon'),
    onChange: value => {
      setAttributes({
        shouldSyncIcon: value
      });
      setIcon(value ? logoId : undefined);
    },
    checked: !!shouldSyncIcon,
    help: syncSiteIconHelpText
  })))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, canEditImage && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: () => setIsEditingImage(true),
    icon: library_crop,
    label: (0,external_wp_i18n_namespaceObject.__)('Crop')
  })), imgEdit);
};

function LogoEdit(_ref2) {
  let {
    attributes,
    className,
    setAttributes,
    isSelected
  } = _ref2;
  const {
    width,
    shouldSyncIcon
  } = attributes;
  const [logoUrl, setLogoUrl] = (0,external_wp_element_namespaceObject.useState)();
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const {
    siteLogoId,
    canUserEdit,
    url,
    siteIconId,
    mediaItemData,
    isRequestingMediaItem
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser,
      getEntityRecord,
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = getEditedEntityRecord('root', 'site');
    const siteData = getEntityRecord('root', '__unstableBase');

    const _siteLogo = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_logo;

    const _readOnlyLogo = siteData === null || siteData === void 0 ? void 0 : siteData.site_logo;

    const _canUserEdit = canUser('update', 'settings');

    const _siteLogoId = _canUserEdit ? _siteLogo : _readOnlyLogo;

    const _siteIconId = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_icon;

    const mediaItem = _siteLogoId && select(external_wp_coreData_namespaceObject.store).getMedia(_siteLogoId, {
      context: 'view'
    });

    const _isRequestingMediaItem = _siteLogoId && !select(external_wp_coreData_namespaceObject.store).hasFinishedResolution('getMedia', [_siteLogoId, {
      context: 'view'
    }]);

    return {
      siteLogoId: _siteLogoId,
      canUserEdit: _canUserEdit,
      url: siteData === null || siteData === void 0 ? void 0 : siteData.url,
      mediaItemData: mediaItem,
      isRequestingMediaItem: _isRequestingMediaItem,
      siteIconId: _siteIconId
    };
  }, []);
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);

  const setLogo = function (newValue) {
    let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

    // `shouldForceSync` is used to force syncing when the attribute
    // may not have updated yet.
    if (shouldSyncIcon || shouldForceSync) {
      setIcon(newValue);
    }

    editEntityRecord('root', 'site', undefined, {
      site_logo: newValue
    });
  };

  const setIcon = newValue => // The new value needs to be `null` to reset the Site Icon.
  editEntityRecord('root', 'site', undefined, {
    site_icon: newValue !== null && newValue !== void 0 ? newValue : null
  });

  let alt = null;

  if (mediaItemData) {
    alt = mediaItemData.alt_text;

    if (logoUrl !== mediaItemData.source_url) {
      setLogoUrl(mediaItemData.source_url);
    }
  }

  const onInitialSelectLogo = media => {
    // Initialize the syncSiteIcon toggle. If we currently have no Site logo and no
    // site icon, automatically sync the logo to the icon.
    if (shouldSyncIcon === undefined) {
      const shouldForceSync = !siteIconId;
      setAttributes({
        shouldSyncIcon: shouldForceSync
      }); // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by
      // the time `setLogo` is called, pass an argument to force the syncing.

      onSelectLogo(media, shouldForceSync);
      return;
    }

    onSelectLogo(media);
  };

  const onSelectLogo = function (media) {
    let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

    if (!media) {
      return;
    }

    if (!media.id && media.url) {
      // This is a temporary blob image.
      setLogo(undefined);
      setLogoUrl(media.url);
      return;
    }

    setLogo(media.id, shouldForceSync);
  };

  const onRemoveLogo = () => {
    setLogo(null);
    setLogoUrl(undefined);
    setAttributes({
      width: undefined
    });
  };

  const {
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);

  const onUploadError = message => {
    createErrorNotice(message[2], {
      type: 'snackbar'
    });
  };

  const controls = canUserEdit && logoUrl && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaURL: logoUrl,
    allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
    accept: ACCEPT_MEDIA_STRING,
    onSelect: onSelectLogo,
    onError: onUploadError
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
    onClick: onRemoveLogo
  }, (0,external_wp_i18n_namespaceObject.__)('Reset'))));
  let logoImage;
  const isLoading = siteLogoId === undefined || isRequestingMediaItem;

  if (isLoading) {
    logoImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null);
  }

  if (!!logoUrl) {
    logoImage = (0,external_wp_element_namespaceObject.createElement)(SiteLogo, {
      alt: alt,
      attributes: attributes,
      className: className,
      containerRef: ref,
      isSelected: isSelected,
      setAttributes: setAttributes,
      logoUrl: logoUrl,
      setLogo: setLogo,
      logoId: (mediaItemData === null || mediaItemData === void 0 ? void 0 : mediaItemData.id) || siteLogoId,
      siteUrl: url,
      setIcon: setIcon,
      iconId: siteIconId,
      canUserEdit: canUserEdit
    });
  }

  const placeholder = content => {
    const placeholderClassName = classnames_default()('block-editor-media-placeholder', className);
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
      className: placeholderClassName,
      preview: logoImage
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
      className: "components-placeholder__illustration",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      viewBox: "0 0 60 60"
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
      vectorEffect: "non-scaling-stroke",
      d: "m61 32.622-13.555-9.137-15.888 9.859a5 5 0 0 1-5.386-.073l-9.095-5.989L1 37.5"
    })), content);
  };

  const classes = classnames_default()(className, {
    'is-default-size': !width
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    ref,
    className: classes
  });

  const label = (0,external_wp_i18n_namespaceObject.__)('Add a site logo');

  return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, controls, !!logoUrl && logoImage, !logoUrl && !canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    className: "site-logo_placeholder"
  }, isLoading && (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "components-placeholder__preview"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))), !logoUrl && canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
    onSelect: onInitialSelectLogo,
    accept: ACCEPT_MEDIA_STRING,
    allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
    onError: onUploadError,
    placeholder: placeholder,
    mediaLibraryButton: _ref3 => {
      let {
        open
      } = _ref3;
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        icon: library_upload,
        variant: "primary",
        label: label,
        showTooltip: true,
        tooltipPosition: "top center",
        onClick: () => {
          open();
        }
      });
    }
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/transforms.js
/**
 * WordPress dependencies
 */

const site_logo_transforms_transforms = {
  to: [{
    type: 'block',
    blocks: ['core/site-title'],
    transform: _ref => {
      let {
        isLink,
        linkTarget
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-title', {
        isLink,
        linkTarget
      });
    }
  }]
};
/* harmony default export */ var site_logo_transforms = (site_logo_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const site_logo_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/site-logo",
  title: "Site Logo",
  category: "theme",
  description: "Display a graphic to represent this site. Update the block, and the changes apply everywhere it\u2019s used. This is different than the site icon, which is the smaller image visible in your dashboard, browser tabs, etc used to help others recognize this site.",
  textdomain: "default",
  attributes: {
    width: {
      type: "number"
    },
    isLink: {
      type: "boolean",
      "default": true
    },
    linkTarget: {
      type: "string",
      "default": "_self"
    },
    shouldSyncIcon: {
      type: "boolean"
    }
  },
  example: {
    viewportWidth: 500,
    attributes: {
      width: 350,
      className: "block-editor-block-types-list__site-logo-example"
    }
  },
  supports: {
    html: false,
    align: true,
    alignWide: false,
    color: {
      __experimentalDuotone: "img, .components-placeholder__illustration, .components-placeholder::before",
      text: false,
      background: false
    }
  },
  styles: [{
    name: "default",
    label: "Default",
    isDefault: true
  }, {
    name: "rounded",
    label: "Rounded"
  }],
  editorStyle: "wp-block-site-logo-editor",
  style: "wp-block-site-logo"
};


const {
  name: site_logo_name
} = site_logo_metadata;

const site_logo_settings = {
  icon: site_logo,
  edit: LogoEdit,
  transforms: site_logo_transforms
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






function SiteTaglineEdit(_ref) {
  let {
    attributes,
    setAttributes,
    insertBlocksAfter
  } = _ref;
  const {
    textAlign
  } = attributes;
  const [siteTagline, setSiteTagline] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'description');
  const {
    canUserEdit,
    readOnlySiteTagLine
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser,
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteData = getEntityRecord('root', '__unstableBase');
    return {
      canUserEdit: canUser('update', 'settings'),
      readOnlySiteTagLine: siteData === null || siteData === void 0 ? void 0 : siteData.description
    };
  }, []);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign,
      'wp-block-site-tagline__placeholder': !canUserEdit && !readOnlySiteTagLine
    })
  });
  const siteTaglineContent = canUserEdit ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    allowedFormats: [],
    onChange: setSiteTagline,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site tagline text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site tagline…'),
    tagName: "p",
    value: siteTagline,
    disableLineBreaks: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
  }, blockProps)) : (0,external_wp_element_namespaceObject.createElement)("p", blockProps, readOnlySiteTagLine || (0,external_wp_i18n_namespaceObject.__)('Site Tagline placeholder'));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    onChange: newAlign => setAttributes({
      textAlign: newAlign
    }),
    value: textAlign
  })), siteTaglineContent);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/icon.js


/**
 * WordPress dependencies
 */

/* harmony default export */ var site_tagline_icon = ((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  width: "24",
  height: "24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  fill: "none",
  d: "M0 0h24v24H0z"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M4 9h16v2H4V9zm0 4h10v2H4v-2z"
})));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/deprecated.js
/**
 * Internal dependencies
 */

const site_tagline_deprecated_v1 = {
  attributes: {
    textAlign: {
      type: 'string'
    }
  },
  supports: {
    align: ['wide', 'full'],
    html: false,
    color: {
      gradients: true
    },
    spacing: {
      margin: true,
      padding: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalTextTransform: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var site_tagline_deprecated = ([site_tagline_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
/**
 * Internal dependencies
 */
const site_tagline_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/site-tagline",
  title: "Site Tagline",
  category: "theme",
  description: "Describe in a few words what the site is about. The tagline can be used in search results or when sharing on social networks even if it's not displayed in the theme design.",
  keywords: ["description"],
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    }
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    spacing: {
      margin: true,
      padding: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalTextTransform: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  editorStyle: "wp-block-site-tagline-editor"
};



const {
  name: site_tagline_name
} = site_tagline_metadata;

const site_tagline_settings = {
  icon: site_tagline_icon,
  edit: SiteTaglineEdit,
  deprecated: site_tagline_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/map-marker.js


/**
 * WordPress dependencies
 */

const mapMarker = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "https://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z"
}));
/* harmony default export */ var map_marker = (mapMarker);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/level-icon.js


/**
 * WordPress dependencies
 */


function LevelIcon(_ref) {
  let {
    level,
    isPressed = false
  } = _ref;
  if (level === 0) return library_paragraph;
  const levelToPath = {
    1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z',
    2: 'M7 5h2v10H7v-4H3v4H1V5h2v4h4V5zm8 8c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6V15h8v-2H15z',
    3: 'M12.1 12.2c.4.3.8.5 1.2.7.4.2.9.3 1.4.3.5 0 1-.1 1.4-.3.3-.1.5-.5.5-.8 0-.2 0-.4-.1-.6-.1-.2-.3-.3-.5-.4-.3-.1-.7-.2-1-.3-.5-.1-1-.1-1.5-.1V9.1c.7.1 1.5-.1 2.2-.4.4-.2.6-.5.6-.9 0-.3-.1-.6-.4-.8-.3-.2-.7-.3-1.1-.3-.4 0-.8.1-1.1.3-.4.2-.7.4-1.1.6l-1.2-1.4c.5-.4 1.1-.7 1.6-.9.5-.2 1.2-.3 1.8-.3.5 0 1 .1 1.6.2.4.1.8.3 1.2.5.3.2.6.5.8.8.2.3.3.7.3 1.1 0 .5-.2.9-.5 1.3-.4.4-.9.7-1.5.9v.1c.6.1 1.2.4 1.6.8.4.4.7.9.7 1.5 0 .4-.1.8-.3 1.2-.2.4-.5.7-.9.9-.4.3-.9.4-1.3.5-.5.1-1 .2-1.6.2-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1l1.1-1.4zM7 9H3V5H1v10h2v-4h4v4h2V5H7v4z',
    4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z',
    5: 'M12.1 12.2c.4.3.7.5 1.1.7.4.2.9.3 1.3.3.5 0 1-.1 1.4-.4.4-.3.6-.7.6-1.1 0-.4-.2-.9-.6-1.1-.4-.3-.9-.4-1.4-.4H14c-.1 0-.3 0-.4.1l-.4.1-.5.2-1-.6.3-5h6.4v1.9h-4.3L14 8.8c.2-.1.5-.1.7-.2.2 0 .5-.1.7-.1.5 0 .9.1 1.4.2.4.1.8.3 1.1.6.3.2.6.6.8.9.2.4.3.9.3 1.4 0 .5-.1 1-.3 1.4-.2.4-.5.8-.9 1.1-.4.3-.8.5-1.3.7-.5.2-1 .3-1.5.3-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1-.1-.1 1-1.5 1-1.5zM9 15H7v-4H3v4H1V5h2v4h4V5h2v10z',
    6: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm8.6-7.5c-.2-.2-.5-.4-.8-.5-.6-.2-1.3-.2-1.9 0-.3.1-.6.3-.8.5l-.6.9c-.2.5-.2.9-.2 1.4.4-.3.8-.6 1.2-.8.4-.2.8-.3 1.3-.3.4 0 .8 0 1.2.2.4.1.7.3 1 .6.3.3.5.6.7.9.2.4.3.8.3 1.3s-.1.9-.3 1.4c-.2.4-.5.7-.8 1-.4.3-.8.5-1.2.6-1 .3-2 .3-3 0-.5-.2-1-.5-1.4-.9-.4-.4-.8-.9-1-1.5-.2-.6-.3-1.3-.3-2.1s.1-1.6.4-2.3c.2-.6.6-1.2 1-1.6.4-.4.9-.7 1.4-.9.6-.3 1.1-.4 1.7-.4.7 0 1.4.1 2 .3.5.2 1 .5 1.4.8 0 .1-1.3 1.4-1.3 1.4zm-2.4 5.8c.2 0 .4 0 .6-.1.2 0 .4-.1.5-.2.1-.1.3-.3.4-.5.1-.2.1-.5.1-.7 0-.4-.1-.8-.4-1.1-.3-.2-.7-.3-1.1-.3-.3 0-.7.1-1 .2-.4.2-.7.4-1 .7 0 .3.1.7.3 1 .1.2.3.4.4.6.2.1.3.3.5.3.2.1.5.2.7.1z'
  };
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
    width: "20",
    height: "20",
    viewBox: "0 0 20 20",
    xmlns: "http://www.w3.org/2000/svg",
    isPressed: isPressed
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
    d: levelToPath[level]
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/level-toolbar.js


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function LevelControl(_ref) {
  let {
    level,
    onChange
  } = _ref;
  const allControls = [1, 2, 3, 4, 5, 6, 0].map(currentLevel => {
    const isActive = currentLevel === level;
    return {
      icon: (0,external_wp_element_namespaceObject.createElement)(LevelIcon, {
        level: currentLevel,
        isPressed: isActive
      }),
      title: currentLevel === 0 ? (0,external_wp_i18n_namespaceObject.__)('Paragraph') : // translators: %s: heading level e.g: "1", "2", "3"
      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Heading %d'), currentLevel),
      isActive,
      onClick: () => onChange(currentLevel)
    };
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    label: (0,external_wp_i18n_namespaceObject.__)('Change heading level'),
    icon: (0,external_wp_element_namespaceObject.createElement)(LevelIcon, {
      level: level
    }),
    controls: allControls
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/index.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


function SiteTitleEdit(_ref) {
  let {
    attributes,
    setAttributes,
    insertBlocksAfter
  } = _ref;
  const {
    level,
    textAlign,
    isLink,
    linkTarget
  } = attributes;
  const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'title');
  const {
    canUserEdit,
    readOnlyTitle
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser,
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteData = getEntityRecord('root', '__unstableBase');
    return {
      canUserEdit: canUser('update', 'settings'),
      readOnlyTitle: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(siteData === null || siteData === void 0 ? void 0 : siteData.name)
    };
  }, []);
  const TagName = level === 0 ? 'p' : `h${level}`;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign,
      'wp-block-site-title__placeholder': !canUserEdit && !readOnlyTitle
    })
  });
  const siteTitleContent = canUserEdit ? (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: isLink ? 'a' : 'span',
    href: isLink ? '#site-title-pseudo-link' : undefined,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site title text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site title…'),
    value: title,
    onChange: setTitle,
    allowedFormats: [],
    disableLineBreaks: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
  })) : (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
    href: "#site-title-pseudo-link",
    onClick: event => event.preventDefault()
  }, readOnlyTitle || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')) : (0,external_wp_element_namespaceObject.createElement)("span", null, title || readOnlyTitle));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(LevelControl, {
    level: level,
    onChange: newLevel => setAttributes({
      level: newLevel
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
    onChange: () => setAttributes({
      isLink: !isLink
    }),
    checked: isLink
  }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
    onChange: value => setAttributes({
      linkTarget: value ? '_blank' : '_self'
    }),
    checked: linkTarget === '_blank'
  }))), siteTitleContent);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/deprecated.js
/**
 * Internal dependencies
 */

const site_title_deprecated_v1 = {
  attributes: {
    level: {
      type: 'number',
      default: 1
    },
    textAlign: {
      type: 'string'
    },
    isLink: {
      type: 'boolean',
      default: true
    },
    linkTarget: {
      type: 'string',
      default: '_self'
    }
  },
  supports: {
    align: ['wide', 'full'],
    html: false,
    color: {
      gradients: true,
      link: true
    },
    spacing: {
      padding: true,
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalTextTransform: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true
    }
  },

  save() {
    return null;
  },

  migrate: migrate_font_family,

  isEligible(_ref) {
    var _style$typography;

    let {
      style
    } = _ref;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var site_title_deprecated = ([site_title_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/transforms.js
/**
 * WordPress dependencies
 */

const site_title_transforms_transforms = {
  to: [{
    type: 'block',
    blocks: ['core/site-logo'],
    transform: _ref => {
      let {
        isLink,
        linkTarget
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo', {
        isLink,
        linkTarget
      });
    }
  }]
};
/* harmony default export */ var site_title_transforms = (site_title_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const site_title_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/site-title",
  title: "Site Title",
  category: "theme",
  description: "Displays the name of this site. Update the block, and the changes apply everywhere it\u2019s used. This will also appear in the browser title bar and in search results.",
  textdomain: "default",
  attributes: {
    level: {
      type: "number",
      "default": 1
    },
    textAlign: {
      type: "string"
    },
    isLink: {
      type: "boolean",
      "default": true
    },
    linkTarget: {
      type: "string",
      "default": "_self"
    }
  },
  example: {
    viewportWidth: 500
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true,
        link: true
      }
    },
    spacing: {
      padding: true,
      margin: true
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontFamily: true,
      __experimentalTextTransform: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalDefaultControls: {
        fontSize: true,
        lineHeight: true,
        fontAppearance: true,
        letterSpacing: true,
        textTransform: true
      }
    }
  },
  editorStyle: "wp-block-site-title-editor"
};



const {
  name: site_title_name
} = site_title_metadata;

const site_title_settings = {
  icon: map_marker,
  edit: SiteTitleEdit,
  transforms: site_title_transforms,
  deprecated: site_title_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/share.js


/**
 * WordPress dependencies
 */

const share = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z"
}));
/* harmony default export */ var library_share = (share);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js


/**
 * WordPress dependencies
 */

const keyboardReturn = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z"
}));
/* harmony default export */ var keyboard_return = (keyboardReturn);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js


/**
 * WordPress dependencies
 */

const WordPressIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js


/**
 * WordPress dependencies
 */

const FivehundredpxIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js


/**
 * WordPress dependencies
 */

const AmazonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js


/**
 * WordPress dependencies
 */

const BandcampIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js


/**
 * WordPress dependencies
 */

const BehanceIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js


/**
 * WordPress dependencies
 */

const ChainIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19.647,16.706a1.134,1.134,0,0,0-.343-.833l-2.549-2.549a1.134,1.134,0,0,0-.833-.343,1.168,1.168,0,0,0-.883.392l.233.226q.2.189.264.264a2.922,2.922,0,0,1,.184.233.986.986,0,0,1,.159.312,1.242,1.242,0,0,1,.043.337,1.172,1.172,0,0,1-1.176,1.176,1.237,1.237,0,0,1-.337-.043,1,1,0,0,1-.312-.159,2.76,2.76,0,0,1-.233-.184q-.073-.068-.264-.264l-.226-.233a1.19,1.19,0,0,0-.4.895,1.134,1.134,0,0,0,.343.833L15.837,19.3a1.13,1.13,0,0,0,.833.331,1.18,1.18,0,0,0,.833-.318l1.8-1.789a1.12,1.12,0,0,0,.343-.821Zm-8.615-8.64a1.134,1.134,0,0,0-.343-.833L8.163,4.7a1.134,1.134,0,0,0-.833-.343,1.184,1.184,0,0,0-.833.331L4.7,6.473a1.12,1.12,0,0,0-.343.821,1.134,1.134,0,0,0,.343.833l2.549,2.549a1.13,1.13,0,0,0,.833.331,1.184,1.184,0,0,0,.883-.38L8.728,10.4q-.2-.189-.264-.264A2.922,2.922,0,0,1,8.28,9.9a.986.986,0,0,1-.159-.312,1.242,1.242,0,0,1-.043-.337A1.172,1.172,0,0,1,9.254,8.079a1.237,1.237,0,0,1,.337.043,1,1,0,0,1,.312.159,2.761,2.761,0,0,1,.233.184q.073.068.264.264l.226.233a1.19,1.19,0,0,0,.4-.895ZM22,16.706a3.343,3.343,0,0,1-1.042,2.488l-1.8,1.789a3.536,3.536,0,0,1-4.988-.025l-2.525-2.537a3.384,3.384,0,0,1-1.017-2.488,3.448,3.448,0,0,1,1.078-2.561l-1.078-1.078a3.434,3.434,0,0,1-2.549,1.078,3.4,3.4,0,0,1-2.5-1.029L3.029,9.794A3.4,3.4,0,0,1,2,7.294,3.343,3.343,0,0,1,3.042,4.806l1.8-1.789A3.384,3.384,0,0,1,7.331,2a3.357,3.357,0,0,1,2.5,1.042l2.525,2.537a3.384,3.384,0,0,1,1.017,2.488,3.448,3.448,0,0,1-1.078,2.561l1.078,1.078a3.551,3.551,0,0,1,5.049-.049l2.549,2.549A3.4,3.4,0,0,1,22,16.706Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js


/**
 * WordPress dependencies
 */

const CodepenIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js


/**
 * WordPress dependencies
 */

const DeviantArtIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js


/**
 * WordPress dependencies
 */

const DribbbleIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js


/**
 * WordPress dependencies
 */

const DropboxIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js


/**
 * WordPress dependencies
 */

const EtsyIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js


/**
 * WordPress dependencies
 */

const FacebookIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js


/**
 * WordPress dependencies
 */

const FeedIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js


/**
 * WordPress dependencies
 */

const FlickrIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js


/**
 * WordPress dependencies
 */

const FoursquareIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js


/**
 * WordPress dependencies
 */

const GoodreadsIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js


/**
 * WordPress dependencies
 */

const GoogleIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js


/**
 * WordPress dependencies
 */

const GitHubIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js


/**
 * WordPress dependencies
 */

const InstagramIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js


/**
 * WordPress dependencies
 */

const LastfmIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M 12.0002 1.5 C 6.2006 1.5 1.5 6.2011 1.5 11.9998 C 1.5 17.799 6.2006 22.5 12.0002 22.5 C 17.799 22.5 22.5 17.799 22.5 11.9998 C 22.5 6.2011 17.799 1.5 12.0002 1.5 Z M 16.1974 16.2204 C 14.8164 16.2152 13.9346 15.587 13.3345 14.1859 L 13.1816 13.8451 L 11.8541 10.8101 C 11.4271 9.7688 10.3526 9.0712 9.1801 9.0712 C 7.5695 9.0712 6.2593 10.3851 6.2593 12.001 C 6.2593 13.6165 7.5695 14.9303 9.1801 14.9303 C 10.272 14.9303 11.2651 14.3275 11.772 13.3567 C 11.7893 13.3235 11.8239 13.302 11.863 13.3038 C 11.9007 13.3054 11.9353 13.3288 11.9504 13.3632 L 12.4865 14.6046 C 12.5016 14.639 12.4956 14.6778 12.4723 14.7069 C 11.6605 15.6995 10.4602 16.2683 9.1801 16.2683 C 6.8331 16.2683 4.9234 14.3536 4.9234 12.001 C 4.9234 9.6468 6.833 7.732 9.1801 7.732 C 10.9572 7.732 12.3909 8.6907 13.1138 10.3636 C 13.1206 10.3802 13.8412 12.0708 14.4744 13.5191 C 14.8486 14.374 15.1462 14.896 16.1288 14.9292 C 17.0663 14.9613 17.7538 14.4122 17.7538 13.6485 C 17.7538 12.9691 17.3321 12.8004 16.3803 12.4822 C 14.7365 11.9398 13.845 11.3861 13.845 10.0182 C 13.845 8.6809 14.7667 7.8162 16.192 7.8162 C 17.1288 7.8162 17.8155 8.2287 18.2921 9.0768 C 18.305 9.1006 18.3079 9.1281 18.3004 9.1542 C 18.2929 9.1803 18.2748 9.2021 18.2507 9.2138 L 17.3614 9.669 C 17.3178 9.692 17.2643 9.6781 17.2356 9.6385 C 16.9329 9.2135 16.5956 9.0251 16.1423 9.0251 C 15.5512 9.0251 15.122 9.429 15.122 9.9865 C 15.122 10.6738 15.6529 10.8414 16.5339 11.1192 C 16.6491 11.1558 16.7696 11.194 16.8939 11.2343 C 18.2763 11.6865 19.0768 12.2311 19.0768 13.6836 C 19.0769 15.1297 17.8389 16.2204 16.1974 16.2204 Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js


/**
 * WordPress dependencies
 */

const LinkedInIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js


/**
 * WordPress dependencies
 */

const MailIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20,4H4C2.895,4,2,4.895,2,6v12c0,1.105,0.895,2,2,2h16c1.105,0,2-0.895,2-2V6C22,4.895,21.105,4,20,4z M20,8.236l-8,4.882 L4,8.236V6h16V8.236z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js


/**
 * WordPress dependencies
 */

const MastodonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js


/**
 * WordPress dependencies
 */

const MeetupIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js


/**
 * WordPress dependencies
 */

const MediumIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/patreon.js


/**
 * WordPress dependencies
 */

const PatreonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 569 546",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, {
  cx: "363",
  cy: "205",
  r: "205"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, {
  width: "100",
  height: "546",
  x: "0",
  y: "0"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js


/**
 * WordPress dependencies
 */

const PinterestIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js


/**
 * WordPress dependencies
 */

const PocketIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js


/**
 * WordPress dependencies
 */

const RedditIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M22,11.816c0-1.256-1.021-2.277-2.277-2.277c-0.593,0-1.122,0.24-1.526,0.614c-1.481-0.965-3.455-1.594-5.647-1.69 l1.171-3.702l3.18,0.748c0.008,1.028,0.846,1.862,1.876,1.862c1.035,0,1.877-0.842,1.877-1.878c0-1.035-0.842-1.877-1.877-1.877 c-0.769,0-1.431,0.466-1.72,1.13l-3.508-0.826c-0.203-0.047-0.399,0.067-0.46,0.261l-1.35,4.268 c-2.316,0.038-4.411,0.67-5.97,1.671C5.368,9.765,4.853,9.539,4.277,9.539C3.021,9.539,2,10.56,2,11.816 c0,0.814,0.433,1.523,1.078,1.925c-0.037,0.221-0.061,0.444-0.061,0.672c0,3.292,4.011,5.97,8.941,5.97s8.941-2.678,8.941-5.97 c0-0.214-0.02-0.424-0.053-0.632C21.533,13.39,22,12.661,22,11.816z M18.776,4.394c0.606,0,1.1,0.493,1.1,1.1s-0.493,1.1-1.1,1.1 s-1.1-0.494-1.1-1.1S18.169,4.394,18.776,4.394z M2.777,11.816c0-0.827,0.672-1.5,1.499-1.5c0.313,0,0.598,0.103,0.838,0.269 c-0.851,0.676-1.477,1.479-1.812,2.36C2.983,12.672,2.777,12.27,2.777,11.816z M11.959,19.606c-4.501,0-8.164-2.329-8.164-5.193 S7.457,9.22,11.959,9.22s8.164,2.329,8.164,5.193S16.46,19.606,11.959,19.606z M20.636,13.001c-0.326-0.89-0.948-1.701-1.797-2.384 c0.248-0.186,0.55-0.301,0.883-0.301c0.827,0,1.5,0.673,1.5,1.5C21.223,12.299,20.992,12.727,20.636,13.001z M8.996,14.704 c-0.76,0-1.397-0.616-1.397-1.376c0-0.76,0.637-1.397,1.397-1.397c0.76,0,1.376,0.637,1.376,1.397 C10.372,14.088,9.756,14.704,8.996,14.704z M16.401,13.328c0,0.76-0.616,1.376-1.376,1.376c-0.76,0-1.399-0.616-1.399-1.376 c0-0.76,0.639-1.397,1.399-1.397C15.785,11.931,16.401,12.568,16.401,13.328z M15.229,16.708c0.152,0.152,0.152,0.398,0,0.55 c-0.674,0.674-1.727,1.002-3.219,1.002c-0.004,0-0.007-0.002-0.011-0.002c-0.004,0-0.007,0.002-0.011,0.002 c-1.492,0-2.544-0.328-3.218-1.002c-0.152-0.152-0.152-0.398,0-0.55c0.152-0.152,0.399-0.151,0.55,0 c0.521,0.521,1.394,0.775,2.669,0.775c0.004,0,0.007,0.002,0.011,0.002c0.004,0,0.007-0.002,0.011-0.002 c1.275,0,2.148-0.253,2.669-0.775C14.831,16.556,15.078,16.556,15.229,16.708z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js


/**
 * WordPress dependencies
 */

const SkypeIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js


/**
 * WordPress dependencies
 */

const SnapchatIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js


/**
 * WordPress dependencies
 */

const SoundCloudIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M8.9,16.1L9,14L8.9,9.5c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1,0-0.1,0.1c0,0-0.1,0.1-0.1,0.1L8.3,14l0.1,2.1 c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1C8.8,16.3,8.9,16.3,8.9,16.1z M11.4,15.9l0.1-1.8L11.4,9c0-0.1,0-0.2-0.1-0.2 c0,0-0.1,0-0.1,0s-0.1,0-0.1,0c-0.1,0-0.1,0.1-0.1,0.2l0,0.1l-0.1,5c0,0,0,0.7,0.1,2v0c0,0.1,0,0.1,0.1,0.1c0.1,0.1,0.1,0.1,0.2,0.1 c0.1,0,0.1,0,0.2-0.1c0.1,0,0.1-0.1,0.1-0.2L11.4,15.9z M2.4,12.9L2.5,14l-0.2,1.1c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1-0.1L2.1,14 l0.1-1.1C2.2,12.9,2.3,12.9,2.4,12.9C2.3,12.9,2.4,12.9,2.4,12.9z M3.1,12.2L3.3,14l-0.2,1.8c0,0.1,0,0.1-0.1,0.1 c-0.1,0-0.1,0-0.1-0.1L2.8,14L3,12.2C3,12.2,3,12.2,3.1,12.2C3.1,12.2,3.1,12.2,3.1,12.2z M3.9,11.9L4.1,14l-0.2,2.1 c0,0.1,0,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L3.5,14l0.2-2.1c0-0.1,0-0.1,0.1-0.1C3.9,11.8,3.9,11.8,3.9,11.9z M4.7,11.9L4.9,14 l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L4.3,14l0.2-2.2c0-0.1,0-0.1,0.1-0.1C4.7,11.7,4.7,11.8,4.7,11.9z M5.6,12 l0.2,2l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1L5.1,14l0.2-2c0,0,0-0.1,0-0.1s0.1,0,0.1,0 C5.5,11.9,5.5,11.9,5.6,12L5.6,12z M6.4,10.7L6.6,14l-0.2,2.1c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.1-0.2-0.2L5.9,14 l0.2-3.3c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0C6.4,10.7,6.4,10.7,6.4,10.7z M7.2,10l0.2,4.1l-0.2,2.1c0,0,0,0.1,0,0.1 c0,0-0.1,0-0.1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.1-2.1L6.8,10c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0S7.2,9.9,7.2,10z M8,9.6L8.2,14 L8,16.1c0,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2-0.1-0.2-0.2L7.5,14l0.1-4.4c0-0.1,0-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0.1,0,0.1,0,0.1,0.1 C8,9.6,8,9.6,8,9.6z M11.4,16.1L11.4,16.1L11.4,16.1z M9.7,9.6L9.8,14l-0.1,2.1c0,0.1,0,0.1-0.1,0.2s-0.1,0.1-0.2,0.1 c-0.1,0-0.1,0-0.1-0.1s-0.1-0.1-0.1-0.2L9.2,14l0.1-4.4c0-0.1,0-0.1,0.1-0.2s0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S9.7,9.5,9.7,9.6 L9.7,9.6z M10.6,9.8l0.1,4.3l-0.1,2c0,0.1,0,0.1-0.1,0.2c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1-0.1-0.1-0.2L10,14 l0.1-4.3c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S10.6,9.7,10.6,9.8z M12.4,14l-0.1,2c0,0.1,0,0.1-0.1,0.2 c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2l-0.1-1l-0.1-1l0.1-5.5v0c0-0.1,0-0.2,0.1-0.2 c0.1,0,0.1-0.1,0.2-0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0.1,0.1,0.2L12.4,14z M22.1,13.9c0,0.7-0.2,1.3-0.7,1.7c-0.5,0.5-1.1,0.7-1.7,0.7 h-6.8c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2V8.2c0-0.1,0.1-0.2,0.2-0.3c0.5-0.2,1-0.3,1.6-0.3c1.1,0,2.1,0.4,2.9,1.1 c0.8,0.8,1.3,1.7,1.4,2.8c0.3-0.1,0.6-0.2,1-0.2c0.7,0,1.3,0.2,1.7,0.7C21.8,12.6,22.1,13.2,22.1,13.9L22.1,13.9z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js


/**
 * WordPress dependencies
 */

const SpotifyIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/telegram.js


/**
 * WordPress dependencies
 */

const TelegramIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 128 128",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M28.9700376,63.3244248 C47.6273373,55.1957357 60.0684594,49.8368063 66.2934036,47.2476366 C84.0668845,39.855031 87.7600616,38.5708563 90.1672227,38.528 C90.6966555,38.5191258 91.8804274,38.6503351 92.6472251,39.2725385 C93.294694,39.7979149 93.4728387,40.5076237 93.5580865,41.0057381 C93.6433345,41.5038525 93.7494885,42.63857 93.6651041,43.5252052 C92.7019529,53.6451182 88.5344133,78.2034783 86.4142057,89.5379542 C85.5170662,94.3339958 83.750571,95.9420841 82.0403991,96.0994568 C78.3237996,96.4414641 75.5015827,93.6432685 71.9018743,91.2836143 C66.2690414,87.5912212 63.0868492,85.2926952 57.6192095,81.6896017 C51.3004058,77.5256038 55.3966232,75.2369981 58.9976911,71.4967761 C59.9401076,70.5179421 76.3155302,55.6232293 76.6324771,54.2720454 C76.6721165,54.1030573 76.7089039,53.4731496 76.3346867,53.1405352 C75.9604695,52.8079208 75.4081573,52.921662 75.0095933,53.0121213 C74.444641,53.1403447 65.4461175,59.0880351 48.0140228,70.8551922 C45.4598218,72.6091037 43.1463059,73.4636682 41.0734751,73.4188859 C38.7883453,73.3695169 34.3926725,72.1268388 31.1249416,71.0646282 C27.1169366,69.7617838 23.931454,69.0729605 24.208838,66.8603276 C24.3533167,65.7078514 25.9403832,64.5292172 28.9700376,63.3244248 Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tiktok.js


/**
 * WordPress dependencies
 */

const TiktokIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 32 32",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js


/**
 * WordPress dependencies
 */

const TumblrIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js


/**
 * WordPress dependencies
 */

const TwitchIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js


/**
 * WordPress dependencies
 */

const TwitterIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js


/**
 * WordPress dependencies
 */

const VimeoIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js


/**
 * WordPress dependencies
 */

const VkIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js


/**
 * WordPress dependencies
 */

const YelpIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js


/**
 * WordPress dependencies
 */

const YouTubeIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  version: "1.1"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"
}));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/variations.js
/**
 * Internal dependencies
 */

const social_link_variations_variations = [{
  isDefault: true,
  name: 'wordpress',
  attributes: {
    service: 'wordpress'
  },
  title: 'WordPress',
  icon: WordPressIcon
}, {
  name: 'fivehundredpx',
  attributes: {
    service: 'fivehundredpx'
  },
  title: '500px',
  icon: FivehundredpxIcon
}, {
  name: 'amazon',
  attributes: {
    service: 'amazon'
  },
  title: 'Amazon',
  icon: AmazonIcon
}, {
  name: 'bandcamp',
  attributes: {
    service: 'bandcamp'
  },
  title: 'Bandcamp',
  icon: BandcampIcon
}, {
  name: 'behance',
  attributes: {
    service: 'behance'
  },
  title: 'Behance',
  icon: BehanceIcon
}, {
  name: 'chain',
  attributes: {
    service: 'chain'
  },
  title: 'Link',
  icon: ChainIcon
}, {
  name: 'codepen',
  attributes: {
    service: 'codepen'
  },
  title: 'CodePen',
  icon: CodepenIcon
}, {
  name: 'deviantart',
  attributes: {
    service: 'deviantart'
  },
  title: 'DeviantArt',
  icon: DeviantArtIcon
}, {
  name: 'dribbble',
  attributes: {
    service: 'dribbble'
  },
  title: 'Dribbble',
  icon: DribbbleIcon
}, {
  name: 'dropbox',
  attributes: {
    service: 'dropbox'
  },
  title: 'Dropbox',
  icon: DropboxIcon
}, {
  name: 'etsy',
  attributes: {
    service: 'etsy'
  },
  title: 'Etsy',
  icon: EtsyIcon
}, {
  name: 'facebook',
  attributes: {
    service: 'facebook'
  },
  title: 'Facebook',
  icon: FacebookIcon
}, {
  name: 'feed',
  attributes: {
    service: 'feed'
  },
  title: 'RSS Feed',
  icon: FeedIcon
}, {
  name: 'flickr',
  attributes: {
    service: 'flickr'
  },
  title: 'Flickr',
  icon: FlickrIcon
}, {
  name: 'foursquare',
  attributes: {
    service: 'foursquare'
  },
  title: 'Foursquare',
  icon: FoursquareIcon
}, {
  name: 'goodreads',
  attributes: {
    service: 'goodreads'
  },
  title: 'Goodreads',
  icon: GoodreadsIcon
}, {
  name: 'google',
  attributes: {
    service: 'google'
  },
  title: 'Google',
  icon: GoogleIcon
}, {
  name: 'github',
  attributes: {
    service: 'github'
  },
  title: 'GitHub',
  icon: GitHubIcon
}, {
  name: 'instagram',
  attributes: {
    service: 'instagram'
  },
  title: 'Instagram',
  icon: InstagramIcon
}, {
  name: 'lastfm',
  attributes: {
    service: 'lastfm'
  },
  title: 'Last.fm',
  icon: LastfmIcon
}, {
  name: 'linkedin',
  attributes: {
    service: 'linkedin'
  },
  title: 'LinkedIn',
  icon: LinkedInIcon
}, {
  name: 'mail',
  attributes: {
    service: 'mail'
  },
  title: 'Mail',
  keywords: ['email', 'e-mail'],
  icon: MailIcon
}, {
  name: 'mastodon',
  attributes: {
    service: 'mastodon'
  },
  title: 'Mastodon',
  icon: MastodonIcon
}, {
  name: 'meetup',
  attributes: {
    service: 'meetup'
  },
  title: 'Meetup',
  icon: MeetupIcon
}, {
  name: 'medium',
  attributes: {
    service: 'medium'
  },
  title: 'Medium',
  icon: MediumIcon
}, {
  name: 'patreon',
  attributes: {
    service: 'patreon'
  },
  title: 'Patreon',
  icon: PatreonIcon
}, {
  name: 'pinterest',
  attributes: {
    service: 'pinterest'
  },
  title: 'Pinterest',
  icon: PinterestIcon
}, {
  name: 'pocket',
  attributes: {
    service: 'pocket'
  },
  title: 'Pocket',
  icon: PocketIcon
}, {
  name: 'reddit',
  attributes: {
    service: 'reddit'
  },
  title: 'Reddit',
  icon: RedditIcon
}, {
  name: 'skype',
  attributes: {
    service: 'skype'
  },
  title: 'Skype',
  icon: SkypeIcon
}, {
  name: 'snapchat',
  attributes: {
    service: 'snapchat'
  },
  title: 'Snapchat',
  icon: SnapchatIcon
}, {
  name: 'soundcloud',
  attributes: {
    service: 'soundcloud'
  },
  title: 'SoundCloud',
  icon: SoundCloudIcon
}, {
  name: 'spotify',
  attributes: {
    service: 'spotify'
  },
  title: 'Spotify',
  icon: SpotifyIcon
}, {
  name: 'telegram',
  attributes: {
    service: 'telegram'
  },
  title: 'Telegram',
  icon: TelegramIcon
}, {
  name: 'tiktok',
  attributes: {
    service: 'tiktok'
  },
  title: 'TikTok',
  icon: TiktokIcon
}, {
  name: 'tumblr',
  attributes: {
    service: 'tumblr'
  },
  title: 'Tumblr',
  icon: TumblrIcon
}, {
  name: 'twitch',
  attributes: {
    service: 'twitch'
  },
  title: 'Twitch',
  icon: TwitchIcon
}, {
  name: 'twitter',
  attributes: {
    service: 'twitter'
  },
  title: 'Twitter',
  icon: TwitterIcon
}, {
  name: 'vimeo',
  attributes: {
    service: 'vimeo'
  },
  title: 'Vimeo',
  icon: VimeoIcon
}, {
  name: 'vk',
  attributes: {
    service: 'vk'
  },
  title: 'VK',
  icon: VkIcon
}, {
  name: 'yelp',
  attributes: {
    service: 'yelp'
  },
  title: 'Yelp',
  icon: YelpIcon
}, {
  name: 'youtube',
  attributes: {
    service: 'youtube'
  },
  title: 'YouTube',
  icon: YouTubeIcon
}];
/**
 * Add `isActive` function to all `social link` variations, if not defined.
 * `isActive` function is used to find a variation match from a created
 *  Block by providing its attributes.
 */

social_link_variations_variations.forEach(variation => {
  if (variation.isActive) return;

  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service;
});
/* harmony default export */ var social_link_variations = (social_link_variations_variations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Retrieves the social service's icon component.
 *
 * @param {string} name key for a social service (lowercase slug)
 *
 * @return {WPComponent} Icon component for social service.
 */

const getIconBySite = name => {
  const variation = (0,external_lodash_namespaceObject.find)(social_link_variations, {
    name
  });
  return variation ? variation.icon : ChainIcon;
};
/**
 * Retrieves the display name for the social service.
 *
 * @param {string} name key for a social service (lowercase slug)
 *
 * @return {string} Display name for social service
 */

const getNameBySite = name => {
  const variation = (0,external_lodash_namespaceObject.find)(social_link_variations, {
    name
  });
  return variation ? variation.title : (0,external_wp_i18n_namespaceObject.__)('Social Icon');
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



const SocialLinkURLPopover = _ref => {
  let {
    url,
    setAttributes,
    setPopover,
    anchorRef
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.URLPopover, {
    anchorRef: anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current,
    onClose: () => setPopover(false)
  }, (0,external_wp_element_namespaceObject.createElement)("form", {
    className: "block-editor-url-popover__link-editor",
    onSubmit: event => {
      event.preventDefault();
      setPopover(false);
    }
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "block-editor-url-input"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.URLInput, {
    value: url,
    onChange: nextURL => setAttributes({
      url: nextURL
    }),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter address'),
    disableSuggestions: true
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    icon: keyboard_return,
    label: (0,external_wp_i18n_namespaceObject.__)('Apply'),
    type: "submit"
  })));
};

const SocialLinkEdit = _ref2 => {
  let {
    attributes,
    context,
    isSelected,
    setAttributes
  } = _ref2;
  const {
    url,
    service,
    label
  } = attributes;
  const {
    showLabels,
    iconColorValue,
    iconBackgroundColorValue
  } = context;
  const [showURLPopover, setPopover] = (0,external_wp_element_namespaceObject.useState)(false);
  const classes = classnames_default()('wp-social-link', 'wp-social-link-' + service, {
    'wp-social-link__is-incomplete': !url
  });
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const IconComponent = getIconBySite(service);
  const socialLinkName = getNameBySite(service);
  const socialLinkLabel = label !== null && label !== void 0 ? label : socialLinkName;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classes,
    style: {
      color: iconColorValue,
      backgroundColor: iconBackgroundColorValue
    }
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: name of the social service. */
    (0,external_wp_i18n_namespaceObject.__)('%s label'), socialLinkName),
    initialOpen: false
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelRow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Link label'),
    help: (0,external_wp_i18n_namespaceObject.__)('Briefly describe the link to help screen reader users.'),
    value: label,
    onChange: value => setAttributes({
      label: value
    })
  })))), (0,external_wp_element_namespaceObject.createElement)("li", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    className: "wp-block-social-link-anchor",
    ref: ref,
    onClick: () => setPopover(true)
  }, (0,external_wp_element_namespaceObject.createElement)(IconComponent, null), (0,external_wp_element_namespaceObject.createElement)("span", {
    className: classnames_default()('wp-block-social-link-label', {
      'screen-reader-text': !showLabels
    })
  }, socialLinkLabel), isSelected && showURLPopover && (0,external_wp_element_namespaceObject.createElement)(SocialLinkURLPopover, {
    url: url,
    setAttributes: setAttributes,
    setPopover: setPopover,
    anchorRef: ref
  }))));
};

/* harmony default export */ var social_link_edit = (SocialLinkEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const social_link_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/social-link",
  title: "Social Icon",
  category: "widgets",
  parent: ["core/social-links"],
  description: "Display an icon linking to a social media profile or site.",
  textdomain: "default",
  attributes: {
    url: {
      type: "string"
    },
    service: {
      type: "string"
    },
    label: {
      type: "string"
    }
  },
  usesContext: ["openInNewTab", "showLabels", "iconColorValue", "iconBackgroundColorValue"],
  supports: {
    reusable: false,
    html: false
  },
  editorStyle: "wp-block-social-link-editor"
};

const {
  name: social_link_name
} = social_link_metadata;

const social_link_settings = {
  icon: library_share,
  edit: social_link_edit,
  variations: social_link_variations
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * The specific handling by `className` below is needed because `itemsJustification`
 * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't
 * declared in block.json.
 *
 * @param {Object} attributes Block's attributes.
 */

const social_links_deprecated_migrateWithLayout = attributes => {
  var _className$match, _className$match$;

  if (!!attributes.layout) {
    return attributes;
  }

  const {
    className
  } = attributes; // Matches classes with `items-justified-` prefix.

  const prefix = `items-justified-`;
  const justifiedItemsRegex = new RegExp(`\\b${prefix}[^ ]*[ ]?\\b`, 'g');
  const newAttributes = { ...attributes,
    className: className === null || className === void 0 ? void 0 : className.replace(justifiedItemsRegex, '').trim()
  };
  /**
   * Add `layout` prop only if `justifyContent` is defined, for backwards
   * compatibility. In other cases the block's default layout will be used.
   * Also noting that due to the missing attribute, it's possible for a block
   * to have more than one of `justified` classes.
   */

  const justifyContent = className === null || className === void 0 ? void 0 : (_className$match = className.match(justifiedItemsRegex)) === null || _className$match === void 0 ? void 0 : (_className$match$ = _className$match[0]) === null || _className$match$ === void 0 ? void 0 : _className$match$.trim();

  if (justifyContent) {
    Object.assign(newAttributes, {
      layout: {
        type: 'flex',
        justifyContent: justifyContent.slice(prefix.length)
      }
    });
  }

  return newAttributes;
}; // Social Links block deprecations.


const social_links_deprecated_deprecated = [// V1. Remove CSS variable use for colors.
{
  attributes: {
    iconColor: {
      type: 'string'
    },
    customIconColor: {
      type: 'string'
    },
    iconColorValue: {
      type: 'string'
    },
    iconBackgroundColor: {
      type: 'string'
    },
    customIconBackgroundColor: {
      type: 'string'
    },
    iconBackgroundColorValue: {
      type: 'string'
    },
    openInNewTab: {
      type: 'boolean',
      default: false
    },
    size: {
      type: 'string'
    }
  },
  providesContext: {
    openInNewTab: 'openInNewTab'
  },
  supports: {
    align: ['left', 'center', 'right'],
    anchor: true
  },
  migrate: social_links_deprecated_migrateWithLayout,
  save: props => {
    const {
      attributes: {
        iconBackgroundColorValue,
        iconColorValue,
        itemsJustification,
        size
      }
    } = props;
    const className = classnames_default()(size, {
      'has-icon-color': iconColorValue,
      'has-icon-background-color': iconBackgroundColorValue,
      [`items-justified-${itemsJustification}`]: itemsJustification
    });
    const style = {
      '--wp--social-links--icon-color': iconColorValue,
      '--wp--social-links--icon-background-color': iconBackgroundColorValue
    };
    return (0,external_wp_element_namespaceObject.createElement)("ul", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className,
      style
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
  }
}];
/* harmony default export */ var social_links_deprecated = (social_links_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js


/**
 * WordPress dependencies
 */

const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
}));
/* harmony default export */ var library_check = (check);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







const social_links_edit_ALLOWED_BLOCKS = ['core/social-link'];
const sizeOptions = [{
  name: (0,external_wp_i18n_namespaceObject.__)('Small'),
  value: 'has-small-icon-size'
}, {
  name: (0,external_wp_i18n_namespaceObject.__)('Normal'),
  value: 'has-normal-icon-size'
}, {
  name: (0,external_wp_i18n_namespaceObject.__)('Large'),
  value: 'has-large-icon-size'
}, {
  name: (0,external_wp_i18n_namespaceObject.__)('Huge'),
  value: 'has-huge-icon-size'
}];

const social_links_edit_getDefaultBlockLayout = blockTypeOrName => {
  const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout');
  return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default;
};

function SocialLinksEdit(props) {
  var _attributes$className;

  const {
    name,
    attributes,
    iconBackgroundColor,
    iconColor,
    isSelected,
    setAttributes,
    setIconBackgroundColor,
    setIconColor
  } = props;
  const {
    iconBackgroundColorValue,
    customIconBackgroundColor,
    iconColorValue,
    openInNewTab,
    showLabels,
    size,
    layout
  } = attributes;
  const usedLayout = layout || social_links_edit_getDefaultBlockLayout(name);
  const logosOnly = (_attributes$className = attributes.className) === null || _attributes$className === void 0 ? void 0 : _attributes$className.includes('is-style-logos-only'); // Remove icon background color when logos only style is selected or
  // restore it when any other style is selected.

  const backgroundBackup = (0,external_wp_element_namespaceObject.useRef)({});
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (logosOnly) {
      backgroundBackup.current = {
        iconBackgroundColor,
        iconBackgroundColorValue,
        customIconBackgroundColor
      };
      setAttributes({
        iconBackgroundColor: undefined,
        customIconBackgroundColor: undefined,
        iconBackgroundColorValue: undefined
      });
    } else {
      setAttributes({ ...backgroundBackup.current
      });
    }
  }, [logosOnly]);
  const SocialPlaceholder = (0,external_wp_element_namespaceObject.createElement)("li", {
    className: "wp-block-social-links__social-placeholder"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-social-links__social-placeholder-icons"
  }, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-social-link wp-social-link-twitter"
  }), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-social-link wp-social-link-facebook"
  }), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-social-link wp-social-link-instagram"
  })));
  const SelectedSocialPlaceholder = (0,external_wp_element_namespaceObject.createElement)("li", {
    className: "wp-block-social-links__social-prompt"
  }, (0,external_wp_i18n_namespaceObject.__)('Click plus to add')); // Fallback color values are used maintain selections in case switching
  // themes and named colors in palette do not match.

  const className = classnames_default()(size, {
    'has-icon-color': iconColor.color || iconColorValue,
    'has-icon-background-color': iconBackgroundColor.color || iconBackgroundColorValue
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className
  });
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    allowedBlocks: social_links_edit_ALLOWED_BLOCKS,
    placeholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,
    templateLock: false,
    __experimentalAppenderTagName: 'li',
    __experimentalLayout: usedLayout
  });
  const POPOVER_PROPS = {
    position: 'bottom right'
  };
  const colorSettings = [{
    // Use custom attribute as fallback to prevent loss of named color selection when
    // switching themes to a new theme that does not have a matching named color.
    value: iconColor.color || iconColorValue,
    onChange: colorValue => {
      setIconColor(colorValue);
      setAttributes({
        iconColorValue: colorValue
      });
    },
    label: (0,external_wp_i18n_namespaceObject.__)('Icon color')
  }];

  if (!logosOnly) {
    colorSettings.push({
      // Use custom attribute as fallback to prevent loss of named color selection when
      // switching themes to a new theme that does not have a matching named color.
      value: iconBackgroundColor.color || iconBackgroundColorValue,
      onChange: colorValue => {
        setIconBackgroundColor(colorValue);
        setAttributes({
          iconBackgroundColorValue: colorValue
        });
      },
      label: (0,external_wp_i18n_namespaceObject.__)('Icon background')
    });
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    label: (0,external_wp_i18n_namespaceObject.__)('Size'),
    text: (0,external_wp_i18n_namespaceObject.__)('Size'),
    icon: null,
    popoverProps: POPOVER_PROPS
  }, _ref => {
    let {
      onClose
    } = _ref;
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, sizeOptions.map(entry => {
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
        icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && library_check,
        isSelected: size === entry.value,
        key: entry.value,
        onClick: () => {
          setAttributes({
            size: entry.value
          });
        },
        onClose: onClose,
        role: "menuitemradio"
      }, entry.name);
    }));
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
    checked: openInNewTab,
    onChange: () => setAttributes({
      openInNewTab: !openInNewTab
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show labels'),
    checked: showLabels,
    onChange: () => setAttributes({
      showLabels: !showLabels
    })
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PanelColorSettings, {
    __experimentalHasMultipleOrigins: true,
    __experimentalIsRenderedInSidebar: true,
    title: (0,external_wp_i18n_namespaceObject.__)('Color'),
    colorSettings: colorSettings
  }), !logosOnly && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
    textColor: iconColorValue,
    backgroundColor: iconBackgroundColorValue,
    isLargeText: false
  })), (0,external_wp_element_namespaceObject.createElement)("ul", innerBlocksProps));
}
const iconColorAttributes = {
  iconColor: 'icon-color',
  iconBackgroundColor: 'icon-background-color'
};
/* harmony default export */ var social_links_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)(iconColorAttributes)(SocialLinksEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function social_links_save_save(props) {
  const {
    attributes: {
      iconBackgroundColorValue,
      iconColorValue,
      showLabels,
      size
    }
  } = props;
  const className = classnames_default()(size, {
    'has-visible-labels': showLabels,
    'has-icon-color': iconColorValue,
    'has-icon-background-color': iconBackgroundColorValue
  });
  const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  });
  const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
  return (0,external_wp_element_namespaceObject.createElement)("ul", innerBlocksProps);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const social_links_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/social-links",
  title: "Social Icons",
  category: "widgets",
  description: "Display icons linking to your social media profiles or sites.",
  keywords: ["links"],
  textdomain: "default",
  attributes: {
    iconColor: {
      type: "string"
    },
    customIconColor: {
      type: "string"
    },
    iconColorValue: {
      type: "string"
    },
    iconBackgroundColor: {
      type: "string"
    },
    customIconBackgroundColor: {
      type: "string"
    },
    iconBackgroundColorValue: {
      type: "string"
    },
    openInNewTab: {
      type: "boolean",
      "default": false
    },
    showLabels: {
      type: "boolean",
      "default": false
    },
    size: {
      type: "string"
    }
  },
  providesContext: {
    openInNewTab: "openInNewTab",
    showLabels: "showLabels",
    iconColorValue: "iconColorValue",
    iconBackgroundColorValue: "iconBackgroundColorValue"
  },
  supports: {
    align: ["left", "center", "right"],
    anchor: true,
    __experimentalExposeControlsToChildren: true,
    __experimentalLayout: {
      allowSwitching: false,
      allowInheriting: false,
      allowVerticalAlignment: false,
      "default": {
        type: "flex"
      }
    },
    spacing: {
      blockGap: ["horizontal", "vertical"],
      margin: ["top", "bottom"],
      units: ["px", "em", "rem", "vh", "vw"],
      __experimentalDefaultControls: {
        blockGap: true
      }
    }
  },
  styles: [{
    name: "default",
    label: "Default",
    isDefault: true
  }, {
    name: "logos-only",
    label: "Logos Only"
  }, {
    name: "pill-shape",
    label: "Pill Shape"
  }],
  editorStyle: "wp-block-social-links-editor",
  style: "wp-block-social-links"
};

const {
  name: social_links_name
} = social_links_metadata;

const social_links_settings = {
  example: {
    innerBlocks: [{
      name: 'core/social-link',
      attributes: {
        service: 'wordpress',
        url: 'https://wordpress.org'
      }
    }, {
      name: 'core/social-link',
      attributes: {
        service: 'facebook',
        url: 'https://www.facebook.com/WordPress/'
      }
    }, {
      name: 'core/social-link',
      attributes: {
        service: 'twitter',
        url: 'https://twitter.com/WordPress'
      }
    }]
  },
  icon: library_share,
  edit: social_links_edit,
  save: social_links_save_save,
  deprecated: social_links_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js


/**
 * WordPress dependencies
 */

const resizeCornerNE = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M12.5 4.2v1.6h4.7L5.8 17.2V12H4.2v7.8H12v-1.6H6.8L18.2 6.8v4.7h1.6V4.2z"
}));
/* harmony default export */ var resize_corner_n_e = (resizeCornerNE);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/deprecated.js


/**
 * WordPress dependencies
 */

const spacer_deprecated_deprecated = [{
  attributes: {
    height: {
      type: 'number',
      default: 100
    },
    width: {
      type: 'number'
    }
  },

  migrate(attributes) {
    const {
      height,
      width
    } = attributes;
    return { ...attributes,
      width: width !== undefined ? `${width}px` : undefined,
      height: height !== undefined ? `${height}px` : undefined
    };
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      style: {
        height: attributes.height,
        width: attributes.width
      },
      'aria-hidden': true
    }));
  }

}];
/* harmony default export */ var spacer_deprecated = (spacer_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/controls.js


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



function DimensionInput(_ref) {
  var _ref2;

  let {
    label,
    onChange,
    isResizing,
    value = ''
  } = _ref;
  const inputId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl, 'block-spacer-height-input'); // In most contexts the spacer size cannot meaningfully be set to a
  // percentage, since this is relative to the parent container. This
  // unit is disabled from the UI.

  const availableUnitSettings = (_ref2 = (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || undefined) === null || _ref2 === void 0 ? void 0 : _ref2.filter(availableUnit => availableUnit !== '%');
  const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
    availableUnits: availableUnitSettings || ['px', 'em', 'rem', 'vw', 'vh'],
    defaultValues: {
      px: 100,
      em: 10,
      rem: 10,
      vw: 10,
      vh: 25
    }
  });

  const handleOnChange = unprocessedValue => {
    onChange(unprocessedValue);
  }; // Force the unit to update to `px` when the Spacer is being resized.


  const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
  const computedValue = [parsedQuantity, isResizing ? 'px' : parsedUnit].join('');
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
    label: label,
    id: inputId
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    id: inputId,
    isResetValueOnUnitChange: true,
    min: MIN_SPACER_SIZE,
    onChange: handleOnChange,
    style: {
      maxWidth: 80
    },
    value: computedValue,
    units: units
  }));
}

function SpacerControls(_ref3) {
  let {
    setAttributes,
    orientation,
    height,
    width,
    isResizing
  } = _ref3;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Spacer settings')
  }, orientation === 'horizontal' && (0,external_wp_element_namespaceObject.createElement)(DimensionInput, {
    label: (0,external_wp_i18n_namespaceObject.__)('Width'),
    value: width,
    onChange: nextWidth => setAttributes({
      width: nextWidth
    }),
    isResizing: isResizing
  }), orientation !== 'horizontal' && (0,external_wp_element_namespaceObject.createElement)(DimensionInput, {
    label: (0,external_wp_i18n_namespaceObject.__)('Height'),
    value: height,
    onChange: nextHeight => setAttributes({
      height: nextHeight
    }),
    isResizing: isResizing
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const MIN_SPACER_SIZE = 0;

const ResizableSpacer = _ref => {
  let {
    orientation,
    onResizeStart,
    onResize,
    onResizeStop,
    isSelected,
    isResizing,
    setIsResizing,
    ...props
  } = _ref;

  const getCurrentSize = elt => {
    return orientation === 'horizontal' ? elt.clientWidth : elt.clientHeight;
  };

  const getNextVal = elt => {
    return `${getCurrentSize(elt)}px`;
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({
    className: classnames_default()('block-library-spacer__resize-container', {
      'resize-horizontal': orientation === 'horizontal',
      'is-resizing': isResizing,
      'is-selected': isSelected
    }),
    onResizeStart: (_event, _direction, elt) => {
      const nextVal = getNextVal(elt);
      onResizeStart(nextVal);
      onResize(nextVal);
    },
    onResize: (_event, _direction, elt) => {
      onResize(getNextVal(elt));

      if (!isResizing) {
        setIsResizing(true);
      }
    },
    onResizeStop: (_event, _direction, elt) => {
      const nextVal = getCurrentSize(elt);
      onResizeStop(`${nextVal}px`);
      setIsResizing(false);
    },
    __experimentalShowTooltip: true,
    __experimentalTooltipProps: {
      axis: orientation === 'horizontal' ? 'x' : 'y',
      position: 'corner',
      isVisible: isResizing
    },
    showHandle: isSelected
  }, props));
};

const SpacerEdit = _ref2 => {
  let {
    attributes,
    isSelected,
    setAttributes,
    toggleSelection,
    context
  } = _ref2;
  const {
    orientation
  } = context;
  const {
    height,
    width
  } = attributes;
  const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
  const [temporaryHeight, setTemporaryHeight] = (0,external_wp_element_namespaceObject.useState)(null);
  const [temporaryWidth, setTemporaryWidth] = (0,external_wp_element_namespaceObject.useState)(null);

  const onResizeStart = () => toggleSelection(false);

  const onResizeStop = () => toggleSelection(true);

  const handleOnVerticalResizeStop = newHeight => {
    onResizeStop();
    setAttributes({
      height: newHeight
    });
    setTemporaryHeight(null);
  };

  const handleOnHorizontalResizeStop = newWidth => {
    onResizeStop();
    setAttributes({
      width: newWidth
    });
    setTemporaryWidth(null);
  };

  const style = {
    height: orientation === 'horizontal' ? 24 : temporaryHeight || height || undefined,
    width: orientation === 'horizontal' ? temporaryWidth || width || undefined : undefined
  };

  const resizableBoxWithOrientation = blockOrientation => {
    if (blockOrientation === 'horizontal') {
      return (0,external_wp_element_namespaceObject.createElement)(ResizableSpacer, {
        minWidth: MIN_SPACER_SIZE,
        enable: {
          top: false,
          right: true,
          bottom: false,
          left: false,
          topRight: false,
          bottomRight: false,
          bottomLeft: false,
          topLeft: false
        },
        orientation: blockOrientation,
        onResizeStart: onResizeStart,
        onResize: setTemporaryWidth,
        onResizeStop: handleOnHorizontalResizeStop,
        isSelected: isSelected,
        isResizing: isResizing,
        setIsResizing: setIsResizing
      });
    }

    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(ResizableSpacer, {
      minHeight: MIN_SPACER_SIZE,
      enable: {
        top: false,
        right: false,
        bottom: true,
        left: false,
        topRight: false,
        bottomRight: false,
        bottomLeft: false,
        topLeft: false
      },
      orientation: blockOrientation,
      onResizeStart: onResizeStart,
      onResize: setTemporaryHeight,
      onResizeStop: handleOnVerticalResizeStop,
      isSelected: isSelected,
      isResizing: isResizing,
      setIsResizing: setIsResizing
    }));
  };

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (orientation === 'horizontal' && !width) {
      setAttributes({
        height: '0px',
        width: '72px'
      });
    }
  }, []);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    style
  }), resizableBoxWithOrientation(orientation)), (0,external_wp_element_namespaceObject.createElement)(SpacerControls, {
    setAttributes: setAttributes,
    height: temporaryHeight || height,
    width: temporaryWidth || width,
    orientation: orientation,
    isResizing: isResizing
  }));
};

/* harmony default export */ var spacer_edit = (SpacerEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/save.js


/**
 * WordPress dependencies
 */

function spacer_save_save(_ref) {
  let {
    attributes: {
      height,
      width
    }
  } = _ref;
  return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    style: {
      height,
      width
    },
    'aria-hidden': true
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



const spacer_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/spacer",
  title: "Spacer",
  category: "design",
  description: "Add white space between blocks and customize its height.",
  textdomain: "default",
  attributes: {
    height: {
      type: "string",
      "default": "100px"
    },
    width: {
      type: "string"
    }
  },
  usesContext: ["orientation"],
  supports: {
    anchor: true
  },
  editorStyle: "wp-block-spacer-editor",
  style: "wp-block-spacer"
};

const {
  name: spacer_name
} = spacer_metadata;

const spacer_settings = {
  icon: resize_corner_n_e,
  edit: spacer_edit,
  save: spacer_save_save,
  deprecated: spacer_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-table.js


/**
 * WordPress dependencies
 */

const blockTable = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z"
}));
/* harmony default export */ var block_table = (blockTable);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


const table_deprecated_supports = {
  align: true
}; // As the previous arbitrary colors won't match theme color palettes, the hex
// value will be mapped to the style.color.background attribute as if it was
// a custom color selection.

const oldColors = {
  'subtle-light-gray': '#f3f4f5',
  'subtle-pale-green': '#e9fbe5',
  'subtle-pale-blue': '#e7f5fe',
  'subtle-pale-pink': '#fcf0ef'
};
const table_deprecated_deprecated = [// Deprecation migrating table block to use colors block support feature.
{
  attributes: {
    hasFixedLayout: {
      type: 'boolean',
      default: false
    },
    backgroundColor: {
      type: 'string'
    },
    caption: {
      type: 'string',
      source: 'html',
      selector: 'figcaption',
      default: ''
    },
    head: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'thead tr',
      query: {
        cells: {
          type: 'array',
          default: [],
          source: 'query',
          selector: 'td,th',
          query: {
            content: {
              type: 'string',
              source: 'html'
            },
            tag: {
              type: 'string',
              default: 'td',
              source: 'tag'
            },
            scope: {
              type: 'string',
              source: 'attribute',
              attribute: 'scope'
            },
            align: {
              type: 'string',
              source: 'attribute',
              attribute: 'data-align'
            }
          }
        }
      }
    },
    body: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'tbody tr',
      query: {
        cells: {
          type: 'array',
          default: [],
          source: 'query',
          selector: 'td,th',
          query: {
            content: {
              type: 'string',
              source: 'html'
            },
            tag: {
              type: 'string',
              default: 'td',
              source: 'tag'
            },
            scope: {
              type: 'string',
              source: 'attribute',
              attribute: 'scope'
            },
            align: {
              type: 'string',
              source: 'attribute',
              attribute: 'data-align'
            }
          }
        }
      }
    },
    foot: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'tfoot tr',
      query: {
        cells: {
          type: 'array',
          default: [],
          source: 'query',
          selector: 'td,th',
          query: {
            content: {
              type: 'string',
              source: 'html'
            },
            tag: {
              type: 'string',
              default: 'td',
              source: 'tag'
            },
            scope: {
              type: 'string',
              source: 'attribute',
              attribute: 'scope'
            },
            align: {
              type: 'string',
              source: 'attribute',
              attribute: 'data-align'
            }
          }
        }
      }
    }
  },
  supports: {
    anchor: true,
    align: true,
    __experimentalSelector: '.wp-block-table > table'
  },
  save: _ref => {
    let {
      attributes
    } = _ref;
    const {
      hasFixedLayout,
      head,
      body,
      foot,
      backgroundColor,
      caption
    } = attributes;
    const isEmpty = !head.length && !body.length && !foot.length;

    if (isEmpty) {
      return null;
    }

    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const classes = classnames_default()(backgroundClass, {
      'has-fixed-layout': hasFixedLayout,
      'has-background': !!backgroundClass
    });
    const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);

    const Section = _ref2 => {
      let {
        type,
        rows
      } = _ref2;

      if (!rows.length) {
        return null;
      }

      const Tag = `t${type}`;
      return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref3, rowIndex) => {
        let {
          cells
        } = _ref3;
        return (0,external_wp_element_namespaceObject.createElement)("tr", {
          key: rowIndex
        }, cells.map((_ref4, cellIndex) => {
          let {
            content,
            tag,
            scope,
            align
          } = _ref4;
          const cellClasses = classnames_default()({
            [`has-text-align-${align}`]: align
          });
          return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
            className: cellClasses ? cellClasses : undefined,
            "data-align": align,
            tagName: tag,
            value: content,
            key: cellIndex,
            scope: tag === 'th' ? scope : undefined
          });
        }));
      }));
    };

    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("table", {
      className: classes === '' ? undefined : classes
    }, (0,external_wp_element_namespaceObject.createElement)(Section, {
      type: "head",
      rows: head
    }), (0,external_wp_element_namespaceObject.createElement)(Section, {
      type: "body",
      rows: body
    }), (0,external_wp_element_namespaceObject.createElement)(Section, {
      type: "foot",
      rows: foot
    })), hasCaption && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "figcaption",
      value: caption
    }));
  },
  isEligible: attributes => {
    return attributes.backgroundColor && attributes.backgroundColor in oldColors && !attributes.style;
  },
  // This version is the first to introduce the style attribute to the
  // table block. As a result, we'll explicitly override that.
  migrate: attributes => {
    return { ...attributes,
      backgroundColor: undefined,
      style: {
        color: {
          background: oldColors[attributes.backgroundColor]
        }
      }
    };
  }
}, {
  attributes: {
    hasFixedLayout: {
      type: 'boolean',
      default: false
    },
    backgroundColor: {
      type: 'string'
    },
    head: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'thead tr',
      query: {
        cells: {
          type: 'array',
          default: [],
          source: 'query',
          selector: 'td,th',
          query: {
            content: {
              type: 'string',
              source: 'html'
            },
            tag: {
              type: 'string',
              default: 'td',
              source: 'tag'
            },
            scope: {
              type: 'string',
              source: 'attribute',
              attribute: 'scope'
            }
          }
        }
      }
    },
    body: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'tbody tr',
      query: {
        cells: {
          type: 'array',
          default: [],
          source: 'query',
          selector: 'td,th',
          query: {
            content: {
              type: 'string',
              source: 'html'
            },
            tag: {
              type: 'string',
              default: 'td',
              source: 'tag'
            },
            scope: {
              type: 'string',
              source: 'attribute',
              attribute: 'scope'
            }
          }
        }
      }
    },
    foot: {
      type: 'array',
      default: [],
      source: 'query',
      selector: 'tfoot tr',
      query: {
        cells: {
          type: 'array',
          default: [],
          source: 'query',
          selector: 'td,th',
          query: {
            content: {
              type: 'string',
              source: 'html'
            },
            tag: {
              type: 'string',
              default: 'td',
              source: 'tag'
            },
            scope: {
              type: 'string',
              source: 'attribute',
              attribute: 'scope'
            }
          }
        }
      }
    }
  },
  supports: table_deprecated_supports,

  save(_ref5) {
    let {
      attributes
    } = _ref5;
    const {
      hasFixedLayout,
      head,
      body,
      foot,
      backgroundColor
    } = attributes;
    const isEmpty = !head.length && !body.length && !foot.length;

    if (isEmpty) {
      return null;
    }

    const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
    const classes = classnames_default()(backgroundClass, {
      'has-fixed-layout': hasFixedLayout,
      'has-background': !!backgroundClass
    });

    const Section = _ref6 => {
      let {
        type,
        rows
      } = _ref6;

      if (!rows.length) {
        return null;
      }

      const Tag = `t${type}`;
      return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref7, rowIndex) => {
        let {
          cells
        } = _ref7;
        return (0,external_wp_element_namespaceObject.createElement)("tr", {
          key: rowIndex
        }, cells.map((_ref8, cellIndex) => {
          let {
            content,
            tag,
            scope
          } = _ref8;
          return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
            tagName: tag,
            value: content,
            key: cellIndex,
            scope: tag === 'th' ? scope : undefined
          });
        }));
      }));
    };

    return (0,external_wp_element_namespaceObject.createElement)("table", {
      className: classes
    }, (0,external_wp_element_namespaceObject.createElement)(Section, {
      type: "head",
      rows: head
    }), (0,external_wp_element_namespaceObject.createElement)(Section, {
      type: "body",
      rows: body
    }), (0,external_wp_element_namespaceObject.createElement)(Section, {
      type: "foot",
      rows: foot
    }));
  }

}];
/* harmony default export */ var table_deprecated = (table_deprecated_deprecated);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js


/**
 * WordPress dependencies
 */

const alignLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z"
}));
/* harmony default export */ var align_left = (alignLeft);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js


/**
 * WordPress dependencies
 */

const alignCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z"
}));
/* harmony default export */ var align_center = (alignCenter);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js


/**
 * WordPress dependencies
 */

const alignRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z"
}));
/* harmony default export */ var align_right = (alignRight);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-before.js


/**
 * WordPress dependencies
 */

const tableRowBefore = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84zM6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z"
}));
/* harmony default export */ var table_row_before = (tableRowBefore);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-after.js


/**
 * WordPress dependencies
 */

const tableRowAfter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z"
}));
/* harmony default export */ var table_row_after = (tableRowAfter);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js


/**
 * WordPress dependencies
 */

const tableRowDelete = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z"
}));
/* harmony default export */ var table_row_delete = (tableRowDelete);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-before.js


/**
 * WordPress dependencies
 */

const tableColumnBefore = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z"
}));
/* harmony default export */ var table_column_before = (tableColumnBefore);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-after.js


/**
 * WordPress dependencies
 */

const tableColumnAfter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z"
}));
/* harmony default export */ var table_column_after = (tableColumnAfter);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js


/**
 * WordPress dependencies
 */

const tableColumnDelete = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z"
}));
/* harmony default export */ var table_column_delete = (tableColumnDelete);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table.js


/**
 * WordPress dependencies
 */

const table = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z"
}));
/* harmony default export */ var library_table = (table);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/state.js
/**
 * External dependencies
 */

const INHERITED_COLUMN_ATTRIBUTES = ['align'];
/**
 * Creates a table state.
 *
 * @param {Object} options
 * @param {number} options.rowCount    Row count for the table to create.
 * @param {number} options.columnCount Column count for the table to create.
 *
 * @return {Object} New table state.
 */

function createTable(_ref) {
  let {
    rowCount,
    columnCount
  } = _ref;
  return {
    body: (0,external_lodash_namespaceObject.times)(rowCount, () => ({
      cells: (0,external_lodash_namespaceObject.times)(columnCount, () => ({
        content: '',
        tag: 'td'
      }))
    }))
  };
}
/**
 * Returns the first row in the table.
 *
 * @param {Object} state Current table state.
 *
 * @return {Object} The first table row.
 */

function getFirstRow(state) {
  if (!isEmptyTableSection(state.head)) {
    return state.head[0];
  }

  if (!isEmptyTableSection(state.body)) {
    return state.body[0];
  }

  if (!isEmptyTableSection(state.foot)) {
    return state.foot[0];
  }
}
/**
 * Gets an attribute for a cell.
 *
 * @param {Object} state         Current table state.
 * @param {Object} cellLocation  The location of the cell
 * @param {string} attributeName The name of the attribute to get the value of.
 *
 * @return {*} The attribute value.
 */

function getCellAttribute(state, cellLocation, attributeName) {
  const {
    sectionName,
    rowIndex,
    columnIndex
  } = cellLocation;
  return (0,external_lodash_namespaceObject.get)(state, [sectionName, rowIndex, 'cells', columnIndex, attributeName]);
}
/**
 * Returns updated cell attributes after applying the `updateCell` function to the selection.
 *
 * @param {Object}   state      The block attributes.
 * @param {Object}   selection  The selection of cells to update.
 * @param {Function} updateCell A function to update the selected cell attributes.
 *
 * @return {Object} New table state including the updated cells.
 */

function updateSelectedCell(state, selection, updateCell) {
  if (!selection) {
    return state;
  }

  const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']);
  const {
    sectionName: selectionSectionName,
    rowIndex: selectionRowIndex
  } = selection;
  return (0,external_lodash_namespaceObject.mapValues)(tableSections, (section, sectionName) => {
    if (selectionSectionName && selectionSectionName !== sectionName) {
      return section;
    }

    return section.map((row, rowIndex) => {
      if (selectionRowIndex && selectionRowIndex !== rowIndex) {
        return row;
      }

      return {
        cells: row.cells.map((cellAttributes, columnIndex) => {
          const cellLocation = {
            sectionName,
            columnIndex,
            rowIndex
          };

          if (!isCellSelected(cellLocation, selection)) {
            return cellAttributes;
          }

          return updateCell(cellAttributes);
        })
      };
    });
  });
}
/**
 * Returns whether the cell at `cellLocation` is included in the selection `selection`.
 *
 * @param {Object} cellLocation An object containing cell location properties.
 * @param {Object} selection    An object containing selection properties.
 *
 * @return {boolean} True if the cell is selected, false otherwise.
 */

function isCellSelected(cellLocation, selection) {
  if (!cellLocation || !selection) {
    return false;
  }

  switch (selection.type) {
    case 'column':
      return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex;

    case 'cell':
      return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex;
  }
}
/**
 * Inserts a row in the table state.
 *
 * @param {Object} state               Current table state.
 * @param {Object} options
 * @param {string} options.sectionName Section in which to insert the row.
 * @param {number} options.rowIndex    Row index at which to insert the row.
 * @param {number} options.columnCount Column count for the table to create.
 *
 * @return {Object} New table state.
 */

function insertRow(state, _ref2) {
  let {
    sectionName,
    rowIndex,
    columnCount
  } = _ref2;
  const firstRow = getFirstRow(state);
  const cellCount = columnCount === undefined ? (0,external_lodash_namespaceObject.get)(firstRow, ['cells', 'length']) : columnCount; // Bail early if the function cannot determine how many cells to add.

  if (!cellCount) {
    return state;
  }

  return {
    [sectionName]: [...state[sectionName].slice(0, rowIndex), {
      cells: (0,external_lodash_namespaceObject.times)(cellCount, index => {
        const firstCellInColumn = (0,external_lodash_namespaceObject.get)(firstRow, ['cells', index], {});
        const inheritedAttributes = (0,external_lodash_namespaceObject.pick)(firstCellInColumn, INHERITED_COLUMN_ATTRIBUTES);
        return { ...inheritedAttributes,
          content: '',
          tag: sectionName === 'head' ? 'th' : 'td'
        };
      })
    }, ...state[sectionName].slice(rowIndex)]
  };
}
/**
 * Deletes a row from the table state.
 *
 * @param {Object} state               Current table state.
 * @param {Object} options
 * @param {string} options.sectionName Section in which to delete the row.
 * @param {number} options.rowIndex    Row index to delete.
 *
 * @return {Object} New table state.
 */

function deleteRow(state, _ref3) {
  let {
    sectionName,
    rowIndex
  } = _ref3;
  return {
    [sectionName]: state[sectionName].filter((row, index) => index !== rowIndex)
  };
}
/**
 * Inserts a column in the table state.
 *
 * @param {Object} state               Current table state.
 * @param {Object} options
 * @param {number} options.columnIndex Column index at which to insert the column.
 *
 * @return {Object} New table state.
 */

function insertColumn(state, _ref4) {
  let {
    columnIndex
  } = _ref4;
  const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']);
  return (0,external_lodash_namespaceObject.mapValues)(tableSections, (section, sectionName) => {
    // Bail early if the table section is empty.
    if (isEmptyTableSection(section)) {
      return section;
    }

    return section.map(row => {
      // Bail early if the row is empty or it's an attempt to insert past
      // the last possible index of the array.
      if (isEmptyRow(row) || row.cells.length < columnIndex) {
        return row;
      }

      return {
        cells: [...row.cells.slice(0, columnIndex), {
          content: '',
          tag: sectionName === 'head' ? 'th' : 'td'
        }, ...row.cells.slice(columnIndex)]
      };
    });
  });
}
/**
 * Deletes a column from the table state.
 *
 * @param {Object} state               Current table state.
 * @param {Object} options
 * @param {number} options.columnIndex Column index to delete.
 *
 * @return {Object} New table state.
 */

function deleteColumn(state, _ref5) {
  let {
    columnIndex
  } = _ref5;
  const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']);
  return (0,external_lodash_namespaceObject.mapValues)(tableSections, section => {
    // Bail early if the table section is empty.
    if (isEmptyTableSection(section)) {
      return section;
    }

    return section.map(row => ({
      cells: row.cells.length >= columnIndex ? row.cells.filter((cell, index) => index !== columnIndex) : row.cells
    })).filter(row => row.cells.length);
  });
}
/**
 * Toggles the existance of a section.
 *
 * @param {Object} state       Current table state.
 * @param {string} sectionName Name of the section to toggle.
 *
 * @return {Object} New table state.
 */

function toggleSection(state, sectionName) {
  // Section exists, replace it with an empty row to remove it.
  if (!isEmptyTableSection(state[sectionName])) {
    return {
      [sectionName]: []
    };
  } // Get the length of the first row of the body to use when creating the header.


  const columnCount = (0,external_lodash_namespaceObject.get)(state, ['body', 0, 'cells', 'length'], 1); // Section doesn't exist, insert an empty row to create the section.

  return insertRow(state, {
    sectionName,
    rowIndex: 0,
    columnCount
  });
}
/**
 * Determines whether a table section is empty.
 *
 * @param {Object} section Table section state.
 *
 * @return {boolean} True if the table section is empty, false otherwise.
 */

function isEmptyTableSection(section) {
  return !section || !section.length || (0,external_lodash_namespaceObject.every)(section, isEmptyRow);
}
/**
 * Determines whether a table row is empty.
 *
 * @param {Object} row Table row state.
 *
 * @return {boolean} True if the table section is empty, false otherwise.
 */

function isEmptyRow(row) {
  return !(row.cells && row.cells.length);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


const ALIGNMENT_CONTROLS = [{
  icon: align_left,
  title: (0,external_wp_i18n_namespaceObject.__)('Align column left'),
  align: 'left'
}, {
  icon: align_center,
  title: (0,external_wp_i18n_namespaceObject.__)('Align column center'),
  align: 'center'
}, {
  icon: align_right,
  title: (0,external_wp_i18n_namespaceObject.__)('Align column right'),
  align: 'right'
}];
const cellAriaLabel = {
  head: (0,external_wp_i18n_namespaceObject.__)('Header cell text'),
  body: (0,external_wp_i18n_namespaceObject.__)('Body cell text'),
  foot: (0,external_wp_i18n_namespaceObject.__)('Footer cell text')
};
const placeholder = {
  head: (0,external_wp_i18n_namespaceObject.__)('Header label'),
  foot: (0,external_wp_i18n_namespaceObject.__)('Footer label')
};

function TSection(_ref) {
  let {
    name,
    ...props
  } = _ref;
  const TagName = `t${name}`;
  return (0,external_wp_element_namespaceObject.createElement)(TagName, props);
}

function TableEdit(_ref2) {
  let {
    attributes,
    setAttributes,
    insertBlocksAfter,
    isSelected
  } = _ref2;
  const {
    hasFixedLayout,
    caption,
    head,
    foot
  } = attributes;
  const [initialRowCount, setInitialRowCount] = (0,external_wp_element_namespaceObject.useState)(2);
  const [initialColumnCount, setInitialColumnCount] = (0,external_wp_element_namespaceObject.useState)(2);
  const [selectedCell, setSelectedCell] = (0,external_wp_element_namespaceObject.useState)();
  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
  const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
  /**
   * Updates the initial column count used for table creation.
   *
   * @param {number} count New initial column count.
   */

  function onChangeInitialColumnCount(count) {
    setInitialColumnCount(count);
  }
  /**
   * Updates the initial row count used for table creation.
   *
   * @param {number} count New initial row count.
   */


  function onChangeInitialRowCount(count) {
    setInitialRowCount(count);
  }
  /**
   * Creates a table based on dimensions in local state.
   *
   * @param {Object} event Form submit event.
   */


  function onCreateTable(event) {
    event.preventDefault();
    setAttributes(createTable({
      rowCount: parseInt(initialRowCount, 10) || 2,
      columnCount: parseInt(initialColumnCount, 10) || 2
    }));
  }
  /**
   * Toggles whether the table has a fixed layout or not.
   */


  function onChangeFixedLayout() {
    setAttributes({
      hasFixedLayout: !hasFixedLayout
    });
  }
  /**
   * Changes the content of the currently selected cell.
   *
   * @param {Array} content A RichText content value.
   */


  function onChange(content) {
    if (!selectedCell) {
      return;
    }

    setAttributes(updateSelectedCell(attributes, selectedCell, cellAttributes => ({ ...cellAttributes,
      content
    })));
  }
  /**
   * Align text within the a column.
   *
   * @param {string} align The new alignment to apply to the column.
   */


  function onChangeColumnAlignment(align) {
    if (!selectedCell) {
      return;
    } // Convert the cell selection to a column selection so that alignment
    // is applied to the entire column.


    const columnSelection = {
      type: 'column',
      columnIndex: selectedCell.columnIndex
    };
    const newAttributes = updateSelectedCell(attributes, columnSelection, cellAttributes => ({ ...cellAttributes,
      align
    }));
    setAttributes(newAttributes);
  }
  /**
   * Get the alignment of the currently selected cell.
   *
   * @return {string} The new alignment to apply to the column.
   */


  function getCellAlignment() {
    if (!selectedCell) {
      return;
    }

    return getCellAttribute(attributes, selectedCell, 'align');
  }
  /**
   * Add or remove a `head` table section.
   */


  function onToggleHeaderSection() {
    setAttributes(toggleSection(attributes, 'head'));
  }
  /**
   * Add or remove a `foot` table section.
   */


  function onToggleFooterSection() {
    setAttributes(toggleSection(attributes, 'foot'));
  }
  /**
   * Inserts a row at the currently selected row index, plus `delta`.
   *
   * @param {number} delta Offset for selected row index at which to insert.
   */


  function onInsertRow(delta) {
    if (!selectedCell) {
      return;
    }

    const {
      sectionName,
      rowIndex
    } = selectedCell;
    const newRowIndex = rowIndex + delta;
    setAttributes(insertRow(attributes, {
      sectionName,
      rowIndex: newRowIndex
    })); // Select the first cell of the new row.

    setSelectedCell({
      sectionName,
      rowIndex: newRowIndex,
      columnIndex: 0,
      type: 'cell'
    });
  }
  /**
   * Inserts a row before the currently selected row.
   */


  function onInsertRowBefore() {
    onInsertRow(0);
  }
  /**
   * Inserts a row after the currently selected row.
   */


  function onInsertRowAfter() {
    onInsertRow(1);
  }
  /**
   * Deletes the currently selected row.
   */


  function onDeleteRow() {
    if (!selectedCell) {
      return;
    }

    const {
      sectionName,
      rowIndex
    } = selectedCell;
    setSelectedCell();
    setAttributes(deleteRow(attributes, {
      sectionName,
      rowIndex
    }));
  }
  /**
   * Inserts a column at the currently selected column index, plus `delta`.
   *
   * @param {number} delta Offset for selected column index at which to insert.
   */


  function onInsertColumn() {
    let delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

    if (!selectedCell) {
      return;
    }

    const {
      columnIndex
    } = selectedCell;
    const newColumnIndex = columnIndex + delta;
    setAttributes(insertColumn(attributes, {
      columnIndex: newColumnIndex
    })); // Select the first cell of the new column.

    setSelectedCell({
      rowIndex: 0,
      columnIndex: newColumnIndex,
      type: 'cell'
    });
  }
  /**
   * Inserts a column before the currently selected column.
   */


  function onInsertColumnBefore() {
    onInsertColumn(0);
  }
  /**
   * Inserts a column after the currently selected column.
   */


  function onInsertColumnAfter() {
    onInsertColumn(1);
  }
  /**
   * Deletes the currently selected column.
   */


  function onDeleteColumn() {
    if (!selectedCell) {
      return;
    }

    const {
      sectionName,
      columnIndex
    } = selectedCell;
    setSelectedCell();
    setAttributes(deleteColumn(attributes, {
      sectionName,
      columnIndex
    }));
  }

  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!isSelected) {
      setSelectedCell();
    }
  }, [isSelected]);
  const sections = ['head', 'body', 'foot'].filter(name => !isEmptyTableSection(attributes[name]));
  const tableControls = [{
    icon: table_row_before,
    title: (0,external_wp_i18n_namespaceObject.__)('Insert row before'),
    isDisabled: !selectedCell,
    onClick: onInsertRowBefore
  }, {
    icon: table_row_after,
    title: (0,external_wp_i18n_namespaceObject.__)('Insert row after'),
    isDisabled: !selectedCell,
    onClick: onInsertRowAfter
  }, {
    icon: table_row_delete,
    title: (0,external_wp_i18n_namespaceObject.__)('Delete row'),
    isDisabled: !selectedCell,
    onClick: onDeleteRow
  }, {
    icon: table_column_before,
    title: (0,external_wp_i18n_namespaceObject.__)('Insert column before'),
    isDisabled: !selectedCell,
    onClick: onInsertColumnBefore
  }, {
    icon: table_column_after,
    title: (0,external_wp_i18n_namespaceObject.__)('Insert column after'),
    isDisabled: !selectedCell,
    onClick: onInsertColumnAfter
  }, {
    icon: table_column_delete,
    title: (0,external_wp_i18n_namespaceObject.__)('Delete column'),
    isDisabled: !selectedCell,
    onClick: onDeleteColumn
  }];
  const renderedSections = ['head', 'body', 'foot'].map(name => (0,external_wp_element_namespaceObject.createElement)(TSection, {
    name: name,
    key: name
  }, attributes[name].map((_ref3, rowIndex) => {
    let {
      cells
    } = _ref3;
    return (0,external_wp_element_namespaceObject.createElement)("tr", {
      key: rowIndex
    }, cells.map((_ref4, columnIndex) => {
      let {
        content,
        tag: CellTag,
        scope,
        align
      } = _ref4;
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
        tagName: CellTag,
        key: columnIndex,
        className: classnames_default()({
          [`has-text-align-${align}`]: align
        }, 'wp-block-table__cell-content'),
        scope: CellTag === 'th' ? scope : undefined,
        value: content,
        onChange: onChange,
        unstableOnFocus: () => {
          setSelectedCell({
            sectionName: name,
            rowIndex,
            columnIndex,
            type: 'cell'
          });
        },
        "aria-label": cellAriaLabel[name],
        placeholder: placeholder[name]
      });
    }));
  })));
  const isEmpty = !sections.length;
  return (0,external_wp_element_namespaceObject.createElement)("figure", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Change column alignment'),
    alignmentControls: ALIGNMENT_CONTROLS,
    value: getCellAlignment(),
    onChange: nextAlign => onChangeColumnAlignment(nextAlign)
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
    hasArrowIndicator: true,
    icon: library_table,
    label: (0,external_wp_i18n_namespaceObject.__)('Edit table'),
    controls: tableControls
  }))), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Table settings'),
    className: "blocks-table-settings"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
    checked: !!hasFixedLayout,
    onChange: onChangeFixedLayout
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
    checked: !!(head && head.length),
    onChange: onToggleHeaderSection
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
    checked: !!(foot && foot.length),
    onChange: onToggleFooterSection
  }))), !isEmpty && (0,external_wp_element_namespaceObject.createElement)("table", {
    className: classnames_default()(colorProps.className, borderProps.className, {
      'has-fixed-layout': hasFixedLayout
    }),
    style: { ...colorProps.style,
      ...borderProps.style
    }
  }, renderedSections), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "figcaption",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Table caption text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
    value: caption,
    onChange: value => setAttributes({
      caption: value
    }) // Deselect the selected table cell when the caption is focused.
    ,
    unstableOnFocus: () => setSelectedCell(),
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  }), isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    label: (0,external_wp_i18n_namespaceObject.__)('Table'),
    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: block_table,
      showColors: true
    }),
    instructions: (0,external_wp_i18n_namespaceObject.__)('Insert a table for sharing data.')
  }, (0,external_wp_element_namespaceObject.createElement)("form", {
    className: "blocks-table__placeholder-form",
    onSubmit: onCreateTable
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    type: "number",
    label: (0,external_wp_i18n_namespaceObject.__)('Column count'),
    value: initialColumnCount,
    onChange: onChangeInitialColumnCount,
    min: "1",
    className: "blocks-table__placeholder-input"
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    type: "number",
    label: (0,external_wp_i18n_namespaceObject.__)('Row count'),
    value: initialRowCount,
    onChange: onChangeInitialRowCount,
    min: "1",
    className: "blocks-table__placeholder-input"
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    className: "blocks-table__placeholder-button",
    variant: "primary",
    type: "submit"
  }, (0,external_wp_i18n_namespaceObject.__)('Create Table')))));
}

/* harmony default export */ var table_edit = (TableEdit);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function table_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    hasFixedLayout,
    head,
    body,
    foot,
    caption
  } = attributes;
  const isEmpty = !head.length && !body.length && !foot.length;

  if (isEmpty) {
    return null;
  }

  const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
  const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
  const classes = classnames_default()(colorProps.className, borderProps.className, {
    'has-fixed-layout': hasFixedLayout
  });
  const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);

  const Section = _ref2 => {
    let {
      type,
      rows
    } = _ref2;

    if (!rows.length) {
      return null;
    }

    const Tag = `t${type}`;
    return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref3, rowIndex) => {
      let {
        cells
      } = _ref3;
      return (0,external_wp_element_namespaceObject.createElement)("tr", {
        key: rowIndex
      }, cells.map((_ref4, cellIndex) => {
        let {
          content,
          tag,
          scope,
          align
        } = _ref4;
        const cellClasses = classnames_default()({
          [`has-text-align-${align}`]: align
        });
        return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
          className: cellClasses ? cellClasses : undefined,
          "data-align": align,
          tagName: tag,
          value: content,
          key: cellIndex,
          scope: tag === 'th' ? scope : undefined
        });
      }));
    }));
  };

  return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("table", {
    className: classes === '' ? undefined : classes,
    style: { ...colorProps.style,
      ...borderProps.style
    }
  }, (0,external_wp_element_namespaceObject.createElement)(Section, {
    type: "head",
    rows: head
  }), (0,external_wp_element_namespaceObject.createElement)(Section, {
    type: "body",
    rows: body
  }), (0,external_wp_element_namespaceObject.createElement)(Section, {
    type: "foot",
    rows: foot
  })), hasCaption && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    value: caption
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/transforms.js
const tableContentPasteSchema = _ref => {
  let {
    phrasingContentSchema
  } = _ref;
  return {
    tr: {
      allowEmpty: true,
      children: {
        th: {
          allowEmpty: true,
          children: phrasingContentSchema,
          attributes: ['scope']
        },
        td: {
          allowEmpty: true,
          children: phrasingContentSchema
        }
      }
    }
  };
};

const tablePasteSchema = args => ({
  table: {
    children: {
      thead: {
        allowEmpty: true,
        children: tableContentPasteSchema(args)
      },
      tfoot: {
        allowEmpty: true,
        children: tableContentPasteSchema(args)
      },
      tbody: {
        allowEmpty: true,
        children: tableContentPasteSchema(args)
      }
    }
  }
});

const table_transforms_transforms = {
  from: [{
    type: 'raw',
    selector: 'table',
    schema: tablePasteSchema
  }]
};
/* harmony default export */ var table_transforms = (table_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const table_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/table",
  title: "Table",
  category: "text",
  description: "Create structured content in rows and columns to display information.",
  textdomain: "default",
  attributes: {
    hasFixedLayout: {
      type: "boolean",
      "default": false
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption",
      "default": ""
    },
    head: {
      type: "array",
      "default": [],
      source: "query",
      selector: "thead tr",
      query: {
        cells: {
          type: "array",
          "default": [],
          source: "query",
          selector: "td,th",
          query: {
            content: {
              type: "string",
              source: "html"
            },
            tag: {
              type: "string",
              "default": "td",
              source: "tag"
            },
            scope: {
              type: "string",
              source: "attribute",
              attribute: "scope"
            },
            align: {
              type: "string",
              source: "attribute",
              attribute: "data-align"
            }
          }
        }
      }
    },
    body: {
      type: "array",
      "default": [],
      source: "query",
      selector: "tbody tr",
      query: {
        cells: {
          type: "array",
          "default": [],
          source: "query",
          selector: "td,th",
          query: {
            content: {
              type: "string",
              source: "html"
            },
            tag: {
              type: "string",
              "default": "td",
              source: "tag"
            },
            scope: {
              type: "string",
              source: "attribute",
              attribute: "scope"
            },
            align: {
              type: "string",
              source: "attribute",
              attribute: "data-align"
            }
          }
        }
      }
    },
    foot: {
      type: "array",
      "default": [],
      source: "query",
      selector: "tfoot tr",
      query: {
        cells: {
          type: "array",
          "default": [],
          source: "query",
          selector: "td,th",
          query: {
            content: {
              type: "string",
              source: "html"
            },
            tag: {
              type: "string",
              "default": "td",
              source: "tag"
            },
            scope: {
              type: "string",
              source: "attribute",
              attribute: "scope"
            },
            align: {
              type: "string",
              source: "attribute",
              attribute: "data-align"
            }
          }
        }
      }
    }
  },
  supports: {
    anchor: true,
    align: true,
    color: {
      __experimentalSkipSerialization: true,
      gradients: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    },
    __experimentalBorder: {
      __experimentalSkipSerialization: true,
      color: true,
      style: true,
      width: true,
      __experimentalDefaultControls: {
        color: true,
        style: true,
        width: true
      }
    },
    __experimentalSelector: ".wp-block-table > table"
  },
  styles: [{
    name: "regular",
    label: "Default",
    isDefault: true
  }, {
    name: "stripes",
    label: "Stripes"
  }],
  editorStyle: "wp-block-table-editor",
  style: "wp-block-table"
};


const {
  name: table_name
} = table_metadata;

const table_settings = {
  icon: block_table,
  example: {
    attributes: {
      head: [{
        cells: [{
          content: (0,external_wp_i18n_namespaceObject.__)('Version'),
          tag: 'th'
        }, {
          content: (0,external_wp_i18n_namespaceObject.__)('Jazz Musician'),
          tag: 'th'
        }, {
          content: (0,external_wp_i18n_namespaceObject.__)('Release Date'),
          tag: 'th'
        }]
      }],
      body: [{
        cells: [{
          content: '5.2',
          tag: 'td'
        }, {
          content: 'Jaco Pastorius',
          tag: 'td'
        }, {
          content: (0,external_wp_i18n_namespaceObject.__)('May 7, 2019'),
          tag: 'td'
        }]
      }, {
        cells: [{
          content: '5.1',
          tag: 'td'
        }, {
          content: 'Betty Carter',
          tag: 'td'
        }, {
          content: (0,external_wp_i18n_namespaceObject.__)('February 21, 2019'),
          tag: 'td'
        }]
      }, {
        cells: [{
          content: '5.0',
          tag: 'td'
        }, {
          content: 'Bebo Valdés',
          tag: 'td'
        }, {
          content: (0,external_wp_i18n_namespaceObject.__)('December 6, 2018'),
          tag: 'td'
        }]
      }]
    }
  },
  transforms: table_transforms,
  edit: table_edit,
  save: table_save_save,
  deprecated: table_deprecated
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/transforms.js
/**
 * WordPress dependencies
 */

const tag_cloud_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/categories'],
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/tag-cloud')
  }],
  to: [{
    type: 'block',
    blocks: ['core/categories'],
    transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/categories')
  }]
};
/* harmony default export */ var tag_cloud_transforms = (tag_cloud_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







/**
 * Minimum number of tags a user can show using this block.
 *
 * @type {number}
 */

const MIN_TAGS = 1;
/**
 * Maximum number of tags a user can show using this block.
 *
 * @type {number}
 */

const MAX_TAGS = 100;
const MIN_FONT_SIZE = 0.1;
const MAX_FONT_SIZE = 100;

function TagCloudEdit(_ref) {
  let {
    attributes,
    setAttributes,
    taxonomies
  } = _ref;
  const {
    taxonomy,
    showTagCounts,
    numberOfTags,
    smallestFontSize,
    largestFontSize
  } = attributes;
  const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
    availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['%', 'px', 'em', 'rem']
  });

  const getTaxonomyOptions = () => {
    const selectOption = {
      label: (0,external_wp_i18n_namespaceObject.__)('- Select -'),
      value: '',
      disabled: true
    };
    const taxonomyOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(taxonomies, 'show_cloud'), item => {
      return {
        value: item.slug,
        label: item.name
      };
    });
    return [selectOption, ...taxonomyOptions];
  };

  const onFontSizeChange = (fontSizeLabel, newValue) => {
    // eslint-disable-next-line @wordpress/no-unused-vars-before-return
    const [quantity, newUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(newValue);

    if (!Number.isFinite(quantity)) {
      return;
    }

    const updateObj = {
      [fontSizeLabel]: newValue
    }; // We need to keep in sync the `unit` changes to both `smallestFontSize`
    // and `largestFontSize` attributes.

    Object.entries({
      smallestFontSize,
      largestFontSize
    }).forEach(_ref2 => {
      let [attribute, currentValue] = _ref2;
      const [currentQuantity, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue); // Only add an update if the other font size attribute has a different unit.

      if (attribute !== fontSizeLabel && currentUnit !== newUnit) {
        updateObj[attribute] = `${currentQuantity}${newUnit}`;
      }
    });
    setAttributes(updateObj);
  };

  const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Tag Cloud settings')
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
    options: getTaxonomyOptions(),
    value: taxonomy,
    onChange: selectedTaxonomy => setAttributes({
      taxonomy: selectedTaxonomy
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
    checked: showTagCounts,
    onChange: () => setAttributes({
      showTagCounts: !showTagCounts
    })
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
    value: numberOfTags,
    onChange: value => setAttributes({
      numberOfTags: value
    }),
    min: MIN_TAGS,
    max: MAX_TAGS,
    required: true
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, {
    isBlock: true
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Smallest size'),
    value: smallestFontSize,
    onChange: value => {
      onFontSizeChange('smallestFontSize', value);
    },
    units: units,
    min: MIN_FONT_SIZE,
    max: MAX_FONT_SIZE
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, {
    isBlock: true
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Largest size'),
    value: largestFontSize,
    onChange: value => {
      onFontSizeChange('largestFontSize', value);
    },
    units: units,
    min: MIN_FONT_SIZE,
    max: MAX_FONT_SIZE
  })))));
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), {
    key: "tag-cloud",
    block: "core/tag-cloud",
    attributes: attributes
  })));
}

/* harmony default export */ var tag_cloud_edit = ((0,external_wp_data_namespaceObject.withSelect)(select => {
  return {
    taxonomies: select(external_wp_coreData_namespaceObject.store).getTaxonomies({
      per_page: -1
    })
  };
})(TagCloudEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const tag_cloud_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/tag-cloud",
  title: "Tag Cloud",
  category: "widgets",
  description: "A cloud of your most used tags.",
  textdomain: "default",
  attributes: {
    numberOfTags: {
      type: "number",
      "default": 45,
      minimum: 1,
      maximum: 100
    },
    taxonomy: {
      type: "string",
      "default": "post_tag"
    },
    showTagCounts: {
      type: "boolean",
      "default": false
    },
    smallestFontSize: {
      type: "string",
      "default": "8pt"
    },
    largestFontSize: {
      type: "string",
      "default": "22pt"
    }
  },
  styles: [{
    name: "default",
    label: "Default",
    isDefault: true
  }, {
    name: "outline",
    label: "Outline"
  }],
  supports: {
    html: false,
    align: true
  },
  editorStyle: "wp-block-tag-cloud-editor"
};

const {
  name: tag_cloud_name
} = tag_cloud_metadata;

const tag_cloud_settings = {
  icon: library_tag,
  example: {},
  edit: tag_cloud_edit,
  transforms: tag_cloud_transforms
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js


/**
 * WordPress dependencies
 */

const symbolFilled = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
}));
/* harmony default export */ var symbol_filled = (symbolFilled);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/hooks.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


/**
 * Retrieves the available template parts for the given area.
 *
 * @param {string} area       Template part area.
 * @param {string} excludedId Template part ID to exclude.
 *
 * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.
 */

function useAlternativeTemplateParts(area, excludedId) {
  const {
    templateParts,
    isResolving
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords,
      isResolving: _isResolving
    } = select(external_wp_coreData_namespaceObject.store);
    const query = {
      per_page: -1
    };
    return {
      templateParts: getEntityRecords('postType', 'wp_template_part', query),
      isLoading: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
    };
  }, []);
  const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!templateParts) {
      return [];
    }

    return templateParts.filter(templatePart => createTemplatePartId(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || [];
  }, [templateParts, area]);
  return {
    templateParts: filteredTemplateParts,
    isResolving
  };
}
/**
 * Retrieves the available block patterns for the given area.
 *
 * @param {string} area     Template part area.
 * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).
 *
 * @return {Array} array of block patterns.
 */

function useAlternativeBlockPatterns(area, clientId) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    const blockNameWithArea = area ? `core/template-part/${area}` : 'core/template-part';
    const {
      getBlockRootClientId,
      __experimentalGetPatternsByBlockTypes
    } = select(external_wp_blockEditor_namespaceObject.store);
    const rootClientId = getBlockRootClientId(clientId);
    return __experimentalGetPatternsByBlockTypes(blockNameWithArea, rootClientId);
  }, [area, clientId]);
}
function useCreateTemplatePartFromBlocks(area, setAttributes) {
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  return async function () {
    let blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
    let title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0,external_wp_i18n_namespaceObject.__)('Untitled Template Part');
    // Currently template parts only allow latin chars.
    // Fallback slug will receive suffix by default.
    const cleanSlug = (0,external_lodash_namespaceObject.kebabCase)(title).replace(/[^\w-]+/g, '') || 'wp-custom-part'; // If we have `area` set from block attributes, means an exposed
    // block variation was inserted. So add this prop to the template
    // part entity on creation. Afterwards remove `area` value from
    // block attributes.

    const record = {
      title,
      slug: cleanSlug,
      content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
      // `area` is filterable on the server and defaults to `UNCATEGORIZED`
      // if provided value is not allowed.
      area
    };
    const templatePart = await saveEntityRecord('postType', 'wp_template_part', record);
    setAttributes({
      slug: templatePart.slug,
      theme: templatePart.theme,
      area: undefined
    });
  };
}
/**
 * Retrieves the template part area object.
 *
 * @param {string} area Template part area identifier.
 *
 * @return {{icon: Object, label: string, tagName: string}} Template Part area.
 */

function useTemplatePartArea(area) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _selectedArea$area_ta;

    // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
    // Blocks can be loaded into a *non-post* block editor.
    // eslint-disable-next-line @wordpress/data-no-store-string-literals
    const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();

    const selectedArea = (0,external_lodash_namespaceObject.find)(definedAreas, {
      area
    });
    const defaultArea = (0,external_lodash_namespaceObject.find)(definedAreas, {
      area: 'uncategorized'
    });
    return {
      icon: (selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.icon) || (defaultArea === null || defaultArea === void 0 ? void 0 : defaultArea.icon),
      label: (selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.label) || (0,external_wp_i18n_namespaceObject.__)('Template Part'),
      tagName: (_selectedArea$area_ta = selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.area_tag) !== null && _selectedArea$area_ta !== void 0 ? _selectedArea$area_ta : 'div'
    };
  }, [area]);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/title-modal.js


/**
 * WordPress dependencies
 */



function TitleModal(_ref) {
  let {
    areaLabel,
    onClose,
    onSubmit
  } = _ref;
  // Restructure onCreate to set the blocks on local state.
  // Add modal to confirm title and trigger onCreate.
  const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)((0,external_wp_i18n_namespaceObject.__)('Untitled Template Part'));

  const submitForCreation = event => {
    event.preventDefault();
    onSubmit(title);
  };

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
    title: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
    (0,external_wp_i18n_namespaceObject.__)('Name and create your new %s'), areaLabel.toLowerCase()),
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
    overlayClassName: "wp-block-template-part__placeholder-create-new__title-form",
    onRequestClose: onClose
  }, (0,external_wp_element_namespaceObject.createElement)("form", {
    onSubmit: submitForCreation
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Name'),
    value: title,
    onChange: setTitle
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, {
    className: "wp-block-template-part__placeholder-create-new__title-form-actions",
    justify: "flex-end"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "primary",
    type: "submit",
    disabled: !title.length,
    "aria-disabled": !title.length
  }, (0,external_wp_i18n_namespaceObject.__)('Create'))))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/placeholder.js


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



function TemplatePartPlaceholder(_ref) {
  let {
    area,
    clientId,
    templatePartId,
    onOpenSelectionModal,
    setAttributes
  } = _ref;
  const {
    templateParts,
    isResolving
  } = useAlternativeTemplateParts(area, templatePartId);
  const blockPatterns = useAlternativeBlockPatterns(area, clientId);
  const [showTitleModal, setShowTitleModal] = (0,external_wp_element_namespaceObject.useState)(false);
  const areaObject = useTemplatePartArea(area);
  const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
    icon: areaObject.icon,
    label: areaObject.label,
    instructions: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
    (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase())
  }, isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), !isResolving && !!(templateParts.length || blockPatterns.length) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "primary",
    onClick: onOpenSelectionModal
  }, (0,external_wp_i18n_namespaceObject.__)('Choose')), !isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    onClick: () => {
      setShowTitleModal(true);
    }
  }, (0,external_wp_i18n_namespaceObject.__)('Start blank')), showTitleModal && (0,external_wp_element_namespaceObject.createElement)(TitleModal, {
    areaLabel: areaObject.label,
    onClose: () => setShowTitleModal(false),
    onSubmit: title => {
      createFromBlocks([], title);
    }
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/selection-modal.js


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



function TemplatePartSelectionModal(_ref) {
  let {
    setAttributes,
    onClose,
    templatePartId = null,
    area,
    clientId
  } = _ref;
  // When the templatePartId is undefined,
  // it means the user is creating a new one from the placeholder.
  const isReplacingTemplatePartContent = !!templatePartId;
  const {
    templateParts
  } = useAlternativeTemplateParts(area, templatePartId); // We can map template parts to block patters to reuse the BlockPatternsList UI

  const templartPartsAsBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return templateParts.map(templatePart => ({
      name: createTemplatePartId(templatePart.theme, templatePart.slug),
      title: templatePart.title.rendered,
      blocks: (0,external_wp_blocks_namespaceObject.parse)(templatePart.content.raw),
      templatePart
    }));
  }, [templateParts]);
  const shownTemplateParts = (0,external_wp_compose_namespaceObject.useAsyncList)(templartPartsAsBlockPatterns);
  const {
    createSuccessNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const blockPatterns = useAlternativeBlockPatterns(area, clientId);
  const shownBlockPatterns = (0,external_wp_compose_namespaceObject.useAsyncList)(blockPatterns);
  const {
    replaceInnerBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const onTemplatePartSelect = (0,external_wp_element_namespaceObject.useCallback)(templatePart => {
    var _templatePart$title;

    setAttributes({
      slug: templatePart.slug,
      theme: templatePart.theme,
      area: undefined
    });
    createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: template part title. */
    (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" inserted.'), ((_templatePart$title = templatePart.title) === null || _templatePart$title === void 0 ? void 0 : _templatePart$title.rendered) || templatePart.slug), {
      type: 'snackbar'
    });
    onClose();
  }, []);
  const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "block-library-template-part__selection-content"
  }, !!templartPartsAsBlockPatterns.length && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("h2", null, (0,external_wp_i18n_namespaceObject.__)('Existing template parts')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
    blockPatterns: templartPartsAsBlockPatterns,
    shownPatterns: shownTemplateParts,
    onClickPattern: pattern => {
      onTemplatePartSelect(pattern.templatePart);
    }
  })), !!blockPatterns.length && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("h2", null, (0,external_wp_i18n_namespaceObject.__)('Patterns')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
    blockPatterns: blockPatterns,
    shownPatterns: shownBlockPatterns,
    onClickPattern: (pattern, blocks) => {
      if (isReplacingTemplatePartContent) {
        replaceInnerBlocks(clientId, blocks);
      } else {
        createFromBlocks(blocks, pattern.title);
      }

      onClose();
    }
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/advanced-controls.js


/**
 * WordPress dependencies
 */





function TemplatePartAdvancedControls(_ref) {
  let {
    tagName,
    setAttributes,
    isEntityAvailable,
    templatePartId,
    defaultWrapper
  } = _ref;
  const [area, setArea] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'area', templatePartId);
  const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'title', templatePartId);
  const {
    areaOptions
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
    // Blocks can be loaded into a *non-post* block editor.
    // eslint-disable-next-line @wordpress/data-no-store-string-literals
    const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();

    return {
      areaOptions: definedAreas.map(_ref2 => {
        let {
          label,
          area: _area
        } = _ref2;
        return {
          label,
          value: _area
        };
      })
    };
  }, []);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
    __experimentalGroup: "advanced"
  }, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Title'),
    value: title,
    onChange: value => {
      setTitle(value);
    },
    onFocus: event => event.target.select()
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Area'),
    labelPosition: "top",
    options: areaOptions,
    value: area,
    onChange: setArea
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
    options: [{
      label: (0,external_wp_i18n_namespaceObject.sprintf)(
      /* translators: %s: HTML tag based on area. */
      (0,external_wp_i18n_namespaceObject.__)('Default based on area (%s)'), `<${defaultWrapper}>`),
      value: ''
    }, {
      label: '<header>',
      value: 'header'
    }, {
      label: '<main>',
      value: 'main'
    }, {
      label: '<section>',
      value: 'section'
    }, {
      label: '<article>',
      value: 'article'
    }, {
      label: '<aside>',
      value: 'aside'
    }, {
      label: '<footer>',
      value: 'footer'
    }, {
      label: '<div>',
      value: 'div'
    }],
    value: tagName || '',
    onChange: value => setAttributes({
      tagName: value
    })
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/inner-blocks.js


/**
 * WordPress dependencies
 */



function TemplatePartInnerBlocks(_ref) {
  let {
    postId: id,
    hasInnerBlocks,
    layout,
    tagName,
    blockProps,
    clientId
  } = _ref;
  const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getSettings;

    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout;
  }, []);
  const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
  const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
  const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_template_part', {
    id
  });
  const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
    value: blocks,
    onInput,
    onChange,
    renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender,
    __experimentalLayout: themeSupportsLayout ? usedLayout : undefined
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, {
    clientId: clientId,
    tagName: tagName,
    wrapperProps: innerBlocksProps
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/index.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */







function TemplatePartEdit(_ref) {
  let {
    attributes,
    setAttributes,
    clientId
  } = _ref;
  const {
    slug,
    theme,
    tagName,
    layout = {}
  } = attributes;
  const templatePartId = createTemplatePartId(theme, slug);
  const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(templatePartId);
  const [isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen] = (0,external_wp_element_namespaceObject.useState)(false); // Set the postId block attribute if it did not exist,
  // but wait until the inner blocks have loaded to allow
  // new edits to trigger this.

  const {
    isResolved,
    innerBlocks,
    isMissing,
    area
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedEntityRecord,
      hasFinishedResolution
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getBlocks
    } = select(external_wp_blockEditor_namespaceObject.store);
    const getEntityArgs = ['postType', 'wp_template_part', templatePartId];
    const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null;

    const _area = (entityRecord === null || entityRecord === void 0 ? void 0 : entityRecord.area) || attributes.area;

    const hasResolvedEntity = templatePartId ? hasFinishedResolution('getEditedEntityRecord', getEntityArgs) : false;
    return {
      innerBlocks: getBlocks(clientId),
      isResolved: hasResolvedEntity,
      isMissing: hasResolvedEntity && (0,external_lodash_namespaceObject.isEmpty)(entityRecord),
      area: _area
    };
  }, [templatePartId, clientId]);
  const {
    templateParts
  } = useAlternativeTemplateParts(area, templatePartId);
  const blockPatterns = useAlternativeBlockPatterns(area, clientId);
  const hasReplacements = !!templateParts.length || !!blockPatterns.length;
  const areaObject = useTemplatePartArea(area);
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
  const isPlaceholder = !slug;
  const isEntityAvailable = !isPlaceholder && !isMissing && isResolved;
  const TagName = tagName || areaObject.tagName; // We don't want to render a missing state if we have any inner blocks.
  // A new template part is automatically created if we have any inner blocks but no entity.

  if (innerBlocks.length === 0 && (slug && !theme || slug && isMissing)) {
    return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.sprintf)(
    /* translators: %s: Template part slug */
    (0,external_wp_i18n_namespaceObject.__)('Template part has been deleted or is unavailable: %s'), slug)));
  }

  if (isEntityAvailable && hasAlreadyRendered) {
    return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')));
  }

  return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)(TemplatePartAdvancedControls, {
    tagName: tagName,
    setAttributes: setAttributes,
    isEntityAvailable: isEntityAvailable,
    templatePartId: templatePartId,
    defaultWrapper: areaObject.tagName
  }), isPlaceholder && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(TemplatePartPlaceholder, {
    area: attributes.area,
    templatePartId: templatePartId,
    clientId: clientId,
    setAttributes: setAttributes,
    onOpenSelectionModal: () => setIsTemplatePartSelectionOpen(true)
  })), isEntityAvailable && hasReplacements && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
    className: "wp-block-template-part__block-control-group"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
    onClick: () => setIsTemplatePartSelectionOpen(true)
  }, (0,external_wp_i18n_namespaceObject.__)('Replace')))), isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(TemplatePartInnerBlocks, {
    clientId: clientId,
    tagName: TagName,
    blockProps: blockProps,
    postId: templatePartId,
    hasInnerBlocks: innerBlocks.length > 0,
    layout: layout
  }), !isPlaceholder && !isResolved && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), isTemplatePartSelectionOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
    className: "block-editor-template-part__selection-modal",
    title: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
    (0,external_wp_i18n_namespaceObject.__)('Choose a %s'), areaObject.label.toLowerCase()),
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
    onRequestClose: () => setIsTemplatePartSelectionOpen(false)
  }, (0,external_wp_element_namespaceObject.createElement)(TemplatePartSelectionModal, {
    templatePartId: templatePartId,
    clientId: clientId,
    area: area,
    setAttributes: setAttributes,
    onClose: () => setIsTemplatePartSelectionOpen(false)
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/header.js


/**
 * WordPress dependencies
 */

const header = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
}));
/* harmony default export */ var library_header = (header);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/footer.js


/**
 * WordPress dependencies
 */

const footer = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  fillRule: "evenodd",
  d: "M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
}));
/* harmony default export */ var library_footer = (footer);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sidebar.js


/**
 * WordPress dependencies
 */

const sidebar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
}));
/* harmony default export */ var library_sidebar = (sidebar);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/fallback-variations.js
/**
 * WordPress dependencies
 */




const fallback_variations_fallbackVariations = [{
  name: 'header',
  icon: library_header,
  title: (0,external_wp_i18n_namespaceObject.__)('Header'),
  description: (0,external_wp_i18n_namespaceObject.__)('The Header template defines a page area that typically contains a title, logo, and main navigation.'),
  attributes: {
    area: 'header'
  },
  scope: ['inserter']
}, {
  name: 'footer',
  icon: library_footer,
  title: (0,external_wp_i18n_namespaceObject.__)('Footer'),
  description: (0,external_wp_i18n_namespaceObject.__)('The Footer template defines a page area that typically contains site credits, social links, or any other combination of blocks.'),
  attributes: {
    area: 'footer'
  },
  scope: ['inserter']
}];
fallback_variations_fallbackVariations.forEach(variation => {
  if (variation.isActive) return;

  variation.isActive = (blockAttributes, variationAttributes) => {
    const {
      area,
      theme,
      slug
    } = blockAttributes; // We first check the `area` block attribute which is set during insertion.
    // This property is removed on the creation of a template part.

    if (area) return area === variationAttributes.area; // Find a matching variation from the created template part
    // by checking the entity's `area` property.

    if (!slug) return false;
    const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', `${theme}//${slug}`);
    return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area;
  };
});
/* harmony default export */ var template_part_fallback_variations = (fallback_variations_fallbackVariations);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/variations.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



function getTemplatePartIcon(iconName) {
  if ('header' === iconName) {
    return library_header;
  } else if ('footer' === iconName) {
    return library_footer;
  } else if ('sidebar' === iconName) {
    return library_sidebar;
  }

  return symbol_filled;
}

function enhanceTemplatePartVariations(settings, name) {
  if (name !== 'core/template-part') {
    return settings;
  } // WordPress versions pre-5.8 do not support server side variation registration.
  // So we must register the fallback variations until those versions are no longer supported.


  if (!(settings.variations && settings.variations.length)) {
    return { ...settings,
      variations: template_part_fallback_variations
    };
  }

  if (settings.variations) {
    const isActive = (blockAttributes, variationAttributes) => {
      const {
        area,
        theme,
        slug
      } = blockAttributes; // We first check the `area` block attribute which is set during insertion.
      // This property is removed on the creation of a template part.

      if (area) return area === variationAttributes.area; // Find a matching variation from the created template part
      // by checking the entity's `area` property.

      if (!slug) return false;
      const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', `${theme}//${slug}`);
      return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area;
    };

    const variations = settings.variations.map(variation => {
      return { ...variation,
        ...(!variation.isActive && {
          isActive
        }),
        ...(typeof variation.icon === 'string' && {
          icon: getTemplatePartIcon(variation.icon)
        })
      };
    });
    return { ...settings,
      variations
    };
  }

  return settings;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */

const template_part_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/template-part",
  title: "Template Part",
  category: "theme",
  description: "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.",
  textdomain: "default",
  attributes: {
    slug: {
      type: "string"
    },
    theme: {
      type: "string"
    },
    tagName: {
      type: "string"
    },
    area: {
      type: "string"
    }
  },
  supports: {
    align: true,
    html: false,
    reusable: false
  },
  editorStyle: "wp-block-template-part-editor"
};


const {
  name: template_part_name
} = template_part_metadata;

const template_part_settings = {
  icon: symbol_filled,
  __experimentalLabel: _ref => {
    var _entity$title;

    let {
      slug,
      theme
    } = _ref;

    // Attempt to find entity title if block is a template part.
    // Require slug to request, otherwise entity is uncreated and will throw 404.
    if (!slug) {
      return;
    }

    const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', theme + '//' + slug);

    if (!entity) {
      return;
    }

    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)((_entity$title = entity.title) === null || _entity$title === void 0 ? void 0 : _entity$title.rendered) || (0,external_lodash_namespaceObject.startCase)(entity.slug);
  },
  edit: TemplatePartEdit
}; // Importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects

(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations); // Prevent adding template parts inside post templates.

const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content'];
(0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromPostTemplates', (can, blockType, rootClientId, _ref2) => {
  let {
    getBlock,
    getBlockParentsByBlockName
  } = _ref2;

  if (blockType.name !== 'core/template-part') {
    return can;
  }

  for (const disallowedParentType of DISALLOWED_PARENTS) {
    var _getBlock;

    const hasDisallowedParent = ((_getBlock = getBlock(rootClientId)) === null || _getBlock === void 0 ? void 0 : _getBlock.name) === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;

    if (hasDisallowedParent) {
      return false;
    }
  }

  return true;
});

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/term-description.js


/**
 * WordPress dependencies
 */

const term_description_tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M6.08 10.103h2.914L9.657 12h1.417L8.23 4H6.846L4 12h1.417l.663-1.897Zm1.463-4.137.994 2.857h-2l1.006-2.857ZM11 16H4v-1.5h7V16Zm1 0h8v-1.5h-8V16Zm-4 4H4v-1.5h4V20Zm7-1.5V20H9v-1.5h6Z"
}));
/* harmony default export */ var term_description = (term_description_tag);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



function TermDescriptionEdit(_ref) {
  let {
    attributes,
    setAttributes,
    mergedStyle
  } = _ref;
  const {
    textAlign
  } = attributes;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    }),
    style: mergedStyle
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-term-description__placeholder"
  }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Term Description')))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const term_description_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/term-description",
  title: "Term Description",
  category: "theme",
  description: "Display the description of categories, tags and custom taxonomies when viewing an archive.",
  textdomain: "default",
  attributes: {
    textAlign: {
      type: "string"
    }
  },
  supports: {
    align: ["wide", "full"],
    html: false,
    color: {
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      lineHeight: true,
      __experimentalDefaultControls: {
        fontSize: true
      }
    }
  },
  editorStyle: "wp-block-term-description-editor"
};

const {
  name: term_description_name
} = term_description_metadata;

const term_description_settings = {
  icon: term_description,
  edit: TermDescriptionEdit
};

;// CONCATENATED MODULE: external ["wp","deprecated"]
var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */





function TextColumnsEdit(_ref) {
  let {
    attributes,
    setAttributes
  } = _ref;
  const {
    width,
    content,
    columns
  } = attributes;
  external_wp_deprecated_default()('The Text Columns block', {
    since: '5.3',
    alternative: 'the Columns block'
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, {
    value: width,
    onChange: nextWidth => setAttributes({
      width: nextWidth
    }),
    controls: ['center', 'wide', 'full']
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
    value: columns,
    onChange: value => setAttributes({
      columns: value
    }),
    min: 2,
    max: 4,
    required: true
  }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: `align${width} columns-${columns}`
  }), (0,external_lodash_namespaceObject.times)(columns, index => {
    return (0,external_wp_element_namespaceObject.createElement)("div", {
      className: "wp-block-column",
      key: `column-${index}`
    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
      tagName: "p",
      value: (0,external_lodash_namespaceObject.get)(content, [index, 'children']),
      onChange: nextContent => {
        setAttributes({
          content: [...content.slice(0, index), {
            children: nextContent
          }, ...content.slice(index + 1)]
        });
      },
      "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %d: column index (starting with 1)
      (0,external_wp_i18n_namespaceObject.__)('Column %d text'), index + 1),
      placeholder: (0,external_wp_i18n_namespaceObject.__)('New Column')
    }));
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function text_columns_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    width,
    content,
    columns
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className: `align${width} columns-${columns}`
  }), (0,external_lodash_namespaceObject.times)(columns, index => (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "wp-block-column",
    key: `column-${index}`
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "p",
    value: (0,external_lodash_namespaceObject.get)(content, [index, 'children'])
  }))));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js
/**
 * WordPress dependencies
 */

const text_columns_transforms_transforms = {
  to: [{
    type: 'block',
    blocks: ['core/columns'],
    transform: _ref => {
      let {
        className,
        columns,
        content,
        width
      } = _ref;
      return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
        align: 'wide' === width || 'full' === width ? width : undefined,
        className,
        columns
      }, content.map(_ref2 => {
        let {
          children
        } = _ref2;
        return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
          content: children
        })]);
      }));
    }
  }]
};
/* harmony default export */ var text_columns_transforms = (text_columns_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
/**
 * Internal dependencies
 */

const text_columns_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/text-columns",
  title: "Text Columns (deprecated)",
  icon: "columns",
  category: "design",
  description: "This block is deprecated. Please use the Columns block instead.",
  textdomain: "default",
  attributes: {
    content: {
      type: "array",
      source: "query",
      selector: "p",
      query: {
        children: {
          type: "string",
          source: "html"
        }
      },
      "default": [{}, {}]
    },
    columns: {
      type: "number",
      "default": 2
    },
    width: {
      type: "string"
    }
  },
  supports: {
    inserter: false
  },
  editorStyle: "wp-block-text-columns-editor",
  style: "wp-block-text-columns"
};


const {
  name: text_columns_name
} = text_columns_metadata;

const text_columns_settings = {
  transforms: text_columns_transforms,

  getEditWrapperProps(attributes) {
    const {
      width
    } = attributes;

    if ('wide' === width || 'full' === width) {
      return {
        'data-align': width
      };
    }
  },

  edit: TextColumnsEdit,
  save: text_columns_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/verse.js


/**
 * WordPress dependencies
 */

const verse = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z"
}));
/* harmony default export */ var library_verse = (verse);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const verse_deprecated_v1 = {
  attributes: {
    content: {
      type: 'string',
      source: 'html',
      selector: 'pre',
      default: ''
    },
    textAlign: {
      type: 'string'
    }
  },

  save(_ref) {
    let {
      attributes
    } = _ref;
    const {
      textAlign,
      content
    } = attributes;
    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      tagName: "pre",
      style: {
        textAlign
      },
      value: content
    });
  }

};
const verse_deprecated_v2 = {
  attributes: {
    content: {
      type: 'string',
      source: 'html',
      selector: 'pre',
      default: '',
      __unstablePreserveWhiteSpace: true,
      __experimentalRole: 'content'
    },
    textAlign: {
      type: 'string'
    }
  },
  supports: {
    anchor: true,
    color: {
      gradients: true,
      link: true
    },
    typography: {
      fontSize: true,
      __experimentalFontFamily: true
    },
    spacing: {
      padding: true
    }
  },

  save(_ref2) {
    let {
      attributes
    } = _ref2;
    const {
      textAlign,
      content
    } = attributes;
    const className = classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    });
    return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save({
      className
    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
      value: content
    }));
  },

  migrate: migrate_font_family,

  isEligible(_ref3) {
    var _style$typography;

    let {
      style
    } = _ref3;
    return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
  }

};
/**
 * New deprecations need to be placed first
 * for them to have higher priority.
 *
 * Old deprecations may need to be updated as well.
 *
 * See block-deprecation.md
 */

/* harmony default export */ var verse_deprecated = ([verse_deprecated_v2, verse_deprecated_v1]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/edit.js



/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



function VerseEdit(_ref) {
  let {
    attributes,
    setAttributes,
    mergeBlocks,
    onRemove,
    style
  } = _ref;
  const {
    textAlign,
    content
  } = attributes;
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classnames_default()({
      [`has-text-align-${textAlign}`]: textAlign
    }),
    style
  });
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
    value: textAlign,
    onChange: nextAlign => {
      setAttributes({
        textAlign: nextAlign
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
    tagName: "pre",
    identifier: "content",
    preserveWhiteSpace: true,
    value: content,
    onChange: nextContent => {
      setAttributes({
        content: nextContent
      });
    },
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Verse text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Write verse…'),
    onRemove: onRemove,
    onMerge: mergeBlocks,
    textAlign: textAlign
  }, blockProps, {
    __unstablePastePlainText: true
  })));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/save.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


function verse_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    textAlign,
    content
  } = attributes;
  const className = classnames_default()({
    [`has-text-align-${textAlign}`]: textAlign
  });
  return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save({
    className
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    value: content
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/transforms.js
/**
 * WordPress dependencies
 */

const verse_transforms_transforms = {
  from: [{
    type: 'block',
    blocks: ['core/paragraph'],
    transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/verse', attributes)
  }],
  to: [{
    type: 'block',
    blocks: ['core/paragraph'],
    transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
  }]
};
/* harmony default export */ var verse_transforms = (verse_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



const verse_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/verse",
  title: "Verse",
  category: "text",
  description: "Insert poetry. Use special spacing formats. Or quote song lyrics.",
  keywords: ["poetry", "poem"],
  textdomain: "default",
  attributes: {
    content: {
      type: "string",
      source: "html",
      selector: "pre",
      "default": "",
      __unstablePreserveWhiteSpace: true,
      __experimentalRole: "content"
    },
    textAlign: {
      type: "string"
    }
  },
  supports: {
    anchor: true,
    color: {
      gradients: true,
      link: true,
      __experimentalDefaultControls: {
        background: true,
        text: true
      }
    },
    typography: {
      fontSize: true,
      __experimentalFontFamily: true,
      lineHeight: true,
      __experimentalFontStyle: true,
      __experimentalFontWeight: true,
      __experimentalLetterSpacing: true,
      __experimentalTextTransform: true,
      __experimentalDefaultControls: {
        fontSize: true,
        fontAppearance: true
      }
    },
    spacing: {
      padding: true
    }
  },
  style: "wp-block-verse",
  editorStyle: "wp-block-verse-editor"
};


const {
  name: verse_name
} = verse_metadata;

const verse_settings = {
  icon: library_verse,
  example: {
    attributes: {
      /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
      // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.
      content: (0,external_wp_i18n_namespaceObject.__)('WHAT was he doing, the great god Pan,\n	Down in the reeds by the river?\nSpreading ruin and scattering ban,\nSplashing and paddling with hoofs of a goat,\nAnd breaking the golden lilies afloat\n    With the dragon-fly on the river.')
      /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */

    }
  },
  transforms: verse_transforms,
  deprecated: verse_deprecated,

  merge(attributes, attributesToMerge) {
    return {
      content: attributes.content + attributesToMerge.content
    };
  },

  edit: VerseEdit,
  save: verse_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/video.js


/**
 * WordPress dependencies
 */

const video = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"
}));
/* harmony default export */ var library_video = (video);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js


/**
 * WordPress dependencies
 */



const options = [{
  value: 'auto',
  label: (0,external_wp_i18n_namespaceObject.__)('Auto')
}, {
  value: 'metadata',
  label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
}, {
  value: 'none',
  label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
}];

const VideoSettings = _ref => {
  let {
    setAttributes,
    attributes
  } = _ref;
  const {
    autoplay,
    controls,
    loop,
    muted,
    playsInline,
    preload
  } = attributes;

  const autoPlayHelpText = (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.');

  const getAutoplayHelp = external_wp_element_namespaceObject.Platform.select({
    web: (0,external_wp_element_namespaceObject.useCallback)(checked => {
      return checked ? autoPlayHelpText : null;
    }, []),
    native: autoPlayHelpText
  });
  const toggleFactory = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const toggleAttribute = attribute => {
      return newValue => {
        setAttributes({
          [attribute]: newValue
        });
      };
    };

    return {
      autoplay: toggleAttribute('autoplay'),
      loop: toggleAttribute('loop'),
      muted: toggleAttribute('muted'),
      controls: toggleAttribute('controls'),
      playsInline: toggleAttribute('playsInline')
    };
  }, []);
  const onChangePreload = (0,external_wp_element_namespaceObject.useCallback)(value => {
    setAttributes({
      preload: value
    });
  }, []);
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
    onChange: toggleFactory.autoplay,
    checked: autoplay,
    help: getAutoplayHelp
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
    onChange: toggleFactory.loop,
    checked: loop
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
    onChange: toggleFactory.muted,
    checked: muted
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
    onChange: toggleFactory.controls,
    checked: controls
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
    onChange: toggleFactory.playsInline,
    checked: playsInline
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
    value: preload,
    onChange: onChangePreload,
    options: options,
    hideCancelButton: true
  }));
};

/* harmony default export */ var edit_common_settings = (VideoSettings);

;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js


/**
 * WordPress dependencies
 */

const media = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"
}));
/* harmony default export */ var library_media = (media);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks-editor.js


/**
 * WordPress dependencies
 */







const ALLOWED_TYPES = ['text/vtt'];
const DEFAULT_KIND = 'subtitles';
const KIND_OPTIONS = [{
  label: (0,external_wp_i18n_namespaceObject.__)('Subtitles'),
  value: 'subtitles'
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Captions'),
  value: 'captions'
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Descriptions'),
  value: 'descriptions'
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Chapters'),
  value: 'chapters'
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Metadata'),
  value: 'metadata'
}];
const captionIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
  width: "18",
  height: "14",
  viewBox: "0 0 18 14",
  role: "img",
  fill: "none"
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
  x: "0.75",
  y: "0.75",
  width: "16.5",
  height: "12.5",
  rx: "1.25",
  stroke: "black",
  strokeWidth: "1.5",
  fill: "none"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M3 7H15",
  stroke: "black",
  strokeWidth: "1.5"
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
  d: "M3 10L15 10",
  stroke: "black",
  strokeWidth: "1.5"
}));

function TrackList(_ref) {
  let {
    tracks,
    onEditPress
  } = _ref;
  let content;

  if (tracks.length === 0) {
    content = (0,external_wp_element_namespaceObject.createElement)("p", {
      className: "block-library-video-tracks-editor__tracks-informative-message"
    }, (0,external_wp_i18n_namespaceObject.__)('Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'));
  } else {
    content = tracks.map((track, index) => {
      return (0,external_wp_element_namespaceObject.createElement)("div", {
        key: index,
        className: "block-library-video-tracks-editor__track-list-track"
      }, (0,external_wp_element_namespaceObject.createElement)("span", null, track.label, " "), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        variant: "tertiary",
        onClick: () => onEditPress(index),
        "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
        /* translators: %s: Label of the video text track e.g: "French subtitles" */
        (0,external_wp_i18n_namespaceObject.__)('Edit %s'), track.label)
      }, (0,external_wp_i18n_namespaceObject.__)('Edit')));
    });
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
    label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
    className: "block-library-video-tracks-editor__track-list"
  }, content);
}

function SingleTrackEditor(_ref2) {
  let {
    track,
    onChange,
    onClose,
    onRemove
  } = _ref2;
  const {
    src = '',
    label = '',
    srcLang = '',
    kind = DEFAULT_KIND
  } = track;
  const fileName = src.startsWith('blob:') ? '' : (0,external_wp_url_namespaceObject.getFilename)(src) || '';
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "block-library-video-tracks-editor__single-track-editor"
  }, (0,external_wp_element_namespaceObject.createElement)("span", {
    className: "block-library-video-tracks-editor__single-track-editor-edit-track-label"
  }, (0,external_wp_i18n_namespaceObject.__)('Edit track')), (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('File'), ": ", (0,external_wp_element_namespaceObject.createElement)("b", null, fileName)), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "block-library-video-tracks-editor__single-track-editor-label-language"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl
  /* eslint-disable jsx-a11y/no-autofocus */
  , {
    autoFocus: true
    /* eslint-enable jsx-a11y/no-autofocus */
    ,
    onChange: newLabel => onChange({ ...track,
      label: newLabel
    }),
    label: (0,external_wp_i18n_namespaceObject.__)('Label'),
    value: label,
    help: (0,external_wp_i18n_namespaceObject.__)('Title of track')
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
    onChange: newSrcLang => onChange({ ...track,
      srcLang: newSrcLang
    }),
    label: (0,external_wp_i18n_namespaceObject.__)('Source language'),
    value: srcLang,
    help: (0,external_wp_i18n_namespaceObject.__)('Language tag (en, fr, etc.)')
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
    className: "block-library-video-tracks-editor__single-track-editor-kind-select",
    options: KIND_OPTIONS,
    value: kind,
    label: (0,external_wp_i18n_namespaceObject.__)('Kind'),
    onChange: newKind => {
      onChange({ ...track,
        kind: newKind
      });
    }
  }), (0,external_wp_element_namespaceObject.createElement)("div", {
    className: "block-library-video-tracks-editor__single-track-editor-buttons-container"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    variant: "secondary",
    onClick: () => {
      const changes = {};
      let hasChanges = false;

      if (label === '') {
        changes.label = (0,external_wp_i18n_namespaceObject.__)('English');
        hasChanges = true;
      }

      if (srcLang === '') {
        changes.srcLang = 'en';
        hasChanges = true;
      }

      if (track.kind === undefined) {
        changes.kind = DEFAULT_KIND;
        hasChanges = true;
      }

      if (hasChanges) {
        onChange({ ...track,
          ...changes
        });
      }

      onClose();
    }
  }, (0,external_wp_i18n_namespaceObject.__)('Close')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    isDestructive: true,
    variant: "link",
    onClick: onRemove
  }, (0,external_wp_i18n_namespaceObject.__)('Remove track')))));
}

function TracksEditor(_ref3) {
  let {
    tracks = [],
    onChange
  } = _ref3;
  const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload;
  }, []);
  const [trackBeingEdited, setTrackBeingEdited] = (0,external_wp_element_namespaceObject.useState)(null);

  if (!mediaUpload) {
    return null;
  }

  return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, {
    contentClassName: "block-library-video-tracks-editor",
    renderToggle: _ref4 => {
      let {
        isOpen,
        onToggle
      } = _ref4;
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
        label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
        showTooltip: true,
        "aria-expanded": isOpen,
        "aria-haspopup": "true",
        onClick: onToggle,
        icon: captionIcon
      });
    },
    renderContent: _ref5 => {
      let {} = _ref5;

      if (trackBeingEdited !== null) {
        return (0,external_wp_element_namespaceObject.createElement)(SingleTrackEditor, {
          track: tracks[trackBeingEdited],
          onChange: newTrack => {
            const newTracks = [...tracks];
            newTracks[trackBeingEdited] = newTrack;
            onChange(newTracks);
          },
          onClose: () => setTrackBeingEdited(null),
          onRemove: () => {
            onChange(tracks.filter((_track, index) => index !== trackBeingEdited));
            setTrackBeingEdited(null);
          }
        });
      }

      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, (0,external_wp_element_namespaceObject.createElement)(TrackList, {
        tracks: tracks,
        onEditPress: setTrackBeingEdited
      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
        className: "block-library-video-tracks-editor__add-tracks-container",
        label: (0,external_wp_i18n_namespaceObject.__)('Add tracks')
      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUpload, {
        onSelect: _ref6 => {
          let {
            url
          } = _ref6;
          const trackIndex = tracks.length;
          onChange([...tracks, {
            src: url
          }]);
          setTrackBeingEdited(trackIndex);
        },
        allowedTypes: ALLOWED_TYPES,
        render: _ref7 => {
          let {
            open
          } = _ref7;
          return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
            icon: library_media,
            onClick: open
          }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library'));
        }
      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormFileUpload, {
        onChange: event => {
          const files = event.target.files;
          const trackIndex = tracks.length;
          mediaUpload({
            allowedTypes: ALLOWED_TYPES,
            filesList: files,
            onFileChange: _ref8 => {
              let [{
                url
              }] = _ref8;
              const newTracks = [...tracks];

              if (!newTracks[trackIndex]) {
                newTracks[trackIndex] = {};
              }

              newTracks[trackIndex] = { ...tracks[trackIndex],
                src: url
              };
              onChange(newTracks);
              setTrackBeingEdited(trackIndex);
            }
          });
        },
        accept: ".vtt,text/vtt",
        render: _ref9 => {
          let {
            openFileDialog
          } = _ref9;
          return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
            icon: library_upload,
            onClick: () => {
              openFileDialog();
            }
          }, (0,external_wp_i18n_namespaceObject.__)('Upload'));
        }
      })))));
    }
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks.js


function Tracks(_ref) {
  let {
    tracks = []
  } = _ref;
  return tracks.map(track => {
    return (0,external_wp_element_namespaceObject.createElement)("track", _extends({
      key: track.src
    }, track));
  });
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit.js


/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */





const video_edit_ALLOWED_MEDIA_TYPES = ['video'];
const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];

function VideoEdit(_ref) {
  let {
    isSelected,
    noticeUI,
    attributes,
    className,
    setAttributes,
    insertBlocksAfter,
    onReplace,
    noticeOperations
  } = _ref;
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(VideoEdit);
  const videoPlayer = (0,external_wp_element_namespaceObject.useRef)();
  const posterImageButton = (0,external_wp_element_namespaceObject.useRef)();
  const {
    id,
    caption,
    controls,
    poster,
    src,
    tracks
  } = attributes;
  const isTemporaryVideo = !id && (0,external_wp_blob_namespaceObject.isBlobURL)(src);
  const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!id && (0,external_wp_blob_namespaceObject.isBlobURL)(src)) {
      const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(src);

      if (file) {
        mediaUpload({
          filesList: [file],
          onFileChange: _ref2 => {
            let [{
              url
            }] = _ref2;
            setAttributes({
              src: url
            });
          },
          onError: message => {
            noticeOperations.createErrorNotice(message);
          },
          allowedTypes: video_edit_ALLOWED_MEDIA_TYPES
        });
      }
    }
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Placeholder may be rendered.
    if (videoPlayer.current) {
      videoPlayer.current.load();
    }
  }, [poster]);

  function onSelectVideo(media) {
    var _media$image, _media$image2;

    if (!media || !media.url) {
      // In this case there was an error
      // previous attributes should be removed
      // because they may be temporary blob urls.
      setAttributes({
        src: undefined,
        id: undefined,
        poster: undefined
      });
      return;
    } // Sets the block's attribute and updates the edit component from the
    // selected media.


    setAttributes({
      src: media.url,
      id: media.id,
      poster: ((_media$image = media.image) === null || _media$image === void 0 ? void 0 : _media$image.src) !== media.icon ? (_media$image2 = media.image) === null || _media$image2 === void 0 ? void 0 : _media$image2.src : undefined
    });
  }

  function onSelectURL(newSrc) {
    if (newSrc !== src) {
      // Check if there's an embed block that handles this URL.
      const embedBlock = createUpgradedEmbedBlock({
        attributes: {
          url: newSrc
        }
      });

      if (undefined !== embedBlock) {
        onReplace(embedBlock);
        return;
      }

      setAttributes({
        src: newSrc,
        id: undefined,
        poster: undefined
      });
    }
  }

  function onUploadError(message) {
    noticeOperations.removeAllNotices();
    noticeOperations.createErrorNotice(message);
  }

  const classes = classnames_default()(className, {
    'is-transient': isTemporaryVideo
  });
  const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
    className: classes
  });

  if (!src) {
    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
        icon: library_video
      }),
      onSelect: onSelectVideo,
      onSelectURL: onSelectURL,
      accept: "video/*",
      allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
      value: attributes,
      notices: noticeUI,
      onError: onUploadError
    }));
  }

  function onSelectPoster(image) {
    setAttributes({
      poster: image.url
    });
  }

  function onRemovePoster() {
    setAttributes({
      poster: undefined
    }); // Move focus back to the Media Upload button.

    posterImageButton.current.focus();
  }

  const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "block"
  }, (0,external_wp_element_namespaceObject.createElement)(TracksEditor, {
    tracks: tracks,
    onChange: newTracks => {
      setAttributes({
        tracks: newTracks
      });
    }
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
    group: "other"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
    mediaId: id,
    mediaURL: src,
    allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
    accept: "video/*",
    onSelect: onSelectVideo,
    onSelectURL: onSelectURL,
    onError: onUploadError
  })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Video settings')
  }, (0,external_wp_element_namespaceObject.createElement)(edit_common_settings, {
    setAttributes: setAttributes,
    attributes: attributes
  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
    className: "editor-video-poster-control"
  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, (0,external_wp_i18n_namespaceObject.__)('Poster image')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUpload, {
    title: (0,external_wp_i18n_namespaceObject.__)('Select poster image'),
    onSelect: onSelectPoster,
    allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
    render: _ref3 => {
      let {
        open
      } = _ref3;
      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
        variant: "primary",
        onClick: open,
        ref: posterImageButton,
        "aria-describedby": videoPosterDescription
      }, !poster ? (0,external_wp_i18n_namespaceObject.__)('Select') : (0,external_wp_i18n_namespaceObject.__)('Replace'));
    }
  }), (0,external_wp_element_namespaceObject.createElement)("p", {
    id: videoPosterDescription,
    hidden: true
  }, poster ? (0,external_wp_i18n_namespaceObject.sprintf)(
  /* translators: %s: poster image URL. */
  (0,external_wp_i18n_namespaceObject.__)('The current poster image url is %s'), poster) : (0,external_wp_i18n_namespaceObject.__)('There is no poster image currently selected')), !!poster && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
    onClick: onRemovePoster,
    variant: "tertiary"
  }, (0,external_wp_i18n_namespaceObject.__)('Remove')))))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, {
    isDisabled: !isSelected
  }, (0,external_wp_element_namespaceObject.createElement)("video", {
    controls: controls,
    poster: poster,
    src: src,
    ref: videoPlayer
  }, (0,external_wp_element_namespaceObject.createElement)(Tracks, {
    tracks: tracks
  }))), isTemporaryVideo && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
    tagName: "figcaption",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Video caption text'),
    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
    value: caption,
    onChange: value => setAttributes({
      caption: value
    }),
    inlineToolbar: true,
    __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
  })));
}

/* harmony default export */ var video_edit = ((0,external_wp_components_namespaceObject.withNotices)(VideoEdit));

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/save.js


/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


function video_save_save(_ref) {
  let {
    attributes
  } = _ref;
  const {
    autoplay,
    caption,
    controls,
    loop,
    muted,
    poster,
    preload,
    src,
    playsInline,
    tracks
  } = attributes;
  return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), src && (0,external_wp_element_namespaceObject.createElement)("video", {
    autoPlay: autoplay,
    controls: controls,
    loop: loop,
    muted: muted,
    poster: poster,
    preload: preload !== 'metadata' ? preload : undefined,
    src: src,
    playsInline: playsInline
  }, (0,external_wp_element_namespaceObject.createElement)(Tracks, {
    tracks: tracks
  })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
    tagName: "figcaption",
    value: caption
  }));
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/transforms.js
/**
 * WordPress dependencies
 */


const video_transforms_transforms = {
  from: [{
    type: 'files',

    isMatch(files) {
      return files.length === 1 && files[0].type.indexOf('video/') === 0;
    },

    transform(files) {
      const file = files[0]; // We don't need to upload the media directly here
      // It's already done as part of the `componentDidMount`
      // in the video block

      const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
        src: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
      });
      return block;
    }

  }, {
    type: 'shortcode',
    tag: 'video',
    attributes: {
      src: {
        type: 'string',
        shortcode: _ref => {
          let {
            named: {
              src,
              mp4,
              m4v,
              webm,
              ogv,
              flv
            }
          } = _ref;
          return src || mp4 || m4v || webm || ogv || flv;
        }
      },
      poster: {
        type: 'string',
        shortcode: _ref2 => {
          let {
            named: {
              poster
            }
          } = _ref2;
          return poster;
        }
      },
      loop: {
        type: 'string',
        shortcode: _ref3 => {
          let {
            named: {
              loop
            }
          } = _ref3;
          return loop;
        }
      },
      autoplay: {
        type: 'string',
        shortcode: _ref4 => {
          let {
            named: {
              autoplay
            }
          } = _ref4;
          return autoplay;
        }
      },
      preload: {
        type: 'string',
        shortcode: _ref5 => {
          let {
            named: {
              preload
            }
          } = _ref5;
          return preload;
        }
      }
    }
  }]
};
/* harmony default export */ var video_transforms = (video_transforms_transforms);

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const video_metadata = {
  $schema: "https://schemas.wp.org/trunk/block.json",
  apiVersion: 2,
  name: "core/video",
  title: "Video",
  category: "media",
  description: "Embed a video from your media library or upload a new one.",
  keywords: ["movie"],
  textdomain: "default",
  attributes: {
    autoplay: {
      type: "boolean",
      source: "attribute",
      selector: "video",
      attribute: "autoplay"
    },
    caption: {
      type: "string",
      source: "html",
      selector: "figcaption"
    },
    controls: {
      type: "boolean",
      source: "attribute",
      selector: "video",
      attribute: "controls",
      "default": true
    },
    id: {
      type: "number"
    },
    loop: {
      type: "boolean",
      source: "attribute",
      selector: "video",
      attribute: "loop"
    },
    muted: {
      type: "boolean",
      source: "attribute",
      selector: "video",
      attribute: "muted"
    },
    poster: {
      type: "string",
      source: "attribute",
      selector: "video",
      attribute: "poster"
    },
    preload: {
      type: "string",
      source: "attribute",
      selector: "video",
      attribute: "preload",
      "default": "metadata"
    },
    src: {
      type: "string",
      source: "attribute",
      selector: "video",
      attribute: "src"
    },
    playsInline: {
      type: "boolean",
      source: "attribute",
      selector: "video",
      attribute: "playsinline"
    },
    tracks: {
      type: "array",
      items: {
        type: "object"
      },
      "default": []
    }
  },
  supports: {
    anchor: true,
    align: true
  },
  editorStyle: "wp-block-video-editor",
  style: "wp-block-video"
};


const {
  name: video_name
} = video_metadata;

const video_settings = {
  icon: library_video,
  example: {
    attributes: {
      src: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',
      // translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.
      caption: (0,external_wp_i18n_namespaceObject.__)('Wood thrush singing in Central Park, NYC.')
    }
  },
  transforms: video_transforms,
  edit: video_edit,
  save: video_save_save
};

;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */






























































































/**
 * Function to register an individual block.
 *
 * @param {Object} block The block to be registered.
 *
 */

const registerBlock = block => {
  if (!block) {
    return;
  }

  const {
    metadata,
    settings,
    name
  } = block;
  (0,external_wp_blocks_namespaceObject.registerBlockType)({
    name,
    ...metadata
  }, settings);
};
/**
 * Function to get all the core blocks in an array.
 *
 * @example
 * ```js
 * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
 *
 * const coreBlocks = __experimentalGetCoreBlocks();
 * ```
 */


const __experimentalGetCoreBlocks = () => [// Common blocks are grouped at the top to prioritize their display
// in various contexts — like the inserter and auto-complete components.
build_module_paragraph_namespaceObject, build_module_image_namespaceObject, build_module_heading_namespaceObject, build_module_gallery_namespaceObject, build_module_list_namespaceObject, build_module_quote_namespaceObject, // Register all remaining core blocks.
archives_namespaceObject, build_module_audio_namespaceObject, build_module_button_namespaceObject, build_module_buttons_namespaceObject, build_module_calendar_namespaceObject, categories_namespaceObject, window.wp && window.wp.oldEditor ? freeform_namespaceObject : null, // Only add the classic block in WP Context.
build_module_code_namespaceObject, build_module_column_namespaceObject, build_module_columns_namespaceObject, build_module_cover_namespaceObject, embed_namespaceObject, build_module_file_namespaceObject, build_module_group_namespaceObject, build_module_html_namespaceObject, latest_comments_namespaceObject, latest_posts_namespaceObject, media_text_namespaceObject, missing_namespaceObject, build_module_more_namespaceObject, nextpage_namespaceObject, page_list_namespaceObject, pattern_namespaceObject, build_module_preformatted_namespaceObject, build_module_pullquote_namespaceObject, block_namespaceObject, build_module_rss_namespaceObject, build_module_search_namespaceObject, build_module_separator_namespaceObject, build_module_shortcode_namespaceObject, social_link_namespaceObject, social_links_namespaceObject, spacer_namespaceObject, build_module_table_namespaceObject, // tableOfContents,
tag_cloud_namespaceObject, text_columns_namespaceObject, build_module_verse_namespaceObject, build_module_video_namespaceObject, // theme blocks
build_module_navigation_namespaceObject, navigation_link_namespaceObject, navigation_submenu_namespaceObject, build_module_site_logo_namespaceObject, site_title_namespaceObject, site_tagline_namespaceObject, query_namespaceObject, template_part_namespaceObject, avatar_namespaceObject, build_module_post_title_namespaceObject, build_module_post_excerpt_namespaceObject, build_module_post_featured_image_namespaceObject, build_module_post_content_namespaceObject, build_module_post_author_namespaceObject, build_module_post_date_namespaceObject, build_module_post_terms_namespaceObject, post_navigation_link_namespaceObject, post_template_namespaceObject, build_module_query_pagination_namespaceObject, build_module_query_pagination_next_namespaceObject, build_module_query_pagination_numbers_namespaceObject, build_module_query_pagination_previous_namespaceObject, query_no_results_namespaceObject, read_more_namespaceObject, build_module_comment_author_name_namespaceObject, build_module_comment_content_namespaceObject, comment_date_namespaceObject, build_module_comment_edit_link_namespaceObject, build_module_comment_reply_link_namespaceObject, comment_template_namespaceObject, comments_title_namespaceObject, comments_query_loop_namespaceObject, comments_pagination_namespaceObject, comments_pagination_next_namespaceObject, comments_pagination_numbers_namespaceObject, comments_pagination_previous_namespaceObject, build_module_post_comments_namespaceObject, build_module_post_comments_form_namespaceObject, home_link_namespaceObject, loginout_namespaceObject, build_module_term_description_namespaceObject, build_module_query_title_namespaceObject, post_author_biography_namespaceObject];
/**
 * Function to register core blocks provided by the block editor.
 *
 * @param {Array} blocks An optional array of the core blocks being registered.
 *
 * @example
 * ```js
 * import { registerCoreBlocks } from '@wordpress/block-library';
 *
 * registerCoreBlocks();
 * ```
 */

const registerCoreBlocks = function () {
  let blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __experimentalGetCoreBlocks();
  blocks.forEach(registerBlock);
  (0,external_wp_blocks_namespaceObject.setDefaultBlockName)(paragraph_name);

  if (window.wp && window.wp.oldEditor) {
    (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)(freeform_name);
  }

  (0,external_wp_blocks_namespaceObject.setUnregisteredTypeHandlerName)(missing_name);
  (0,external_wp_blocks_namespaceObject.setGroupingBlockName)(group_name);
};
/**
 * Function to register experimental core blocks depending on editor settings.
 *
 * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.
 * @example
 * ```js
 * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
 *
 * __experimentalRegisterExperimentalCoreBlocks( settings );
 * ```
 */

const __experimentalRegisterExperimentalCoreBlocks =  false ? 0 : undefined;

}();
(window.wp = window.wp || {}).blockLibrary = __webpack_exports__;
/******/ })()
;