[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/js/dist/ -> block-library.js (source)

   1  /******/ (function() { // webpackBootstrap
   2  /******/     var __webpack_modules__ = ({
   3  
   4  /***/ 3827:
   5  /***/ (function(module, exports) {
   6  
   7  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
   8    Copyright (c) 2018 Jed Watson.
   9    Licensed under the MIT License (MIT), see
  10    http://jedwatson.github.io/classnames
  11  */
  12  /* global define */
  13  
  14  (function () {
  15      'use strict';
  16  
  17      var classNames = (function () {
  18          // don't inherit from Object so we can skip hasOwnProperty check later
  19          // http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232
  20  		function StorageObject() {}
  21          StorageObject.prototype = Object.create(null);
  22  
  23  		function _parseArray (resultSet, array) {
  24              var length = array.length;
  25  
  26              for (var i = 0; i < length; ++i) {
  27                  _parse(resultSet, array[i]);
  28              }
  29          }
  30  
  31          var hasOwn = {}.hasOwnProperty;
  32  
  33  		function _parseNumber (resultSet, num) {
  34              resultSet[num] = true;
  35          }
  36  
  37  		function _parseObject (resultSet, object) {
  38              if (object.toString === Object.prototype.toString) {
  39                  for (var k in object) {
  40                      if (hasOwn.call(object, k)) {
  41                          // set value to false instead of deleting it to avoid changing object structure
  42                          // https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions
  43                          resultSet[k] = !!object[k];
  44                      }
  45                  }
  46              } else {
  47                  resultSet[object.toString()] = true;
  48              }
  49          }
  50  
  51          var SPACE = /\s+/;
  52  		function _parseString (resultSet, str) {
  53              var array = str.split(SPACE);
  54              var length = array.length;
  55  
  56              for (var i = 0; i < length; ++i) {
  57                  resultSet[array[i]] = true;
  58              }
  59          }
  60  
  61  		function _parse (resultSet, arg) {
  62              if (!arg) return;
  63              var argType = typeof arg;
  64  
  65              // 'foo bar'
  66              if (argType === 'string') {
  67                  _parseString(resultSet, arg);
  68  
  69              // ['foo', 'bar', ...]
  70              } else if (Array.isArray(arg)) {
  71                  _parseArray(resultSet, arg);
  72  
  73              // { 'foo': true, ... }
  74              } else if (argType === 'object') {
  75                  _parseObject(resultSet, arg);
  76  
  77              // '130'
  78              } else if (argType === 'number') {
  79                  _parseNumber(resultSet, arg);
  80              }
  81          }
  82  
  83  		function _classNames () {
  84              // don't leak arguments
  85              // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments
  86              var len = arguments.length;
  87              var args = Array(len);
  88              for (var i = 0; i < len; i++) {
  89                  args[i] = arguments[i];
  90              }
  91  
  92              var classSet = new StorageObject();
  93              _parseArray(classSet, args);
  94  
  95              var list = [];
  96  
  97              for (var k in classSet) {
  98                  if (classSet[k]) {
  99                      list.push(k)
 100                  }
 101              }
 102  
 103              return list.join(' ');
 104          }
 105  
 106          return _classNames;
 107      })();
 108  
 109      if ( true && module.exports) {
 110          classNames.default = classNames;
 111          module.exports = classNames;
 112      } else if (true) {
 113          // register as 'classnames', consistent with npm package name
 114          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
 115              return classNames;
 116          }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
 117          __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 118      } else {}
 119  }());
 120  
 121  
 122  /***/ }),
 123  
 124  /***/ 4403:
 125  /***/ (function(module, exports) {
 126  
 127  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 128    Copyright (c) 2018 Jed Watson.
 129    Licensed under the MIT License (MIT), see
 130    http://jedwatson.github.io/classnames
 131  */
 132  /* global define */
 133  
 134  (function () {
 135      'use strict';
 136  
 137      var hasOwn = {}.hasOwnProperty;
 138  
 139  	function classNames() {
 140          var classes = [];
 141  
 142          for (var i = 0; i < arguments.length; i++) {
 143              var arg = arguments[i];
 144              if (!arg) continue;
 145  
 146              var argType = typeof arg;
 147  
 148              if (argType === 'string' || argType === 'number') {
 149                  classes.push(arg);
 150              } else if (Array.isArray(arg)) {
 151                  if (arg.length) {
 152                      var inner = classNames.apply(null, arg);
 153                      if (inner) {
 154                          classes.push(inner);
 155                      }
 156                  }
 157              } else if (argType === 'object') {
 158                  if (arg.toString === Object.prototype.toString) {
 159                      for (var key in arg) {
 160                          if (hasOwn.call(arg, key) && arg[key]) {
 161                              classes.push(key);
 162                          }
 163                      }
 164                  } else {
 165                      classes.push(arg.toString());
 166                  }
 167              }
 168          }
 169  
 170          return classes.join(' ');
 171      }
 172  
 173      if ( true && module.exports) {
 174          classNames.default = classNames;
 175          module.exports = classNames;
 176      } else if (true) {
 177          // register as 'classnames', consistent with npm package name
 178          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
 179              return classNames;
 180          }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
 181          __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 182      } else {}
 183  }());
 184  
 185  
 186  /***/ }),
 187  
 188  /***/ 5027:
 189  /***/ (function(module) {
 190  
 191  /*! Fast Average Color | © 2019 Denis Seleznev | MIT License | https://github.com/hcodes/fast-average-color/ */
 192  (function (global, factory) {
 193       true ? module.exports = factory() :
 194      0;
 195  }(this, (function () { 'use strict';
 196  
 197  function _classCallCheck(instance, Constructor) {
 198    if (!(instance instanceof Constructor)) {
 199      throw new TypeError("Cannot call a class as a function");
 200    }
 201  }
 202  
 203  function _defineProperties(target, props) {
 204    for (var i = 0; i < props.length; i++) {
 205      var descriptor = props[i];
 206      descriptor.enumerable = descriptor.enumerable || false;
 207      descriptor.configurable = true;
 208      if ("value" in descriptor) descriptor.writable = true;
 209      Object.defineProperty(target, descriptor.key, descriptor);
 210    }
 211  }
 212  
 213  function _createClass(Constructor, protoProps, staticProps) {
 214    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
 215    if (staticProps) _defineProperties(Constructor, staticProps);
 216    return Constructor;
 217  }
 218  
 219  function _slicedToArray(arr, i) {
 220    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
 221  }
 222  
 223  function _arrayWithHoles(arr) {
 224    if (Array.isArray(arr)) return arr;
 225  }
 226  
 227  function _iterableToArrayLimit(arr, i) {
 228    var _arr = [];
 229    var _n = true;
 230    var _d = false;
 231    var _e = undefined;
 232  
 233    try {
 234      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
 235        _arr.push(_s.value);
 236  
 237        if (i && _arr.length === i) break;
 238      }
 239    } catch (err) {
 240      _d = true;
 241      _e = err;
 242    } finally {
 243      try {
 244        if (!_n && _i["return"] != null) _i["return"]();
 245      } finally {
 246        if (_d) throw _e;
 247      }
 248    }
 249  
 250    return _arr;
 251  }
 252  
 253  function _nonIterableRest() {
 254    throw new TypeError("Invalid attempt to destructure non-iterable instance");
 255  }
 256  
 257  var FastAverageColor =
 258  /*#__PURE__*/
 259  function () {
 260    function FastAverageColor() {
 261      _classCallCheck(this, FastAverageColor);
 262    }
 263  
 264    _createClass(FastAverageColor, [{
 265      key: "getColorAsync",
 266  
 267      /**
 268       * Get asynchronously the average color from not loaded image.
 269       *
 270       * @param {HTMLImageElement} resource
 271       * @param {Function} callback
 272       * @param {Object|null} [options]
 273       * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]
 274       * @param {*}      [options.data]
 275       * @param {string} [options.mode="speed"] "precision" or "speed"
 276       * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant"
 277       * @param {number} [options.step=1]
 278       * @param {number} [options.left=0]
 279       * @param {number} [options.top=0]
 280       * @param {number} [options.width=width of resource]
 281       * @param {number} [options.height=height of resource]
 282       */
 283      value: function getColorAsync(resource, callback, options) {
 284        if (resource.complete) {
 285          callback.call(resource, this.getColor(resource, options), options && options.data);
 286        } else {
 287          this._bindImageEvents(resource, callback, options);
 288        }
 289      }
 290      /**
 291       * Get the average color from images, videos and canvas.
 292       *
 293       * @param {HTMLImageElement|HTMLVideoElement|HTMLCanvasElement} resource
 294       * @param {Object|null} [options]
 295       * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]
 296       * @param {*}      [options.data]
 297       * @param {string} [options.mode="speed"] "precision" or "speed"
 298       * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant"
 299       * @param {number} [options.step=1]
 300       * @param {number} [options.left=0]
 301       * @param {number} [options.top=0]
 302       * @param {number} [options.width=width of resource]
 303       * @param {number} [options.height=height of resource]
 304       *
 305       * @returns {Object}
 306       */
 307  
 308    }, {
 309      key: "getColor",
 310      value: function getColor(resource, options) {
 311        options = options || {};
 312  
 313        var defaultColor = this._getDefaultColor(options),
 314            originalSize = this._getOriginalSize(resource),
 315            size = this._prepareSizeAndPosition(originalSize, options);
 316  
 317        var error = null,
 318            value = defaultColor;
 319  
 320        if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) {
 321          return this._prepareResult(defaultColor, new Error('FastAverageColor: Incorrect sizes.'));
 322        }
 323  
 324        if (!this._ctx) {
 325          this._canvas = this._makeCanvas();
 326          this._ctx = this._canvas.getContext && this._canvas.getContext('2d');
 327  
 328          if (!this._ctx) {
 329            return this._prepareResult(defaultColor, new Error('FastAverageColor: Canvas Context 2D is not supported in this browser.'));
 330          }
 331        }
 332  
 333        this._canvas.width = size.destWidth;
 334        this._canvas.height = size.destHeight;
 335  
 336        try {
 337          this._ctx.clearRect(0, 0, size.destWidth, size.destHeight);
 338  
 339          this._ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight);
 340  
 341          var bitmapData = this._ctx.getImageData(0, 0, size.destWidth, size.destHeight).data;
 342  
 343          value = this.getColorFromArray4(bitmapData, options);
 344        } catch (e) {
 345          // Security error, CORS
 346          // https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image
 347          error = e;
 348        }
 349  
 350        return this._prepareResult(value, error);
 351      }
 352      /**
 353       * Get the average color from a array when 1 pixel is 4 bytes.
 354       *
 355       * @param {Array|Uint8Array} arr
 356       * @param {Object} [options]
 357       * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant"
 358       * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]
 359       * @param {number} [options.step=1]
 360       *
 361       * @returns {Array} [red (0-255), green (0-255), blue (0-255), alpha (0-255)]
 362       */
 363  
 364    }, {
 365      key: "getColorFromArray4",
 366      value: function getColorFromArray4(arr, options) {
 367        options = options || {};
 368        var bytesPerPixel = 4,
 369            arrLength = arr.length;
 370  
 371        if (arrLength < bytesPerPixel) {
 372          return this._getDefaultColor(options);
 373        }
 374  
 375        var len = arrLength - arrLength % bytesPerPixel,
 376            preparedStep = (options.step || 1) * bytesPerPixel,
 377            algorithm = '_' + (options.algorithm || 'sqrt') + 'Algorithm';
 378  
 379        if (typeof this[algorithm] !== 'function') {
 380          throw new Error("FastAverageColor: ".concat(options.algorithm, " is unknown algorithm."));
 381        }
 382  
 383        return this[algorithm](arr, len, preparedStep);
 384      }
 385      /**
 386       * Destroy the instance.
 387       */
 388  
 389    }, {
 390      key: "destroy",
 391      value: function destroy() {
 392        delete this._canvas;
 393        delete this._ctx;
 394      }
 395    }, {
 396      key: "_getDefaultColor",
 397      value: function _getDefaultColor(options) {
 398        return this._getOption(options, 'defaultColor', [255, 255, 255, 255]);
 399      }
 400    }, {
 401      key: "_getOption",
 402      value: function _getOption(options, name, defaultValue) {
 403        return typeof options[name] === 'undefined' ? defaultValue : options[name];
 404      }
 405    }, {
 406      key: "_prepareSizeAndPosition",
 407      value: function _prepareSizeAndPosition(originalSize, options) {
 408        var srcLeft = this._getOption(options, 'left', 0),
 409            srcTop = this._getOption(options, 'top', 0),
 410            srcWidth = this._getOption(options, 'width', originalSize.width),
 411            srcHeight = this._getOption(options, 'height', originalSize.height),
 412            destWidth = srcWidth,
 413            destHeight = srcHeight;
 414  
 415        if (options.mode === 'precision') {
 416          return {
 417            srcLeft: srcLeft,
 418            srcTop: srcTop,
 419            srcWidth: srcWidth,
 420            srcHeight: srcHeight,
 421            destWidth: destWidth,
 422            destHeight: destHeight
 423          };
 424        }
 425  
 426        var maxSize = 100,
 427            minSize = 10;
 428        var factor;
 429  
 430        if (srcWidth > srcHeight) {
 431          factor = srcWidth / srcHeight;
 432          destWidth = maxSize;
 433          destHeight = Math.round(destWidth / factor);
 434        } else {
 435          factor = srcHeight / srcWidth;
 436          destHeight = maxSize;
 437          destWidth = Math.round(destHeight / factor);
 438        }
 439  
 440        if (destWidth > srcWidth || destHeight > srcHeight || destWidth < minSize || destHeight < minSize) {
 441          destWidth = srcWidth;
 442          destHeight = srcHeight;
 443        }
 444  
 445        return {
 446          srcLeft: srcLeft,
 447          srcTop: srcTop,
 448          srcWidth: srcWidth,
 449          srcHeight: srcHeight,
 450          destWidth: destWidth,
 451          destHeight: destHeight
 452        };
 453      }
 454    }, {
 455      key: "_simpleAlgorithm",
 456      value: function _simpleAlgorithm(arr, len, preparedStep) {
 457        var redTotal = 0,
 458            greenTotal = 0,
 459            blueTotal = 0,
 460            alphaTotal = 0,
 461            count = 0;
 462  
 463        for (var i = 0; i < len; i += preparedStep) {
 464          var alpha = arr[i + 3],
 465              red = arr[i] * alpha,
 466              green = arr[i + 1] * alpha,
 467              blue = arr[i + 2] * alpha;
 468          redTotal += red;
 469          greenTotal += green;
 470          blueTotal += blue;
 471          alphaTotal += alpha;
 472          count++;
 473        }
 474  
 475        return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0];
 476      }
 477    }, {
 478      key: "_sqrtAlgorithm",
 479      value: function _sqrtAlgorithm(arr, len, preparedStep) {
 480        var redTotal = 0,
 481            greenTotal = 0,
 482            blueTotal = 0,
 483            alphaTotal = 0,
 484            count = 0;
 485  
 486        for (var i = 0; i < len; i += preparedStep) {
 487          var red = arr[i],
 488              green = arr[i + 1],
 489              blue = arr[i + 2],
 490              alpha = arr[i + 3];
 491          redTotal += red * red * alpha;
 492          greenTotal += green * green * alpha;
 493          blueTotal += blue * blue * alpha;
 494          alphaTotal += alpha;
 495          count++;
 496        }
 497  
 498        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];
 499      }
 500    }, {
 501      key: "_dominantAlgorithm",
 502      value: function _dominantAlgorithm(arr, len, preparedStep) {
 503        var colorHash = {},
 504            divider = 24;
 505  
 506        for (var i = 0; i < len; i += preparedStep) {
 507          var red = arr[i],
 508              green = arr[i + 1],
 509              blue = arr[i + 2],
 510              alpha = arr[i + 3],
 511              key = Math.round(red / divider) + ',' + Math.round(green / divider) + ',' + Math.round(blue / divider);
 512  
 513          if (colorHash[key]) {
 514            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];
 515          } else {
 516            colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1];
 517          }
 518        }
 519  
 520        var buffer = Object.keys(colorHash).map(function (key) {
 521          return colorHash[key];
 522        }).sort(function (a, b) {
 523          var countA = a[4],
 524              countB = b[4];
 525          return countA > countB ? -1 : countA === countB ? 0 : 1;
 526        });
 527  
 528        var _buffer$ = _slicedToArray(buffer[0], 5),
 529            redTotal = _buffer$[0],
 530            greenTotal = _buffer$[1],
 531            blueTotal = _buffer$[2],
 532            alphaTotal = _buffer$[3],
 533            count = _buffer$[4];
 534  
 535        return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0];
 536      }
 537    }, {
 538      key: "_bindImageEvents",
 539      value: function _bindImageEvents(resource, callback, options) {
 540        var _this = this;
 541  
 542        options = options || {};
 543  
 544        var data = options && options.data,
 545            defaultColor = this._getDefaultColor(options),
 546            onload = function onload() {
 547          unbindEvents();
 548          callback.call(resource, _this.getColor(resource, options), data);
 549        },
 550            onerror = function onerror() {
 551          unbindEvents();
 552          callback.call(resource, _this._prepareResult(defaultColor, new Error('Image error')), data);
 553        },
 554            onabort = function onabort() {
 555          unbindEvents();
 556          callback.call(resource, _this._prepareResult(defaultColor, new Error('Image abort')), data);
 557        },
 558            unbindEvents = function unbindEvents() {
 559          resource.removeEventListener('load', onload);
 560          resource.removeEventListener('error', onerror);
 561          resource.removeEventListener('abort', onabort);
 562        };
 563  
 564        resource.addEventListener('load', onload);
 565        resource.addEventListener('error', onerror);
 566        resource.addEventListener('abort', onabort);
 567      }
 568    }, {
 569      key: "_prepareResult",
 570      value: function _prepareResult(value, error) {
 571        var rgb = value.slice(0, 3),
 572            rgba = [].concat(rgb, value[3] / 255),
 573            isDark = this._isDark(value);
 574  
 575        return {
 576          error: error,
 577          value: value,
 578          rgb: 'rgb(' + rgb.join(',') + ')',
 579          rgba: 'rgba(' + rgba.join(',') + ')',
 580          hex: this._arrayToHex(rgb),
 581          hexa: this._arrayToHex(value),
 582          isDark: isDark,
 583          isLight: !isDark
 584        };
 585      }
 586    }, {
 587      key: "_getOriginalSize",
 588      value: function _getOriginalSize(resource) {
 589        if (resource instanceof HTMLImageElement) {
 590          return {
 591            width: resource.naturalWidth,
 592            height: resource.naturalHeight
 593          };
 594        }
 595  
 596        if (resource instanceof HTMLVideoElement) {
 597          return {
 598            width: resource.videoWidth,
 599            height: resource.videoHeight
 600          };
 601        }
 602  
 603        return {
 604          width: resource.width,
 605          height: resource.height
 606        };
 607      }
 608    }, {
 609      key: "_toHex",
 610      value: function _toHex(num) {
 611        var str = num.toString(16);
 612        return str.length === 1 ? '0' + str : str;
 613      }
 614    }, {
 615      key: "_arrayToHex",
 616      value: function _arrayToHex(arr) {
 617        return '#' + arr.map(this._toHex).join('');
 618      }
 619    }, {
 620      key: "_isDark",
 621      value: function _isDark(color) {
 622        // http://www.w3.org/TR/AERT#color-contrast
 623        var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000;
 624        return result < 128;
 625      }
 626    }, {
 627      key: "_makeCanvas",
 628      value: function _makeCanvas() {
 629        return typeof window === 'undefined' ? new OffscreenCanvas(1, 1) : document.createElement('canvas');
 630      }
 631    }]);
 632  
 633    return FastAverageColor;
 634  }();
 635  
 636  return FastAverageColor;
 637  
 638  })));
 639  
 640  
 641  /***/ }),
 642  
 643  /***/ 9756:
 644  /***/ (function(module) {
 645  
 646  /**
 647   * Memize options object.
 648   *
 649   * @typedef MemizeOptions
 650   *
 651   * @property {number} [maxSize] Maximum size of the cache.
 652   */
 653  
 654  /**
 655   * Internal cache entry.
 656   *
 657   * @typedef MemizeCacheNode
 658   *
 659   * @property {?MemizeCacheNode|undefined} [prev] Previous node.
 660   * @property {?MemizeCacheNode|undefined} [next] Next node.
 661   * @property {Array<*>}                   args   Function arguments for cache
 662   *                                               entry.
 663   * @property {*}                          val    Function result.
 664   */
 665  
 666  /**
 667   * Properties of the enhanced function for controlling cache.
 668   *
 669   * @typedef MemizeMemoizedFunction
 670   *
 671   * @property {()=>void} clear Clear the cache.
 672   */
 673  
 674  /**
 675   * Accepts a function to be memoized, and returns a new memoized function, with
 676   * optional options.
 677   *
 678   * @template {Function} F
 679   *
 680   * @param {F}             fn        Function to memoize.
 681   * @param {MemizeOptions} [options] Options object.
 682   *
 683   * @return {F & MemizeMemoizedFunction} Memoized function.
 684   */
 685  function memize( fn, options ) {
 686      var size = 0;
 687  
 688      /** @type {?MemizeCacheNode|undefined} */
 689      var head;
 690  
 691      /** @type {?MemizeCacheNode|undefined} */
 692      var tail;
 693  
 694      options = options || {};
 695  
 696  	function memoized( /* ...args */ ) {
 697          var node = head,
 698              len = arguments.length,
 699              args, i;
 700  
 701          searchCache: while ( node ) {
 702              // Perform a shallow equality test to confirm that whether the node
 703              // under test is a candidate for the arguments passed. Two arrays
 704              // are shallowly equal if their length matches and each entry is
 705              // strictly equal between the two sets. Avoid abstracting to a
 706              // function which could incur an arguments leaking deoptimization.
 707  
 708              // Check whether node arguments match arguments length
 709              if ( node.args.length !== arguments.length ) {
 710                  node = node.next;
 711                  continue;
 712              }
 713  
 714              // Check whether node arguments match arguments values
 715              for ( i = 0; i < len; i++ ) {
 716                  if ( node.args[ i ] !== arguments[ i ] ) {
 717                      node = node.next;
 718                      continue searchCache;
 719                  }
 720              }
 721  
 722              // At this point we can assume we've found a match
 723  
 724              // Surface matched node to head if not already
 725              if ( node !== head ) {
 726                  // As tail, shift to previous. Must only shift if not also
 727                  // head, since if both head and tail, there is no previous.
 728                  if ( node === tail ) {
 729                      tail = node.prev;
 730                  }
 731  
 732                  // Adjust siblings to point to each other. If node was tail,
 733                  // this also handles new tail's empty `next` assignment.
 734                  /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
 735                  if ( node.next ) {
 736                      node.next.prev = node.prev;
 737                  }
 738  
 739                  node.next = head;
 740                  node.prev = null;
 741                  /** @type {MemizeCacheNode} */ ( head ).prev = node;
 742                  head = node;
 743              }
 744  
 745              // Return immediately
 746              return node.val;
 747          }
 748  
 749          // No cached value found. Continue to insertion phase:
 750  
 751          // Create a copy of arguments (avoid leaking deoptimization)
 752          args = new Array( len );
 753          for ( i = 0; i < len; i++ ) {
 754              args[ i ] = arguments[ i ];
 755          }
 756  
 757          node = {
 758              args: args,
 759  
 760              // Generate the result from original function
 761              val: fn.apply( null, args ),
 762          };
 763  
 764          // Don't need to check whether node is already head, since it would
 765          // have been returned above already if it was
 766  
 767          // Shift existing head down list
 768          if ( head ) {
 769              head.prev = node;
 770              node.next = head;
 771          } else {
 772              // If no head, follows that there's no tail (at initial or reset)
 773              tail = node;
 774          }
 775  
 776          // Trim tail if we're reached max size and are pending cache insertion
 777          if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
 778              tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
 779              /** @type {MemizeCacheNode} */ ( tail ).next = null;
 780          } else {
 781              size++;
 782          }
 783  
 784          head = node;
 785  
 786          return node.val;
 787      }
 788  
 789      memoized.clear = function() {
 790          head = null;
 791          tail = null;
 792          size = 0;
 793      };
 794  
 795      if ( false ) {}
 796  
 797      // Ignore reason: There's not a clear solution to create an intersection of
 798      // the function with additional properties, where the goal is to retain the
 799      // function signature of the incoming argument and add control properties
 800      // on the return value.
 801  
 802      // @ts-ignore
 803      return memoized;
 804  }
 805  
 806  module.exports = memize;
 807  
 808  
 809  /***/ })
 810  
 811  /******/     });
 812  /************************************************************************/
 813  /******/     // The module cache
 814  /******/     var __webpack_module_cache__ = {};
 815  /******/     
 816  /******/     // The require function
 817  /******/ 	function __webpack_require__(moduleId) {
 818  /******/         // Check if module is in cache
 819  /******/         var cachedModule = __webpack_module_cache__[moduleId];
 820  /******/         if (cachedModule !== undefined) {
 821  /******/             return cachedModule.exports;
 822  /******/         }
 823  /******/         // Create a new module (and put it into the cache)
 824  /******/         var module = __webpack_module_cache__[moduleId] = {
 825  /******/             // no module.id needed
 826  /******/             // no module.loaded needed
 827  /******/             exports: {}
 828  /******/         };
 829  /******/     
 830  /******/         // Execute the module function
 831  /******/         __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
 832  /******/     
 833  /******/         // Return the exports of the module
 834  /******/         return module.exports;
 835  /******/     }
 836  /******/     
 837  /************************************************************************/
 838  /******/     /* webpack/runtime/compat get default export */
 839  /******/     !function() {
 840  /******/         // getDefaultExport function for compatibility with non-harmony modules
 841  /******/         __webpack_require__.n = function(module) {
 842  /******/             var getter = module && module.__esModule ?
 843  /******/                 function() { return module['default']; } :
 844  /******/                 function() { return module; };
 845  /******/             __webpack_require__.d(getter, { a: getter });
 846  /******/             return getter;
 847  /******/         };
 848  /******/     }();
 849  /******/     
 850  /******/     /* webpack/runtime/define property getters */
 851  /******/     !function() {
 852  /******/         // define getter functions for harmony exports
 853  /******/         __webpack_require__.d = function(exports, definition) {
 854  /******/             for(var key in definition) {
 855  /******/                 if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
 856  /******/                     Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
 857  /******/                 }
 858  /******/             }
 859  /******/         };
 860  /******/     }();
 861  /******/     
 862  /******/     /* webpack/runtime/hasOwnProperty shorthand */
 863  /******/     !function() {
 864  /******/         __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
 865  /******/     }();
 866  /******/     
 867  /******/     /* webpack/runtime/make namespace object */
 868  /******/     !function() {
 869  /******/         // define __esModule on exports
 870  /******/         __webpack_require__.r = function(exports) {
 871  /******/             if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
 872  /******/                 Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
 873  /******/             }
 874  /******/             Object.defineProperty(exports, '__esModule', { value: true });
 875  /******/         };
 876  /******/     }();
 877  /******/     
 878  /************************************************************************/
 879  var __webpack_exports__ = {};
 880  // This entry need to be wrapped in an IIFE because it need to be in strict mode.
 881  !function() {
 882  "use strict";
 883  // ESM COMPAT FLAG
 884  __webpack_require__.r(__webpack_exports__);
 885  
 886  // EXPORTS
 887  __webpack_require__.d(__webpack_exports__, {
 888    "__experimentalGetCoreBlocks": function() { return /* binding */ __experimentalGetCoreBlocks; },
 889    "__experimentalRegisterExperimentalCoreBlocks": function() { return /* binding */ __experimentalRegisterExperimentalCoreBlocks; },
 890    "registerCoreBlocks": function() { return /* binding */ registerCoreBlocks; }
 891  });
 892  
 893  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/archives/index.js
 894  var archives_namespaceObject = {};
 895  __webpack_require__.r(archives_namespaceObject);
 896  __webpack_require__.d(archives_namespaceObject, {
 897    "metadata": function() { return metadata; },
 898    "name": function() { return archives_name; },
 899    "settings": function() { return settings; }
 900  });
 901  
 902  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/avatar/index.js
 903  var avatar_namespaceObject = {};
 904  __webpack_require__.r(avatar_namespaceObject);
 905  __webpack_require__.d(avatar_namespaceObject, {
 906    "metadata": function() { return avatar_metadata; },
 907    "name": function() { return avatar_name; },
 908    "settings": function() { return avatar_settings; }
 909  });
 910  
 911  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/audio/index.js
 912  var build_module_audio_namespaceObject = {};
 913  __webpack_require__.r(build_module_audio_namespaceObject);
 914  __webpack_require__.d(build_module_audio_namespaceObject, {
 915    "metadata": function() { return audio_metadata; },
 916    "name": function() { return audio_name; },
 917    "settings": function() { return audio_settings; }
 918  });
 919  
 920  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/button/index.js
 921  var build_module_button_namespaceObject = {};
 922  __webpack_require__.r(build_module_button_namespaceObject);
 923  __webpack_require__.d(build_module_button_namespaceObject, {
 924    "metadata": function() { return button_metadata; },
 925    "name": function() { return button_name; },
 926    "settings": function() { return button_settings; }
 927  });
 928  
 929  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/buttons/index.js
 930  var build_module_buttons_namespaceObject = {};
 931  __webpack_require__.r(build_module_buttons_namespaceObject);
 932  __webpack_require__.d(build_module_buttons_namespaceObject, {
 933    "metadata": function() { return buttons_metadata; },
 934    "name": function() { return buttons_name; },
 935    "settings": function() { return buttons_settings; }
 936  });
 937  
 938  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/calendar/index.js
 939  var build_module_calendar_namespaceObject = {};
 940  __webpack_require__.r(build_module_calendar_namespaceObject);
 941  __webpack_require__.d(build_module_calendar_namespaceObject, {
 942    "metadata": function() { return calendar_metadata; },
 943    "name": function() { return calendar_name; },
 944    "settings": function() { return calendar_settings; }
 945  });
 946  
 947  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/categories/index.js
 948  var categories_namespaceObject = {};
 949  __webpack_require__.r(categories_namespaceObject);
 950  __webpack_require__.d(categories_namespaceObject, {
 951    "metadata": function() { return categories_metadata; },
 952    "name": function() { return categories_name; },
 953    "settings": function() { return categories_settings; }
 954  });
 955  
 956  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/freeform/index.js
 957  var freeform_namespaceObject = {};
 958  __webpack_require__.r(freeform_namespaceObject);
 959  __webpack_require__.d(freeform_namespaceObject, {
 960    "metadata": function() { return freeform_metadata; },
 961    "name": function() { return freeform_name; },
 962    "settings": function() { return freeform_settings; }
 963  });
 964  
 965  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/code/index.js
 966  var build_module_code_namespaceObject = {};
 967  __webpack_require__.r(build_module_code_namespaceObject);
 968  __webpack_require__.d(build_module_code_namespaceObject, {
 969    "metadata": function() { return code_metadata; },
 970    "name": function() { return code_name; },
 971    "settings": function() { return code_settings; }
 972  });
 973  
 974  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/column/index.js
 975  var build_module_column_namespaceObject = {};
 976  __webpack_require__.r(build_module_column_namespaceObject);
 977  __webpack_require__.d(build_module_column_namespaceObject, {
 978    "metadata": function() { return column_metadata; },
 979    "name": function() { return column_name; },
 980    "settings": function() { return column_settings; }
 981  });
 982  
 983  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/columns/index.js
 984  var build_module_columns_namespaceObject = {};
 985  __webpack_require__.r(build_module_columns_namespaceObject);
 986  __webpack_require__.d(build_module_columns_namespaceObject, {
 987    "metadata": function() { return columns_metadata; },
 988    "name": function() { return columns_name; },
 989    "settings": function() { return columns_settings; }
 990  });
 991  
 992  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
 993  var build_module_comment_author_name_namespaceObject = {};
 994  __webpack_require__.r(build_module_comment_author_name_namespaceObject);
 995  __webpack_require__.d(build_module_comment_author_name_namespaceObject, {
 996    "metadata": function() { return comment_author_name_metadata; },
 997    "name": function() { return comment_author_name_name; },
 998    "settings": function() { return comment_author_name_settings; }
 999  });
1000  
1001  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
1002  var build_module_comment_content_namespaceObject = {};
1003  __webpack_require__.r(build_module_comment_content_namespaceObject);
1004  __webpack_require__.d(build_module_comment_content_namespaceObject, {
1005    "metadata": function() { return comment_content_metadata; },
1006    "name": function() { return comment_content_name; },
1007    "settings": function() { return comment_content_settings; }
1008  });
1009  
1010  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
1011  var comment_date_namespaceObject = {};
1012  __webpack_require__.r(comment_date_namespaceObject);
1013  __webpack_require__.d(comment_date_namespaceObject, {
1014    "metadata": function() { return comment_date_metadata; },
1015    "name": function() { return comment_date_name; },
1016    "settings": function() { return comment_date_settings; }
1017  });
1018  
1019  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
1020  var build_module_comment_edit_link_namespaceObject = {};
1021  __webpack_require__.r(build_module_comment_edit_link_namespaceObject);
1022  __webpack_require__.d(build_module_comment_edit_link_namespaceObject, {
1023    "metadata": function() { return comment_edit_link_metadata; },
1024    "name": function() { return comment_edit_link_name; },
1025    "settings": function() { return comment_edit_link_settings; }
1026  });
1027  
1028  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
1029  var build_module_comment_reply_link_namespaceObject = {};
1030  __webpack_require__.r(build_module_comment_reply_link_namespaceObject);
1031  __webpack_require__.d(build_module_comment_reply_link_namespaceObject, {
1032    "metadata": function() { return comment_reply_link_metadata; },
1033    "name": function() { return comment_reply_link_name; },
1034    "settings": function() { return comment_reply_link_settings; }
1035  });
1036  
1037  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
1038  var comment_template_namespaceObject = {};
1039  __webpack_require__.r(comment_template_namespaceObject);
1040  __webpack_require__.d(comment_template_namespaceObject, {
1041    "metadata": function() { return comment_template_metadata; },
1042    "name": function() { return comment_template_name; },
1043    "settings": function() { return comment_template_settings; }
1044  });
1045  
1046  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
1047  var comments_pagination_previous_namespaceObject = {};
1048  __webpack_require__.r(comments_pagination_previous_namespaceObject);
1049  __webpack_require__.d(comments_pagination_previous_namespaceObject, {
1050    "metadata": function() { return comments_pagination_previous_metadata; },
1051    "name": function() { return comments_pagination_previous_name; },
1052    "settings": function() { return comments_pagination_previous_settings; }
1053  });
1054  
1055  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/index.js
1056  var comments_query_loop_namespaceObject = {};
1057  __webpack_require__.r(comments_query_loop_namespaceObject);
1058  __webpack_require__.d(comments_query_loop_namespaceObject, {
1059    "metadata": function() { return comments_query_loop_metadata; },
1060    "name": function() { return comments_query_loop_name; },
1061    "settings": function() { return comments_query_loop_settings; }
1062  });
1063  
1064  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
1065  var comments_pagination_namespaceObject = {};
1066  __webpack_require__.r(comments_pagination_namespaceObject);
1067  __webpack_require__.d(comments_pagination_namespaceObject, {
1068    "metadata": function() { return comments_pagination_metadata; },
1069    "name": function() { return comments_pagination_name; },
1070    "settings": function() { return comments_pagination_settings; }
1071  });
1072  
1073  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
1074  var comments_pagination_next_namespaceObject = {};
1075  __webpack_require__.r(comments_pagination_next_namespaceObject);
1076  __webpack_require__.d(comments_pagination_next_namespaceObject, {
1077    "metadata": function() { return comments_pagination_next_metadata; },
1078    "name": function() { return comments_pagination_next_name; },
1079    "settings": function() { return comments_pagination_next_settings; }
1080  });
1081  
1082  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
1083  var comments_pagination_numbers_namespaceObject = {};
1084  __webpack_require__.r(comments_pagination_numbers_namespaceObject);
1085  __webpack_require__.d(comments_pagination_numbers_namespaceObject, {
1086    "metadata": function() { return comments_pagination_numbers_metadata; },
1087    "name": function() { return comments_pagination_numbers_name; },
1088    "settings": function() { return comments_pagination_numbers_settings; }
1089  });
1090  
1091  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
1092  var comments_title_namespaceObject = {};
1093  __webpack_require__.r(comments_title_namespaceObject);
1094  __webpack_require__.d(comments_title_namespaceObject, {
1095    "metadata": function() { return comments_title_metadata; },
1096    "name": function() { return comments_title_name; },
1097    "settings": function() { return comments_title_settings; }
1098  });
1099  
1100  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/cover/index.js
1101  var build_module_cover_namespaceObject = {};
1102  __webpack_require__.r(build_module_cover_namespaceObject);
1103  __webpack_require__.d(build_module_cover_namespaceObject, {
1104    "metadata": function() { return cover_metadata; },
1105    "name": function() { return cover_name; },
1106    "settings": function() { return cover_settings; }
1107  });
1108  
1109  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/embed/index.js
1110  var embed_namespaceObject = {};
1111  __webpack_require__.r(embed_namespaceObject);
1112  __webpack_require__.d(embed_namespaceObject, {
1113    "metadata": function() { return embed_metadata; },
1114    "name": function() { return embed_name; },
1115    "settings": function() { return embed_settings; }
1116  });
1117  
1118  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/file/index.js
1119  var build_module_file_namespaceObject = {};
1120  __webpack_require__.r(build_module_file_namespaceObject);
1121  __webpack_require__.d(build_module_file_namespaceObject, {
1122    "metadata": function() { return file_metadata; },
1123    "name": function() { return file_name; },
1124    "settings": function() { return file_settings; }
1125  });
1126  
1127  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/gallery/index.js
1128  var build_module_gallery_namespaceObject = {};
1129  __webpack_require__.r(build_module_gallery_namespaceObject);
1130  __webpack_require__.d(build_module_gallery_namespaceObject, {
1131    "metadata": function() { return gallery_metadata; },
1132    "name": function() { return gallery_name; },
1133    "settings": function() { return gallery_settings; }
1134  });
1135  
1136  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/group/index.js
1137  var build_module_group_namespaceObject = {};
1138  __webpack_require__.r(build_module_group_namespaceObject);
1139  __webpack_require__.d(build_module_group_namespaceObject, {
1140    "metadata": function() { return group_metadata; },
1141    "name": function() { return group_name; },
1142    "settings": function() { return group_settings; }
1143  });
1144  
1145  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/heading/index.js
1146  var build_module_heading_namespaceObject = {};
1147  __webpack_require__.r(build_module_heading_namespaceObject);
1148  __webpack_require__.d(build_module_heading_namespaceObject, {
1149    "metadata": function() { return heading_metadata; },
1150    "name": function() { return heading_name; },
1151    "settings": function() { return heading_settings; }
1152  });
1153  
1154  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/home-link/index.js
1155  var home_link_namespaceObject = {};
1156  __webpack_require__.r(home_link_namespaceObject);
1157  __webpack_require__.d(home_link_namespaceObject, {
1158    "metadata": function() { return home_link_metadata; },
1159    "name": function() { return home_link_name; },
1160    "settings": function() { return home_link_settings; }
1161  });
1162  
1163  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/html/index.js
1164  var build_module_html_namespaceObject = {};
1165  __webpack_require__.r(build_module_html_namespaceObject);
1166  __webpack_require__.d(build_module_html_namespaceObject, {
1167    "metadata": function() { return html_metadata; },
1168    "name": function() { return html_name; },
1169    "settings": function() { return html_settings; }
1170  });
1171  
1172  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/image/index.js
1173  var build_module_image_namespaceObject = {};
1174  __webpack_require__.r(build_module_image_namespaceObject);
1175  __webpack_require__.d(build_module_image_namespaceObject, {
1176    "metadata": function() { return image_metadata; },
1177    "name": function() { return image_name; },
1178    "settings": function() { return image_settings; }
1179  });
1180  
1181  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
1182  var latest_comments_namespaceObject = {};
1183  __webpack_require__.r(latest_comments_namespaceObject);
1184  __webpack_require__.d(latest_comments_namespaceObject, {
1185    "metadata": function() { return latest_comments_metadata; },
1186    "name": function() { return latest_comments_name; },
1187    "settings": function() { return latest_comments_settings; }
1188  });
1189  
1190  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
1191  var latest_posts_namespaceObject = {};
1192  __webpack_require__.r(latest_posts_namespaceObject);
1193  __webpack_require__.d(latest_posts_namespaceObject, {
1194    "metadata": function() { return latest_posts_metadata; },
1195    "name": function() { return latest_posts_name; },
1196    "settings": function() { return latest_posts_settings; }
1197  });
1198  
1199  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/list/index.js
1200  var build_module_list_namespaceObject = {};
1201  __webpack_require__.r(build_module_list_namespaceObject);
1202  __webpack_require__.d(build_module_list_namespaceObject, {
1203    "metadata": function() { return list_metadata; },
1204    "name": function() { return list_name; },
1205    "settings": function() { return list_settings; }
1206  });
1207  
1208  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/loginout/index.js
1209  var loginout_namespaceObject = {};
1210  __webpack_require__.r(loginout_namespaceObject);
1211  __webpack_require__.d(loginout_namespaceObject, {
1212    "metadata": function() { return loginout_metadata; },
1213    "name": function() { return loginout_name; },
1214    "settings": function() { return loginout_settings; }
1215  });
1216  
1217  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/media-text/index.js
1218  var media_text_namespaceObject = {};
1219  __webpack_require__.r(media_text_namespaceObject);
1220  __webpack_require__.d(media_text_namespaceObject, {
1221    "metadata": function() { return media_text_metadata; },
1222    "name": function() { return media_text_name; },
1223    "settings": function() { return media_text_settings; }
1224  });
1225  
1226  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/missing/index.js
1227  var missing_namespaceObject = {};
1228  __webpack_require__.r(missing_namespaceObject);
1229  __webpack_require__.d(missing_namespaceObject, {
1230    "metadata": function() { return missing_metadata; },
1231    "name": function() { return missing_name; },
1232    "settings": function() { return missing_settings; }
1233  });
1234  
1235  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/more/index.js
1236  var build_module_more_namespaceObject = {};
1237  __webpack_require__.r(build_module_more_namespaceObject);
1238  __webpack_require__.d(build_module_more_namespaceObject, {
1239    "metadata": function() { return more_metadata; },
1240    "name": function() { return more_name; },
1241    "settings": function() { return more_settings; }
1242  });
1243  
1244  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation/index.js
1245  var build_module_navigation_namespaceObject = {};
1246  __webpack_require__.r(build_module_navigation_namespaceObject);
1247  __webpack_require__.d(build_module_navigation_namespaceObject, {
1248    "metadata": function() { return navigation_metadata; },
1249    "name": function() { return navigation_name; },
1250    "settings": function() { return navigation_settings; }
1251  });
1252  
1253  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
1254  var navigation_link_namespaceObject = {};
1255  __webpack_require__.r(navigation_link_namespaceObject);
1256  __webpack_require__.d(navigation_link_namespaceObject, {
1257    "metadata": function() { return navigation_link_metadata; },
1258    "name": function() { return navigation_link_name; },
1259    "settings": function() { return navigation_link_settings; }
1260  });
1261  
1262  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
1263  var navigation_submenu_namespaceObject = {};
1264  __webpack_require__.r(navigation_submenu_namespaceObject);
1265  __webpack_require__.d(navigation_submenu_namespaceObject, {
1266    "metadata": function() { return navigation_submenu_metadata; },
1267    "name": function() { return navigation_submenu_name; },
1268    "settings": function() { return navigation_submenu_settings; }
1269  });
1270  
1271  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
1272  var nextpage_namespaceObject = {};
1273  __webpack_require__.r(nextpage_namespaceObject);
1274  __webpack_require__.d(nextpage_namespaceObject, {
1275    "metadata": function() { return nextpage_metadata; },
1276    "name": function() { return nextpage_name; },
1277    "settings": function() { return nextpage_settings; }
1278  });
1279  
1280  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pattern/index.js
1281  var pattern_namespaceObject = {};
1282  __webpack_require__.r(pattern_namespaceObject);
1283  __webpack_require__.d(pattern_namespaceObject, {
1284    "metadata": function() { return pattern_metadata; },
1285    "name": function() { return pattern_name; },
1286    "settings": function() { return pattern_settings; }
1287  });
1288  
1289  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/page-list/index.js
1290  var page_list_namespaceObject = {};
1291  __webpack_require__.r(page_list_namespaceObject);
1292  __webpack_require__.d(page_list_namespaceObject, {
1293    "metadata": function() { return page_list_metadata; },
1294    "name": function() { return page_list_name; },
1295    "settings": function() { return page_list_settings; }
1296  });
1297  
1298  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
1299  var build_module_paragraph_namespaceObject = {};
1300  __webpack_require__.r(build_module_paragraph_namespaceObject);
1301  __webpack_require__.d(build_module_paragraph_namespaceObject, {
1302    "metadata": function() { return paragraph_metadata; },
1303    "name": function() { return paragraph_name; },
1304    "settings": function() { return paragraph_settings; }
1305  });
1306  
1307  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author/index.js
1308  var build_module_post_author_namespaceObject = {};
1309  __webpack_require__.r(build_module_post_author_namespaceObject);
1310  __webpack_require__.d(build_module_post_author_namespaceObject, {
1311    "metadata": function() { return post_author_metadata; },
1312    "name": function() { return post_author_name; },
1313    "settings": function() { return post_author_settings; }
1314  });
1315  
1316  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
1317  var post_author_biography_namespaceObject = {};
1318  __webpack_require__.r(post_author_biography_namespaceObject);
1319  __webpack_require__.d(post_author_biography_namespaceObject, {
1320    "metadata": function() { return post_author_biography_metadata; },
1321    "name": function() { return post_author_biography_name; },
1322    "settings": function() { return post_author_biography_settings; }
1323  });
1324  
1325  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments/index.js
1326  var build_module_post_comments_namespaceObject = {};
1327  __webpack_require__.r(build_module_post_comments_namespaceObject);
1328  __webpack_require__.d(build_module_post_comments_namespaceObject, {
1329    "metadata": function() { return post_comments_metadata; },
1330    "name": function() { return post_comments_name; },
1331    "settings": function() { return post_comments_settings; }
1332  });
1333  
1334  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
1335  var build_module_post_comments_form_namespaceObject = {};
1336  __webpack_require__.r(build_module_post_comments_form_namespaceObject);
1337  __webpack_require__.d(build_module_post_comments_form_namespaceObject, {
1338    "metadata": function() { return post_comments_form_metadata; },
1339    "name": function() { return post_comments_form_name; },
1340    "settings": function() { return post_comments_form_settings; }
1341  });
1342  
1343  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-content/index.js
1344  var build_module_post_content_namespaceObject = {};
1345  __webpack_require__.r(build_module_post_content_namespaceObject);
1346  __webpack_require__.d(build_module_post_content_namespaceObject, {
1347    "metadata": function() { return post_content_metadata; },
1348    "name": function() { return post_content_name; },
1349    "settings": function() { return post_content_settings; }
1350  });
1351  
1352  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-date/index.js
1353  var build_module_post_date_namespaceObject = {};
1354  __webpack_require__.r(build_module_post_date_namespaceObject);
1355  __webpack_require__.d(build_module_post_date_namespaceObject, {
1356    "metadata": function() { return post_date_metadata; },
1357    "name": function() { return post_date_name; },
1358    "settings": function() { return post_date_settings; }
1359  });
1360  
1361  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
1362  var build_module_post_excerpt_namespaceObject = {};
1363  __webpack_require__.r(build_module_post_excerpt_namespaceObject);
1364  __webpack_require__.d(build_module_post_excerpt_namespaceObject, {
1365    "metadata": function() { return post_excerpt_metadata; },
1366    "name": function() { return post_excerpt_name; },
1367    "settings": function() { return post_excerpt_settings; }
1368  });
1369  
1370  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
1371  var build_module_post_featured_image_namespaceObject = {};
1372  __webpack_require__.r(build_module_post_featured_image_namespaceObject);
1373  __webpack_require__.d(build_module_post_featured_image_namespaceObject, {
1374    "metadata": function() { return post_featured_image_metadata; },
1375    "name": function() { return post_featured_image_name; },
1376    "settings": function() { return post_featured_image_settings; }
1377  });
1378  
1379  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
1380  var post_navigation_link_namespaceObject = {};
1381  __webpack_require__.r(post_navigation_link_namespaceObject);
1382  __webpack_require__.d(post_navigation_link_namespaceObject, {
1383    "metadata": function() { return post_navigation_link_metadata; },
1384    "name": function() { return post_navigation_link_name; },
1385    "settings": function() { return post_navigation_link_settings; }
1386  });
1387  
1388  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-template/index.js
1389  var post_template_namespaceObject = {};
1390  __webpack_require__.r(post_template_namespaceObject);
1391  __webpack_require__.d(post_template_namespaceObject, {
1392    "metadata": function() { return post_template_metadata; },
1393    "name": function() { return post_template_name; },
1394    "settings": function() { return post_template_settings; }
1395  });
1396  
1397  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
1398  var build_module_post_terms_namespaceObject = {};
1399  __webpack_require__.r(build_module_post_terms_namespaceObject);
1400  __webpack_require__.d(build_module_post_terms_namespaceObject, {
1401    "metadata": function() { return post_terms_metadata; },
1402    "name": function() { return post_terms_name; },
1403    "settings": function() { return post_terms_settings; }
1404  });
1405  
1406  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-title/index.js
1407  var build_module_post_title_namespaceObject = {};
1408  __webpack_require__.r(build_module_post_title_namespaceObject);
1409  __webpack_require__.d(build_module_post_title_namespaceObject, {
1410    "metadata": function() { return post_title_metadata; },
1411    "name": function() { return post_title_name; },
1412    "settings": function() { return post_title_settings; }
1413  });
1414  
1415  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
1416  var build_module_preformatted_namespaceObject = {};
1417  __webpack_require__.r(build_module_preformatted_namespaceObject);
1418  __webpack_require__.d(build_module_preformatted_namespaceObject, {
1419    "metadata": function() { return preformatted_metadata; },
1420    "name": function() { return preformatted_name; },
1421    "settings": function() { return preformatted_settings; }
1422  });
1423  
1424  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
1425  var build_module_pullquote_namespaceObject = {};
1426  __webpack_require__.r(build_module_pullquote_namespaceObject);
1427  __webpack_require__.d(build_module_pullquote_namespaceObject, {
1428    "metadata": function() { return pullquote_metadata; },
1429    "name": function() { return pullquote_name; },
1430    "settings": function() { return pullquote_settings; }
1431  });
1432  
1433  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query/index.js
1434  var query_namespaceObject = {};
1435  __webpack_require__.r(query_namespaceObject);
1436  __webpack_require__.d(query_namespaceObject, {
1437    "metadata": function() { return query_metadata; },
1438    "name": function() { return query_name; },
1439    "settings": function() { return query_settings; }
1440  });
1441  
1442  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
1443  var query_no_results_namespaceObject = {};
1444  __webpack_require__.r(query_no_results_namespaceObject);
1445  __webpack_require__.d(query_no_results_namespaceObject, {
1446    "metadata": function() { return query_no_results_metadata; },
1447    "name": function() { return query_no_results_name; },
1448    "settings": function() { return query_no_results_settings; }
1449  });
1450  
1451  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
1452  var build_module_query_pagination_namespaceObject = {};
1453  __webpack_require__.r(build_module_query_pagination_namespaceObject);
1454  __webpack_require__.d(build_module_query_pagination_namespaceObject, {
1455    "metadata": function() { return query_pagination_metadata; },
1456    "name": function() { return query_pagination_name; },
1457    "settings": function() { return query_pagination_settings; }
1458  });
1459  
1460  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
1461  var build_module_query_pagination_next_namespaceObject = {};
1462  __webpack_require__.r(build_module_query_pagination_next_namespaceObject);
1463  __webpack_require__.d(build_module_query_pagination_next_namespaceObject, {
1464    "metadata": function() { return query_pagination_next_metadata; },
1465    "name": function() { return query_pagination_next_name; },
1466    "settings": function() { return query_pagination_next_settings; }
1467  });
1468  
1469  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
1470  var build_module_query_pagination_numbers_namespaceObject = {};
1471  __webpack_require__.r(build_module_query_pagination_numbers_namespaceObject);
1472  __webpack_require__.d(build_module_query_pagination_numbers_namespaceObject, {
1473    "metadata": function() { return query_pagination_numbers_metadata; },
1474    "name": function() { return query_pagination_numbers_name; },
1475    "settings": function() { return query_pagination_numbers_settings; }
1476  });
1477  
1478  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
1479  var build_module_query_pagination_previous_namespaceObject = {};
1480  __webpack_require__.r(build_module_query_pagination_previous_namespaceObject);
1481  __webpack_require__.d(build_module_query_pagination_previous_namespaceObject, {
1482    "metadata": function() { return query_pagination_previous_metadata; },
1483    "name": function() { return query_pagination_previous_name; },
1484    "settings": function() { return query_pagination_previous_settings; }
1485  });
1486  
1487  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-title/index.js
1488  var build_module_query_title_namespaceObject = {};
1489  __webpack_require__.r(build_module_query_title_namespaceObject);
1490  __webpack_require__.d(build_module_query_title_namespaceObject, {
1491    "metadata": function() { return query_title_metadata; },
1492    "name": function() { return query_title_name; },
1493    "settings": function() { return query_title_settings; }
1494  });
1495  
1496  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/quote/index.js
1497  var build_module_quote_namespaceObject = {};
1498  __webpack_require__.r(build_module_quote_namespaceObject);
1499  __webpack_require__.d(build_module_quote_namespaceObject, {
1500    "metadata": function() { return quote_metadata; },
1501    "name": function() { return quote_name; },
1502    "settings": function() { return quote_settings; },
1503    "settingsV1": function() { return quote_settingsV1; }
1504  });
1505  
1506  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/block/index.js
1507  var block_namespaceObject = {};
1508  __webpack_require__.r(block_namespaceObject);
1509  __webpack_require__.d(block_namespaceObject, {
1510    "metadata": function() { return block_metadata; },
1511    "name": function() { return block_name; },
1512    "settings": function() { return block_settings; }
1513  });
1514  
1515  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
1516  var read_more_namespaceObject = {};
1517  __webpack_require__.r(read_more_namespaceObject);
1518  __webpack_require__.d(read_more_namespaceObject, {
1519    "metadata": function() { return read_more_metadata; },
1520    "name": function() { return read_more_name; },
1521    "settings": function() { return read_more_settings; }
1522  });
1523  
1524  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/rss/index.js
1525  var build_module_rss_namespaceObject = {};
1526  __webpack_require__.r(build_module_rss_namespaceObject);
1527  __webpack_require__.d(build_module_rss_namespaceObject, {
1528    "metadata": function() { return rss_metadata; },
1529    "name": function() { return rss_name; },
1530    "settings": function() { return rss_settings; }
1531  });
1532  
1533  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/search/index.js
1534  var build_module_search_namespaceObject = {};
1535  __webpack_require__.r(build_module_search_namespaceObject);
1536  __webpack_require__.d(build_module_search_namespaceObject, {
1537    "metadata": function() { return search_metadata; },
1538    "name": function() { return search_name; },
1539    "settings": function() { return search_settings; }
1540  });
1541  
1542  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/separator/index.js
1543  var build_module_separator_namespaceObject = {};
1544  __webpack_require__.r(build_module_separator_namespaceObject);
1545  __webpack_require__.d(build_module_separator_namespaceObject, {
1546    "metadata": function() { return separator_metadata; },
1547    "name": function() { return separator_name; },
1548    "settings": function() { return separator_settings; }
1549  });
1550  
1551  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
1552  var build_module_shortcode_namespaceObject = {};
1553  __webpack_require__.r(build_module_shortcode_namespaceObject);
1554  __webpack_require__.d(build_module_shortcode_namespaceObject, {
1555    "metadata": function() { return shortcode_metadata; },
1556    "name": function() { return shortcode_name; },
1557    "settings": function() { return shortcode_settings; }
1558  });
1559  
1560  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
1561  var build_module_site_logo_namespaceObject = {};
1562  __webpack_require__.r(build_module_site_logo_namespaceObject);
1563  __webpack_require__.d(build_module_site_logo_namespaceObject, {
1564    "metadata": function() { return site_logo_metadata; },
1565    "name": function() { return site_logo_name; },
1566    "settings": function() { return site_logo_settings; }
1567  });
1568  
1569  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
1570  var site_tagline_namespaceObject = {};
1571  __webpack_require__.r(site_tagline_namespaceObject);
1572  __webpack_require__.d(site_tagline_namespaceObject, {
1573    "metadata": function() { return site_tagline_metadata; },
1574    "name": function() { return site_tagline_name; },
1575    "settings": function() { return site_tagline_settings; }
1576  });
1577  
1578  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
1579  var site_title_namespaceObject = {};
1580  __webpack_require__.r(site_title_namespaceObject);
1581  __webpack_require__.d(site_title_namespaceObject, {
1582    "metadata": function() { return site_title_metadata; },
1583    "name": function() { return site_title_name; },
1584    "settings": function() { return site_title_settings; }
1585  });
1586  
1587  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
1588  var social_link_namespaceObject = {};
1589  __webpack_require__.r(social_link_namespaceObject);
1590  __webpack_require__.d(social_link_namespaceObject, {
1591    "metadata": function() { return social_link_metadata; },
1592    "name": function() { return social_link_name; },
1593    "settings": function() { return social_link_settings; }
1594  });
1595  
1596  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
1597  var social_links_namespaceObject = {};
1598  __webpack_require__.r(social_links_namespaceObject);
1599  __webpack_require__.d(social_links_namespaceObject, {
1600    "metadata": function() { return social_links_metadata; },
1601    "name": function() { return social_links_name; },
1602    "settings": function() { return social_links_settings; }
1603  });
1604  
1605  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
1606  var spacer_namespaceObject = {};
1607  __webpack_require__.r(spacer_namespaceObject);
1608  __webpack_require__.d(spacer_namespaceObject, {
1609    "metadata": function() { return spacer_metadata; },
1610    "name": function() { return spacer_name; },
1611    "settings": function() { return spacer_settings; }
1612  });
1613  
1614  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table/index.js
1615  var build_module_table_namespaceObject = {};
1616  __webpack_require__.r(build_module_table_namespaceObject);
1617  __webpack_require__.d(build_module_table_namespaceObject, {
1618    "metadata": function() { return table_metadata; },
1619    "name": function() { return table_name; },
1620    "settings": function() { return table_settings; }
1621  });
1622  
1623  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
1624  var tag_cloud_namespaceObject = {};
1625  __webpack_require__.r(tag_cloud_namespaceObject);
1626  __webpack_require__.d(tag_cloud_namespaceObject, {
1627    "metadata": function() { return tag_cloud_metadata; },
1628    "name": function() { return tag_cloud_name; },
1629    "settings": function() { return tag_cloud_settings; }
1630  });
1631  
1632  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
1633  var template_part_namespaceObject = {};
1634  __webpack_require__.r(template_part_namespaceObject);
1635  __webpack_require__.d(template_part_namespaceObject, {
1636    "metadata": function() { return template_part_metadata; },
1637    "name": function() { return template_part_name; },
1638    "settings": function() { return template_part_settings; }
1639  });
1640  
1641  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
1642  var build_module_term_description_namespaceObject = {};
1643  __webpack_require__.r(build_module_term_description_namespaceObject);
1644  __webpack_require__.d(build_module_term_description_namespaceObject, {
1645    "metadata": function() { return term_description_metadata; },
1646    "name": function() { return term_description_name; },
1647    "settings": function() { return term_description_settings; }
1648  });
1649  
1650  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
1651  var text_columns_namespaceObject = {};
1652  __webpack_require__.r(text_columns_namespaceObject);
1653  __webpack_require__.d(text_columns_namespaceObject, {
1654    "metadata": function() { return text_columns_metadata; },
1655    "name": function() { return text_columns_name; },
1656    "settings": function() { return text_columns_settings; }
1657  });
1658  
1659  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/verse/index.js
1660  var build_module_verse_namespaceObject = {};
1661  __webpack_require__.r(build_module_verse_namespaceObject);
1662  __webpack_require__.d(build_module_verse_namespaceObject, {
1663    "metadata": function() { return verse_metadata; },
1664    "name": function() { return verse_name; },
1665    "settings": function() { return verse_settings; }
1666  });
1667  
1668  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/video/index.js
1669  var build_module_video_namespaceObject = {};
1670  __webpack_require__.r(build_module_video_namespaceObject);
1671  __webpack_require__.d(build_module_video_namespaceObject, {
1672    "metadata": function() { return video_metadata; },
1673    "name": function() { return video_name; },
1674    "settings": function() { return video_settings; }
1675  });
1676  
1677  ;// CONCATENATED MODULE: external ["wp","blocks"]
1678  var external_wp_blocks_namespaceObject = window["wp"]["blocks"];
1679  ;// CONCATENATED MODULE: external ["wp","element"]
1680  var external_wp_element_namespaceObject = window["wp"]["element"];
1681  ;// CONCATENATED MODULE: external ["wp","primitives"]
1682  var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
1683  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive.js
1684  
1685  
1686  /**
1687   * WordPress dependencies
1688   */
1689  
1690  const archive = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1691    viewBox: "0 0 24 24",
1692    xmlns: "http://www.w3.org/2000/svg"
1693  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1694    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"
1695  }));
1696  /* harmony default export */ var library_archive = (archive);
1697  
1698  ;// CONCATENATED MODULE: external ["wp","components"]
1699  var external_wp_components_namespaceObject = window["wp"]["components"];
1700  ;// CONCATENATED MODULE: external ["wp","i18n"]
1701  var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
1702  ;// CONCATENATED MODULE: external ["wp","blockEditor"]
1703  var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
1704  ;// CONCATENATED MODULE: external ["wp","serverSideRender"]
1705  var external_wp_serverSideRender_namespaceObject = window["wp"]["serverSideRender"];
1706  var external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_namespaceObject);
1707  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/edit.js
1708  
1709  
1710  /**
1711   * WordPress dependencies
1712   */
1713  
1714  
1715  
1716  
1717  function ArchivesEdit(_ref) {
1718    let {
1719      attributes,
1720      setAttributes
1721    } = _ref;
1722    const {
1723      showPostCounts,
1724      displayAsDropdown,
1725      type
1726    } = attributes;
1727    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, {
1728      title: (0,external_wp_i18n_namespaceObject.__)('Archives settings')
1729    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
1730      label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
1731      checked: displayAsDropdown,
1732      onChange: () => setAttributes({
1733        displayAsDropdown: !displayAsDropdown
1734      })
1735    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
1736      label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
1737      checked: showPostCounts,
1738      onChange: () => setAttributes({
1739        showPostCounts: !showPostCounts
1740      })
1741    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
1742      label: (0,external_wp_i18n_namespaceObject.__)('Group by:'),
1743      options: [{
1744        label: (0,external_wp_i18n_namespaceObject.__)('Year'),
1745        value: 'yearly'
1746      }, {
1747        label: (0,external_wp_i18n_namespaceObject.__)('Month'),
1748        value: 'monthly'
1749      }, {
1750        label: (0,external_wp_i18n_namespaceObject.__)('Week'),
1751        value: 'weekly'
1752      }, {
1753        label: (0,external_wp_i18n_namespaceObject.__)('Day'),
1754        value: 'daily'
1755      }],
1756      value: type,
1757      onChange: value => setAttributes({
1758        type: value
1759      })
1760    }))), (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()), {
1761      block: "core/archives",
1762      attributes: attributes
1763    }))));
1764  }
1765  
1766  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/index.js
1767  /**
1768   * WordPress dependencies
1769   */
1770  
1771  /**
1772   * Internal dependencies
1773   */
1774  
1775  const metadata = {
1776    $schema: "https://schemas.wp.org/trunk/block.json",
1777    apiVersion: 2,
1778    name: "core/archives",
1779    title: "Archives",
1780    category: "widgets",
1781    description: "Display a date archive of your posts.",
1782    textdomain: "default",
1783    attributes: {
1784      displayAsDropdown: {
1785        type: "boolean",
1786        "default": false
1787      },
1788      showPostCounts: {
1789        type: "boolean",
1790        "default": false
1791      },
1792      type: {
1793        type: "string",
1794        "default": "monthly"
1795      }
1796    },
1797    supports: {
1798      align: true,
1799      html: false
1800    },
1801    editorStyle: "wp-block-archives-editor"
1802  };
1803  
1804  const {
1805    name: archives_name
1806  } = metadata;
1807  
1808  const settings = {
1809    icon: library_archive,
1810    example: {},
1811    edit: ArchivesEdit
1812  };
1813  
1814  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js
1815  
1816  
1817  /**
1818   * WordPress dependencies
1819   */
1820  
1821  const commentAuthorAvatar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1822    xmlns: "http://www.w3.org/2000/svg",
1823    viewBox: "0 0 24 24"
1824  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1825    fillRule: "evenodd",
1826    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",
1827    clipRule: "evenodd"
1828  }));
1829  /* harmony default export */ var comment_author_avatar = (commentAuthorAvatar);
1830  
1831  ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
1832  function _extends() {
1833    _extends = Object.assign || function (target) {
1834      for (var i = 1; i < arguments.length; i++) {
1835        var source = arguments[i];
1836  
1837        for (var key in source) {
1838          if (Object.prototype.hasOwnProperty.call(source, key)) {
1839            target[key] = source[key];
1840          }
1841        }
1842      }
1843  
1844      return target;
1845    };
1846  
1847    return _extends.apply(this, arguments);
1848  }
1849  // EXTERNAL MODULE: ./node_modules/classnames/index.js
1850  var classnames = __webpack_require__(4403);
1851  var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
1852  ;// CONCATENATED MODULE: external ["wp","url"]
1853  var external_wp_url_namespaceObject = window["wp"]["url"];
1854  ;// CONCATENATED MODULE: external ["wp","coreData"]
1855  var external_wp_coreData_namespaceObject = window["wp"]["coreData"];
1856  ;// CONCATENATED MODULE: external ["wp","data"]
1857  var external_wp_data_namespaceObject = window["wp"]["data"];
1858  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/hooks.js
1859  /**
1860   * WordPress dependencies
1861   */
1862  
1863  
1864  
1865  
1866  
1867  function getAvatarSizes(sizes) {
1868    const minSize = sizes ? sizes[0] : 24;
1869    const maxSize = sizes ? sizes[sizes.length - 1] : 96;
1870    const maxSizeBuffer = Math.floor(maxSize * 2.5);
1871    return {
1872      minSize,
1873      maxSize: maxSizeBuffer
1874    };
1875  }
1876  
1877  function useDefaultAvatar() {
1878    const {
1879      avatarURL: defaultAvatarUrl
1880    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
1881      const {
1882        getSettings
1883      } = select(external_wp_blockEditor_namespaceObject.store);
1884      const {
1885        __experimentalDiscussionSettings
1886      } = getSettings();
1887      return __experimentalDiscussionSettings;
1888    });
1889    return defaultAvatarUrl;
1890  }
1891  
1892  function useCommentAvatar(_ref) {
1893    let {
1894      commentId
1895    } = _ref;
1896    const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId);
1897    const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId);
1898    const avatarUrls = avatars ? Object.values(avatars) : null;
1899    const sizes = avatars ? Object.keys(avatars) : null;
1900    const {
1901      minSize,
1902      maxSize
1903    } = getAvatarSizes(sizes);
1904    const defaultAvatar = useDefaultAvatar();
1905    return {
1906      src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
1907      minSize,
1908      maxSize,
1909      // translators: %s is the Author name.
1910      alt: authorName ? // translators: %s is the Author name.
1911      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorName) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
1912    };
1913  }
1914  function useUserAvatar(_ref2) {
1915    let {
1916      userId,
1917      postId,
1918      postType
1919    } = _ref2;
1920    const {
1921      authorDetails
1922    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
1923      var _getEditedEntityRecor;
1924  
1925      const {
1926        getEditedEntityRecord,
1927        getUser
1928      } = select(external_wp_coreData_namespaceObject.store);
1929  
1930      if (userId) {
1931        return {
1932          authorDetails: getUser(userId)
1933        };
1934      }
1935  
1936      const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author;
1937  
1938      return {
1939        authorDetails: _authorId ? getUser(_authorId) : null
1940      };
1941    }, [postType, postId, userId]);
1942    const avatarUrls = authorDetails ? Object.values(authorDetails.avatar_urls) : null;
1943    const sizes = authorDetails ? Object.keys(authorDetails.avatar_urls) : null;
1944    const {
1945      minSize,
1946      maxSize
1947    } = getAvatarSizes(sizes);
1948    const defaultAvatar = useDefaultAvatar();
1949    return {
1950      src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
1951      minSize,
1952      maxSize,
1953      alt: authorDetails ? // translators: %s is the Author name.
1954      (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')
1955    };
1956  }
1957  
1958  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/user-control.js
1959  
1960  
1961  /**
1962   * WordPress dependencies
1963   */
1964  
1965  
1966  
1967  
1968  
1969  const AUTHORS_QUERY = {
1970    who: 'authors',
1971    per_page: -1,
1972    _fields: 'id,name',
1973    context: 'view'
1974  };
1975  
1976  function UserControl(_ref) {
1977    let {
1978      value,
1979      onChange
1980    } = _ref;
1981    const [filteredAuthorsList, setFilteredAuthorsList] = (0,external_wp_element_namespaceObject.useState)();
1982    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
1983      const {
1984        getUsers
1985      } = select(external_wp_coreData_namespaceObject.store);
1986      return getUsers(AUTHORS_QUERY);
1987    }, []);
1988  
1989    if (!authorsList) {
1990      return null;
1991    }
1992  
1993    const options = authorsList.map(author => {
1994      return {
1995        label: author.name,
1996        value: author.id
1997      };
1998    });
1999    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ComboboxControl, {
2000      label: (0,external_wp_i18n_namespaceObject.__)('User'),
2001      help: (0,external_wp_i18n_namespaceObject.__)('Select the avatar user to display, if it is blank it will use the post/page author.'),
2002      value: value,
2003      onChange: onChange,
2004      options: filteredAuthorsList || options,
2005      onFilterValueChange: inputValue => setFilteredAuthorsList(options.filter(option => option.label.toLowerCase().startsWith(inputValue.toLowerCase())))
2006    });
2007  }
2008  
2009  /* harmony default export */ var user_control = (UserControl);
2010  
2011  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/edit.js
2012  
2013  
2014  
2015  /**
2016   * External dependencies
2017   */
2018  
2019  /**
2020   * WordPress dependencies
2021   */
2022  
2023  
2024  
2025  
2026  
2027  /**
2028   * Internal dependencies
2029   */
2030  
2031  
2032  
2033  
2034  const AvatarInspectorControls = _ref => {
2035    let {
2036      setAttributes,
2037      avatar,
2038      attributes,
2039      selectUser
2040    } = _ref;
2041    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
2042      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
2043    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
2044      label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
2045      onChange: newSize => setAttributes({
2046        size: newSize
2047      }),
2048      min: avatar.minSize,
2049      max: avatar.maxSize,
2050      initialPosition: attributes === null || attributes === void 0 ? void 0 : attributes.size,
2051      value: attributes === null || attributes === void 0 ? void 0 : attributes.size
2052    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
2053      label: (0,external_wp_i18n_namespaceObject.__)('Link to user profile'),
2054      onChange: () => setAttributes({
2055        isLink: !attributes.isLink
2056      }),
2057      checked: attributes.isLink
2058    }), attributes.isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
2059      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
2060      onChange: value => setAttributes({
2061        linkTarget: value ? '_blank' : '_self'
2062      }),
2063      checked: attributes.linkTarget === '_blank'
2064    }), selectUser && (0,external_wp_element_namespaceObject.createElement)(user_control, {
2065      value: attributes === null || attributes === void 0 ? void 0 : attributes.userId,
2066      onChange: value => {
2067        setAttributes({
2068          userId: value
2069        });
2070      }
2071    })));
2072  };
2073  
2074  const ResizableAvatar = _ref2 => {
2075    let {
2076      setAttributes,
2077      attributes,
2078      avatar,
2079      blockProps,
2080      isSelected
2081    } = _ref2;
2082    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
2083    const doubledSizedSrc = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(avatar === null || avatar === void 0 ? void 0 : avatar.src, ['s']), {
2084      s: (attributes === null || attributes === void 0 ? void 0 : attributes.size) * 2
2085    });
2086    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
2087      size: {
2088        width: attributes.size,
2089        height: attributes.size
2090      },
2091      showHandle: isSelected,
2092      onResizeStop: (event, direction, elt, delta) => {
2093        setAttributes({
2094          size: parseInt(attributes.size + (delta.height || delta.width), 10)
2095        });
2096      },
2097      lockAspectRatio: true,
2098      enable: {
2099        top: false,
2100        right: !(0,external_wp_i18n_namespaceObject.isRTL)(),
2101        bottom: true,
2102        left: (0,external_wp_i18n_namespaceObject.isRTL)()
2103      },
2104      minWidth: avatar.minSize,
2105      maxWidth: avatar.maxSize
2106    }, (0,external_wp_element_namespaceObject.createElement)("img", _extends({
2107      src: doubledSizedSrc,
2108      alt: avatar.alt
2109    }, borderProps, {
2110      className: classnames_default()('avatar', 'avatar-' + attributes.size, 'photo', 'wp-block-avatar__image', borderProps.className),
2111      style: { ...borderProps.style // Border radius, width and style.
2112  
2113      }
2114    }))));
2115  };
2116  
2117  const CommentEdit = _ref3 => {
2118    let {
2119      attributes,
2120      context,
2121      setAttributes,
2122      isSelected
2123    } = _ref3;
2124    const {
2125      commentId
2126    } = context;
2127    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
2128    const avatar = useCommentAvatar({
2129      commentId
2130    });
2131    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AvatarInspectorControls, {
2132      avatar: avatar,
2133      setAttributes: setAttributes,
2134      attributes: attributes,
2135      selectUser: false
2136    }), attributes.isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
2137      href: "#avatar-pseudo-link",
2138      className: "wp-block-avatar__link",
2139      onClick: event => event.preventDefault()
2140    }, (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
2141      attributes: attributes,
2142      avatar: avatar,
2143      blockProps: blockProps,
2144      isSelected: isSelected,
2145      setAttributes: setAttributes
2146    })) : (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
2147      attributes: attributes,
2148      avatar: avatar,
2149      blockProps: blockProps,
2150      isSelected: isSelected,
2151      setAttributes: setAttributes
2152    }));
2153  };
2154  
2155  const UserEdit = _ref4 => {
2156    let {
2157      attributes,
2158      context,
2159      setAttributes,
2160      isSelected
2161    } = _ref4;
2162    const {
2163      postId,
2164      postType
2165    } = context;
2166    const avatar = useUserAvatar({
2167      userId: attributes === null || attributes === void 0 ? void 0 : attributes.userId,
2168      postId,
2169      postType
2170    });
2171    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
2172    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AvatarInspectorControls, {
2173      selectUser: true,
2174      attributes: attributes,
2175      avatar: avatar,
2176      setAttributes: setAttributes
2177    }), (0,external_wp_element_namespaceObject.createElement)("div", null, attributes.isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
2178      href: "#avatar-pseudo-link",
2179      className: "wp-block-avatar__link",
2180      onClick: event => event.preventDefault()
2181    }, (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
2182      attributes: attributes,
2183      avatar: avatar,
2184      blockProps: blockProps,
2185      isSelected: isSelected,
2186      setAttributes: setAttributes
2187    })) : (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, {
2188      attributes: attributes,
2189      avatar: avatar,
2190      blockProps: blockProps,
2191      isSelected: isSelected,
2192      setAttributes: setAttributes
2193    })));
2194  };
2195  
2196  function Edit(props) {
2197    var _props$context, _props$context2;
2198  
2199    // 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`).
2200    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) {
2201      return (0,external_wp_element_namespaceObject.createElement)(CommentEdit, props);
2202    }
2203  
2204    return (0,external_wp_element_namespaceObject.createElement)(UserEdit, props);
2205  }
2206  
2207  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/index.js
2208  /**
2209   * WordPress dependencies
2210   */
2211  
2212  /**
2213   * Internal dependencies
2214   */
2215  
2216  const avatar_metadata = {
2217    $schema: "https://schemas.wp.org/trunk/block.json",
2218    apiVersion: 2,
2219    name: "core/avatar",
2220    title: "Avatar",
2221    category: "theme",
2222    description: "Add a user's avatar.",
2223    textdomain: "default",
2224    attributes: {
2225      userId: {
2226        type: "number"
2227      },
2228      size: {
2229        type: "number",
2230        "default": 96
2231      },
2232      isLink: {
2233        type: "boolean",
2234        "default": false
2235      },
2236      linkTarget: {
2237        type: "string",
2238        "default": "_self"
2239      }
2240    },
2241    usesContext: ["postType", "postId", "commentId"],
2242    supports: {
2243      html: false,
2244      align: true,
2245      alignWide: false,
2246      spacing: {
2247        margin: true
2248      },
2249      __experimentalBorder: {
2250        __experimentalSkipSerialization: true,
2251        radius: true,
2252        width: true,
2253        color: true,
2254        style: true,
2255        __experimentalDefaultControls: {
2256          radius: true
2257        }
2258      },
2259      color: {
2260        text: false,
2261        background: false,
2262        __experimentalDuotone: "img"
2263      }
2264    },
2265    editorStyle: "wp-block-avatar",
2266    style: "wp-block-avatar"
2267  };
2268  
2269  const {
2270    name: avatar_name
2271  } = avatar_metadata;
2272  
2273  const avatar_settings = {
2274    icon: comment_author_avatar,
2275    edit: Edit
2276  };
2277  
2278  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/audio.js
2279  
2280  
2281  /**
2282   * WordPress dependencies
2283   */
2284  
2285  const audio = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
2286    viewBox: "0 0 24 24",
2287    xmlns: "http://www.w3.org/2000/svg"
2288  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
2289    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"
2290  }));
2291  /* harmony default export */ var library_audio = (audio);
2292  
2293  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/deprecated.js
2294  
2295  
2296  /**
2297   * WordPress dependencies
2298   */
2299  
2300  /* harmony default export */ var deprecated = ([{
2301    attributes: {
2302      src: {
2303        type: 'string',
2304        source: 'attribute',
2305        selector: 'audio',
2306        attribute: 'src'
2307      },
2308      caption: {
2309        type: 'string',
2310        source: 'html',
2311        selector: 'figcaption'
2312      },
2313      id: {
2314        type: 'number'
2315      },
2316      autoplay: {
2317        type: 'boolean',
2318        source: 'attribute',
2319        selector: 'audio',
2320        attribute: 'autoplay'
2321      },
2322      loop: {
2323        type: 'boolean',
2324        source: 'attribute',
2325        selector: 'audio',
2326        attribute: 'loop'
2327      },
2328      preload: {
2329        type: 'string',
2330        source: 'attribute',
2331        selector: 'audio',
2332        attribute: 'preload'
2333      }
2334    },
2335    supports: {
2336      align: true
2337    },
2338  
2339    save(_ref) {
2340      let {
2341        attributes
2342      } = _ref;
2343      const {
2344        autoplay,
2345        caption,
2346        loop,
2347        preload,
2348        src
2349      } = attributes;
2350      return (0,external_wp_element_namespaceObject.createElement)("figure", null, (0,external_wp_element_namespaceObject.createElement)("audio", {
2351        controls: "controls",
2352        src: src,
2353        autoPlay: autoplay,
2354        loop: loop,
2355        preload: preload
2356      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
2357        tagName: "figcaption",
2358        value: caption
2359      }));
2360    }
2361  
2362  }]);
2363  
2364  ;// CONCATENATED MODULE: external ["wp","blob"]
2365  var external_wp_blob_namespaceObject = window["wp"]["blob"];
2366  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/constants.js
2367  const ASPECT_RATIOS = [// Common video resolutions.
2368  {
2369    ratio: '2.33',
2370    className: 'wp-embed-aspect-21-9'
2371  }, {
2372    ratio: '2.00',
2373    className: 'wp-embed-aspect-18-9'
2374  }, {
2375    ratio: '1.78',
2376    className: 'wp-embed-aspect-16-9'
2377  }, {
2378    ratio: '1.33',
2379    className: 'wp-embed-aspect-4-3'
2380  }, // Vertical video and instagram square video support.
2381  {
2382    ratio: '1.00',
2383    className: 'wp-embed-aspect-1-1'
2384  }, {
2385    ratio: '0.56',
2386    className: 'wp-embed-aspect-9-16'
2387  }, {
2388    ratio: '0.50',
2389    className: 'wp-embed-aspect-1-2'
2390  }];
2391  const WP_EMBED_TYPE = 'wp-embed';
2392  
2393  ;// CONCATENATED MODULE: external "lodash"
2394  var external_lodash_namespaceObject = window["lodash"];
2395  // EXTERNAL MODULE: ./node_modules/classnames/dedupe.js
2396  var dedupe = __webpack_require__(3827);
2397  var dedupe_default = /*#__PURE__*/__webpack_require__.n(dedupe);
2398  // EXTERNAL MODULE: ./node_modules/memize/index.js
2399  var memize = __webpack_require__(9756);
2400  var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
2401  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/util.js
2402  
2403  
2404  /**
2405   * Internal dependencies
2406   */
2407  
2408  /**
2409   * External dependencies
2410   */
2411  
2412  
2413  
2414  
2415  /**
2416   * WordPress dependencies
2417   */
2418  
2419  
2420  
2421  /**
2422   * Internal dependencies
2423   */
2424  
2425  const util_metadata = {
2426    $schema: "https://schemas.wp.org/trunk/block.json",
2427    apiVersion: 2,
2428    name: "core/embed",
2429    title: "Embed",
2430    category: "embed",
2431    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
2432    textdomain: "default",
2433    attributes: {
2434      url: {
2435        type: "string"
2436      },
2437      caption: {
2438        type: "string",
2439        source: "html",
2440        selector: "figcaption"
2441      },
2442      type: {
2443        type: "string"
2444      },
2445      providerNameSlug: {
2446        type: "string"
2447      },
2448      allowResponsive: {
2449        type: "boolean",
2450        "default": true
2451      },
2452      responsive: {
2453        type: "boolean",
2454        "default": false
2455      },
2456      previewable: {
2457        type: "boolean",
2458        "default": true
2459      }
2460    },
2461    supports: {
2462      align: true
2463    },
2464    editorStyle: "wp-block-embed-editor",
2465    style: "wp-block-embed"
2466  };
2467  const {
2468    name: DEFAULT_EMBED_BLOCK
2469  } = util_metadata;
2470  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
2471  
2472  /**
2473   * Returns the embed block's information by matching the provided service provider
2474   *
2475   * @param {string} provider The embed block's provider
2476   * @return {WPBlockVariation} The embed block's information
2477   */
2478  
2479  const getEmbedInfoByProvider = provider => {
2480    var _getBlockVariations;
2481  
2482    return (_getBlockVariations = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations === void 0 ? void 0 : _getBlockVariations.find(_ref => {
2483      let {
2484        name
2485      } = _ref;
2486      return name === provider;
2487    });
2488  };
2489  /**
2490   * Returns true if any of the regular expressions match the URL.
2491   *
2492   * @param {string} url      The URL to test.
2493   * @param {Array}  patterns The list of regular expressions to test agains.
2494   * @return {boolean} True if any of the regular expressions match the URL.
2495   */
2496  
2497  const matchesPatterns = function (url) {
2498    let patterns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
2499    return patterns.some(pattern => url.match(pattern));
2500  };
2501  /**
2502   * Finds the block variation that should be used for the URL,
2503   * based on the provided URL and the variation's patterns.
2504   *
2505   * @param {string} url The URL to test.
2506   * @return {WPBlockVariation} The block variation that should be used for this URL
2507   */
2508  
2509  const findMoreSuitableBlock = url => {
2510    var _getBlockVariations2;
2511  
2512    return (_getBlockVariations2 = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations2 === void 0 ? void 0 : _getBlockVariations2.find(_ref2 => {
2513      let {
2514        patterns
2515      } = _ref2;
2516      return matchesPatterns(url, patterns);
2517    });
2518  };
2519  const isFromWordPress = html => html && html.includes('class="wp-embedded-content"');
2520  const getPhotoHtml = photo => {
2521    // 100% width for the preview so it fits nicely into the document, some "thumbnails" are
2522    // actually the full size photo. If thumbnails not found, use full image.
2523    const imageUrl = photo.thumbnail_url || photo.url;
2524    const photoPreview = (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("img", {
2525      src: imageUrl,
2526      alt: photo.title,
2527      width: "100%"
2528    }));
2529    return (0,external_wp_element_namespaceObject.renderToString)(photoPreview);
2530  };
2531  /**
2532   * Creates a more suitable embed block based on the passed in props
2533   * and attributes generated from an embed block's preview.
2534   *
2535   * We require `attributesFromPreview` to be generated from the latest attributes
2536   * and preview, and because of the way the react lifecycle operates, we can't
2537   * guarantee that the attributes contained in the block's props are the latest
2538   * versions, so we require that these are generated separately.
2539   * See `getAttributesFromPreview` in the generated embed edit component.
2540   *
2541   * @param {Object} props                   The block's props.
2542   * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.
2543   * @return {Object|undefined} A more suitable embed block if one exists.
2544   */
2545  
2546  const createUpgradedEmbedBlock = function (props) {
2547    var _getBlockVariations3;
2548  
2549    let attributesFromPreview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2550    const {
2551      preview,
2552      attributes = {}
2553    } = props;
2554    const {
2555      url,
2556      providerNameSlug,
2557      type,
2558      ...restAttributes
2559    } = attributes;
2560    if (!url || !(0,external_wp_blocks_namespaceObject.getBlockType)(DEFAULT_EMBED_BLOCK)) return;
2561    const matchedBlock = findMoreSuitableBlock(url); // WordPress blocks can work on multiple sites, and so don't have patterns,
2562    // so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.
2563  
2564    const isCurrentBlockWP = providerNameSlug === 'wordpress' || type === WP_EMBED_TYPE; // If current block is not WordPress and a more suitable block found
2565    // that is different from the current one, create the new matched block.
2566  
2567    const shouldCreateNewBlock = !isCurrentBlockWP && matchedBlock && (matchedBlock.attributes.providerNameSlug !== providerNameSlug || !providerNameSlug);
2568  
2569    if (shouldCreateNewBlock) {
2570      return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
2571        url,
2572        ...restAttributes,
2573        ...matchedBlock.attributes
2574      });
2575    }
2576  
2577    const wpVariation = (_getBlockVariations3 = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations3 === void 0 ? void 0 : _getBlockVariations3.find(_ref3 => {
2578      let {
2579        name
2580      } = _ref3;
2581      return name === 'wordpress';
2582    }); // We can't match the URL for WordPress embeds, we have to check the HTML instead.
2583  
2584    if (!wpVariation || !preview || !isFromWordPress(preview.html) || isCurrentBlockWP) {
2585      return;
2586    } // This is not the WordPress embed block so transform it into one.
2587  
2588  
2589    return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
2590      url,
2591      ...wpVariation.attributes,
2592      // By now we have the preview, but when the new block first renders, it
2593      // won't have had all the attributes set, and so won't get the correct
2594      // type and it won't render correctly. So, we pass through the current attributes
2595      // here so that the initial render works when we switch to the WordPress
2596      // block. This only affects the WordPress block because it can't be
2597      // rendered in the usual Sandbox (it has a sandbox of its own) and it
2598      // relies on the preview to set the correct render type.
2599      ...attributesFromPreview
2600    });
2601  };
2602  /**
2603   * Removes all previously set aspect ratio related classes and return the rest
2604   * existing class names.
2605   *
2606   * @param {string} existingClassNames Any existing class names.
2607   * @return {string} The class names without any aspect ratio related class.
2608   */
2609  
2610  const removeAspectRatioClasses = existingClassNames => {
2611    if (!existingClassNames) {
2612      // Avoids extraneous work and also, by returning the same value as
2613      // received, ensures the post is not dirtied by a change of the block
2614      // attribute from `undefined` to an emtpy string.
2615      return existingClassNames;
2616    }
2617  
2618    const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, _ref4) => {
2619      let {
2620        className
2621      } = _ref4;
2622      accumulator[className] = false;
2623      return accumulator;
2624    }, {
2625      'wp-has-aspect-ratio': false
2626    });
2627    return dedupe_default()(existingClassNames, aspectRatioClassNames);
2628  };
2629  /**
2630   * Returns class names with any relevant responsive aspect ratio names.
2631   *
2632   * @param {string}  html               The preview HTML that possibly contains an iframe with width and height set.
2633   * @param {string}  existingClassNames Any existing class names.
2634   * @param {boolean} allowResponsive    If the responsive class names should be added, or removed.
2635   * @return {string} Deduped class names.
2636   */
2637  
2638  function getClassNames(html, existingClassNames) {
2639    let allowResponsive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
2640  
2641    if (!allowResponsive) {
2642      return removeAspectRatioClasses(existingClassNames);
2643    }
2644  
2645    const previewDocument = document.implementation.createHTMLDocument('');
2646    previewDocument.body.innerHTML = html;
2647    const iframe = previewDocument.body.querySelector('iframe'); // If we have a fixed aspect iframe, and it's a responsive embed block.
2648  
2649    if (iframe && iframe.height && iframe.width) {
2650      const aspectRatio = (iframe.width / iframe.height).toFixed(2); // Given the actual aspect ratio, find the widest ratio to support it.
2651  
2652      for (let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++) {
2653        const potentialRatio = ASPECT_RATIOS[ratioIndex];
2654  
2655        if (aspectRatio >= potentialRatio.ratio) {
2656          // Evaluate the difference between actual aspect ratio and closest match.
2657          // If the difference is too big, do not scale the embed according to aspect ratio.
2658          const ratioDiff = aspectRatio - potentialRatio.ratio;
2659  
2660          if (ratioDiff > 0.1) {
2661            // No close aspect ratio match found.
2662            return removeAspectRatioClasses(existingClassNames);
2663          } // Close aspect ratio match found.
2664  
2665  
2666          return dedupe_default()(removeAspectRatioClasses(existingClassNames), potentialRatio.className, 'wp-has-aspect-ratio');
2667        }
2668      }
2669    }
2670  
2671    return existingClassNames;
2672  }
2673  /**
2674   * Fallback behaviour for unembeddable URLs.
2675   * Creates a paragraph block containing a link to the URL, and calls `onReplace`.
2676   *
2677   * @param {string}   url       The URL that could not be embedded.
2678   * @param {Function} onReplace Function to call with the created fallback block.
2679   */
2680  
2681  function fallback(url, onReplace) {
2682    const link = (0,external_wp_element_namespaceObject.createElement)("a", {
2683      href: url
2684    }, url);
2685    onReplace((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
2686      content: (0,external_wp_element_namespaceObject.renderToString)(link)
2687    }));
2688  }
2689  /***
2690   * Gets block attributes based on the preview and responsive state.
2691   *
2692   * @param {Object} preview The preview data.
2693   * @param {string} title The block's title, e.g. Twitter.
2694   * @param {Object} currentClassNames The block's current class names.
2695   * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
2696   * @param {boolean} allowResponsive Apply responsive classes to fixed size content.
2697   * @return {Object} Attributes and values.
2698   */
2699  
2700  const getAttributesFromPreview = memize_default()(function (preview, title, currentClassNames, isResponsive) {
2701    let allowResponsive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
2702  
2703    if (!preview) {
2704      return {};
2705    }
2706  
2707    const attributes = {}; // Some plugins only return HTML with no type info, so default this to 'rich'.
2708  
2709    let {
2710      type = 'rich'
2711    } = preview; // If we got a provider name from the API, use it for the slug, otherwise we use the title,
2712    // because not all embed code gives us a provider name.
2713  
2714    const {
2715      html,
2716      provider_name: providerName
2717    } = preview;
2718    const providerNameSlug = (0,external_lodash_namespaceObject.kebabCase)((providerName || title).toLowerCase());
2719  
2720    if (isFromWordPress(html)) {
2721      type = WP_EMBED_TYPE;
2722    }
2723  
2724    if (html || 'photo' === type) {
2725      attributes.type = type;
2726      attributes.providerNameSlug = providerNameSlug;
2727    }
2728  
2729    attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive);
2730    return attributes;
2731  });
2732  
2733  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/edit.js
2734  
2735  
2736  /**
2737   * External dependencies
2738   */
2739  
2740  /**
2741   * WordPress dependencies
2742   */
2743  
2744  
2745  
2746  
2747  
2748  
2749  
2750  
2751  
2752  /**
2753   * Internal dependencies
2754   */
2755  
2756  
2757  const ALLOWED_MEDIA_TYPES = ['audio'];
2758  
2759  function AudioEdit(_ref) {
2760    let {
2761      attributes,
2762      className,
2763      noticeOperations,
2764      setAttributes,
2765      onReplace,
2766      isSelected,
2767      noticeUI,
2768      insertBlocksAfter
2769    } = _ref;
2770    const {
2771      id,
2772      autoplay,
2773      caption,
2774      loop,
2775      preload,
2776      src
2777    } = attributes;
2778    const isTemporaryAudio = !id && (0,external_wp_blob_namespaceObject.isBlobURL)(src);
2779    const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
2780      const {
2781        getSettings
2782      } = select(external_wp_blockEditor_namespaceObject.store);
2783      return getSettings().mediaUpload;
2784    }, []);
2785    (0,external_wp_element_namespaceObject.useEffect)(() => {
2786      if (!id && (0,external_wp_blob_namespaceObject.isBlobURL)(src)) {
2787        const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(src);
2788  
2789        if (file) {
2790          mediaUpload({
2791            filesList: [file],
2792            onFileChange: _ref2 => {
2793              let [{
2794                id: mediaId,
2795                url
2796              }] = _ref2;
2797              setAttributes({
2798                id: mediaId,
2799                src: url
2800              });
2801            },
2802            onError: e => {
2803              setAttributes({
2804                src: undefined,
2805                id: undefined
2806              });
2807              noticeOperations.createErrorNotice(e);
2808            },
2809            allowedTypes: ALLOWED_MEDIA_TYPES
2810          });
2811        }
2812      }
2813    }, []);
2814  
2815    function toggleAttribute(attribute) {
2816      return newValue => {
2817        setAttributes({
2818          [attribute]: newValue
2819        });
2820      };
2821    }
2822  
2823    function onSelectURL(newSrc) {
2824      // Set the block's src from the edit component's state, and switch off
2825      // the editing UI.
2826      if (newSrc !== src) {
2827        // Check if there's an embed block that handles this URL.
2828        const embedBlock = createUpgradedEmbedBlock({
2829          attributes: {
2830            url: newSrc
2831          }
2832        });
2833  
2834        if (undefined !== embedBlock && onReplace) {
2835          onReplace(embedBlock);
2836          return;
2837        }
2838  
2839        setAttributes({
2840          src: newSrc,
2841          id: undefined
2842        });
2843      }
2844    }
2845  
2846    function onUploadError(message) {
2847      noticeOperations.removeAllNotices();
2848      noticeOperations.createErrorNotice(message);
2849    }
2850  
2851    function getAutoplayHelp(checked) {
2852      return checked ? (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.') : null;
2853    }
2854  
2855    function onSelectAudio(media) {
2856      if (!media || !media.url) {
2857        // In this case there was an error and we should continue in the editing state
2858        // previous attributes should be removed because they may be temporary blob urls.
2859        setAttributes({
2860          src: undefined,
2861          id: undefined
2862        });
2863        return;
2864      } // Sets the block's attribute and updates the edit component from the
2865      // selected media, then switches off the editing UI.
2866  
2867  
2868      setAttributes({
2869        src: media.url,
2870        id: media.id
2871      });
2872    }
2873  
2874    const classes = classnames_default()(className, {
2875      'is-transient': isTemporaryAudio
2876    });
2877    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
2878      className: classes
2879    });
2880  
2881    if (!src) {
2882      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
2883        icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
2884          icon: library_audio
2885        }),
2886        onSelect: onSelectAudio,
2887        onSelectURL: onSelectURL,
2888        accept: "audio/*",
2889        allowedTypes: ALLOWED_MEDIA_TYPES,
2890        value: attributes,
2891        notices: noticeUI,
2892        onError: onUploadError
2893      }));
2894    }
2895  
2896    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
2897      group: "other"
2898    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
2899      mediaId: id,
2900      mediaURL: src,
2901      allowedTypes: ALLOWED_MEDIA_TYPES,
2902      accept: "audio/*",
2903      onSelect: onSelectAudio,
2904      onSelectURL: onSelectURL,
2905      onError: onUploadError
2906    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
2907      title: (0,external_wp_i18n_namespaceObject.__)('Audio settings')
2908    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
2909      label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
2910      onChange: toggleAttribute('autoplay'),
2911      checked: autoplay,
2912      help: getAutoplayHelp
2913    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
2914      label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
2915      onChange: toggleAttribute('loop'),
2916      checked: loop
2917    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
2918      label: (0,external_wp_i18n_namespaceObject._x)('Preload', 'noun; Audio block parameter'),
2919      value: preload || '' // `undefined` is required for the preload attribute to be unset.
2920      ,
2921      onChange: value => setAttributes({
2922        preload: value || undefined
2923      }),
2924      options: [{
2925        value: '',
2926        label: (0,external_wp_i18n_namespaceObject.__)('Browser default')
2927      }, {
2928        value: 'auto',
2929        label: (0,external_wp_i18n_namespaceObject.__)('Auto')
2930      }, {
2931        value: 'metadata',
2932        label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
2933      }, {
2934        value: 'none',
2935        label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
2936      }]
2937    }))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, {
2938      isDisabled: !isSelected
2939    }, (0,external_wp_element_namespaceObject.createElement)("audio", {
2940      controls: "controls",
2941      src: src
2942    })), 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, {
2943      tagName: "figcaption",
2944      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Audio caption text'),
2945      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
2946      value: caption,
2947      onChange: value => setAttributes({
2948        caption: value
2949      }),
2950      inlineToolbar: true,
2951      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
2952    })));
2953  }
2954  
2955  /* harmony default export */ var edit = ((0,external_wp_components_namespaceObject.withNotices)(AudioEdit));
2956  
2957  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/save.js
2958  
2959  
2960  /**
2961   * WordPress dependencies
2962   */
2963  
2964  function save(_ref) {
2965    let {
2966      attributes
2967    } = _ref;
2968    const {
2969      autoplay,
2970      caption,
2971      loop,
2972      preload,
2973      src
2974    } = attributes;
2975    return src && (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("audio", {
2976      controls: "controls",
2977      src: src,
2978      autoPlay: autoplay,
2979      loop: loop,
2980      preload: preload
2981    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
2982      tagName: "figcaption",
2983      value: caption
2984    }));
2985  }
2986  
2987  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/transforms.js
2988  /**
2989   * WordPress dependencies
2990   */
2991  
2992  
2993  const transforms = {
2994    from: [{
2995      type: 'files',
2996  
2997      isMatch(files) {
2998        return files.length === 1 && files[0].type.indexOf('audio/') === 0;
2999      },
3000  
3001      transform(files) {
3002        const file = files[0]; // We don't need to upload the media directly here
3003        // It's already done as part of the `componentDidMount`
3004        // in the audio block.
3005  
3006        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
3007          src: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
3008        });
3009        return block;
3010      }
3011  
3012    }, {
3013      type: 'shortcode',
3014      tag: 'audio',
3015      attributes: {
3016        src: {
3017          type: 'string',
3018          shortcode: _ref => {
3019            let {
3020              named: {
3021                src,
3022                mp3,
3023                m4a,
3024                ogg,
3025                wav,
3026                wma
3027              }
3028            } = _ref;
3029            return src || mp3 || m4a || ogg || wav || wma;
3030          }
3031        },
3032        loop: {
3033          type: 'string',
3034          shortcode: _ref2 => {
3035            let {
3036              named: {
3037                loop
3038              }
3039            } = _ref2;
3040            return loop;
3041          }
3042        },
3043        autoplay: {
3044          type: 'string',
3045          shortcode: _ref3 => {
3046            let {
3047              named: {
3048                autoplay
3049              }
3050            } = _ref3;
3051            return autoplay;
3052          }
3053        },
3054        preload: {
3055          type: 'string',
3056          shortcode: _ref4 => {
3057            let {
3058              named: {
3059                preload
3060              }
3061            } = _ref4;
3062            return preload;
3063          }
3064        }
3065      }
3066    }]
3067  };
3068  /* harmony default export */ var audio_transforms = (transforms);
3069  
3070  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/index.js
3071  /**
3072   * WordPress dependencies
3073   */
3074  
3075  /**
3076   * Internal dependencies
3077   */
3078  
3079  
3080  
3081  const audio_metadata = {
3082    $schema: "https://schemas.wp.org/trunk/block.json",
3083    apiVersion: 2,
3084    name: "core/audio",
3085    title: "Audio",
3086    category: "media",
3087    description: "Embed a simple audio player.",
3088    keywords: ["music", "sound", "podcast", "recording"],
3089    textdomain: "default",
3090    attributes: {
3091      src: {
3092        type: "string",
3093        source: "attribute",
3094        selector: "audio",
3095        attribute: "src"
3096      },
3097      caption: {
3098        type: "string",
3099        source: "html",
3100        selector: "figcaption"
3101      },
3102      id: {
3103        type: "number"
3104      },
3105      autoplay: {
3106        type: "boolean",
3107        source: "attribute",
3108        selector: "audio",
3109        attribute: "autoplay"
3110      },
3111      loop: {
3112        type: "boolean",
3113        source: "attribute",
3114        selector: "audio",
3115        attribute: "loop"
3116      },
3117      preload: {
3118        type: "string",
3119        source: "attribute",
3120        selector: "audio",
3121        attribute: "preload"
3122      }
3123    },
3124    supports: {
3125      anchor: true,
3126      align: true
3127    },
3128    editorStyle: "wp-block-audio-editor",
3129    style: "wp-block-audio"
3130  };
3131  
3132  
3133  const {
3134    name: audio_name
3135  } = audio_metadata;
3136  
3137  const audio_settings = {
3138    icon: library_audio,
3139    example: {
3140      attributes: {
3141        src: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg'
3142      }
3143    },
3144    transforms: audio_transforms,
3145    deprecated: deprecated,
3146    edit: edit,
3147    save: save
3148  };
3149  
3150  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/button.js
3151  
3152  
3153  /**
3154   * WordPress dependencies
3155   */
3156  
3157  const button_button = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3158    viewBox: "0 0 24 24",
3159    xmlns: "http://www.w3.org/2000/svg"
3160  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3161    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"
3162  }));
3163  /* harmony default export */ var library_button = (button_button);
3164  
3165  ;// CONCATENATED MODULE: external ["wp","compose"]
3166  var external_wp_compose_namespaceObject = window["wp"]["compose"];
3167  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/clean-empty-object.js
3168  /**
3169   * External dependencies
3170   */
3171  
3172  /**
3173   * Removed empty nodes from nested objects.
3174   *
3175   * @param {Object} object
3176   * @return {Object} Object cleaned from empty nodes.
3177   */
3178  
3179  const cleanEmptyObject = object => {
3180    if (!(0,external_lodash_namespaceObject.isObject)(object) || Array.isArray(object)) {
3181      return object;
3182    }
3183  
3184    const cleanedNestedObjects = (0,external_lodash_namespaceObject.pickBy)((0,external_lodash_namespaceObject.mapValues)(object, cleanEmptyObject), external_lodash_namespaceObject.identity);
3185    return (0,external_lodash_namespaceObject.isEmpty)(cleanedNestedObjects) ? undefined : cleanedNestedObjects;
3186  };
3187  
3188  /* harmony default export */ var clean_empty_object = (cleanEmptyObject);
3189  
3190  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/migrate-font-family.js
3191  /**
3192   * External dependencies
3193   */
3194  
3195  /**
3196   * Internal dependencies
3197   */
3198  
3199  
3200  /**
3201   * Migrates the current style.typography.fontFamily attribute,
3202   * whose value was "var:preset|font-family|helvetica-arial",
3203   * to the style.fontFamily attribute, whose value will be "helvetica-arial".
3204   *
3205   * @param {Object} attributes The current attributes
3206   * @return {Object} The updated attributes.
3207   */
3208  
3209  /* harmony default export */ function migrate_font_family(attributes) {
3210    var _attributes$style, _attributes$style$typ;
3211  
3212    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)) {
3213      return attributes;
3214    } // Clone first so when we delete the fontFamily
3215    // below we're not modifying the original
3216    // attributes. Because the deprecation may be discarded
3217    // we don't want to alter the original attributes.
3218  
3219  
3220    const atts = (0,external_lodash_namespaceObject.cloneDeep)(attributes);
3221    const fontFamily = atts.style.typography.fontFamily.split('|').pop();
3222    delete atts.style.typography.fontFamily;
3223    atts.style = clean_empty_object(atts.style);
3224    return { ...atts,
3225      fontFamily
3226    };
3227  }
3228  
3229  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/deprecated.js
3230  
3231  
3232  /**
3233   * External dependencies
3234   */
3235  
3236  
3237  /**
3238   * WordPress dependencies
3239   */
3240  
3241  
3242  
3243  /**
3244   * Internal dependencies
3245   */
3246  
3247  
3248  
3249  const migrateBorderRadius = attributes => {
3250    var _newAttributes$style, _newAttributes$style$, _newAttributes$style2;
3251  
3252    const {
3253      borderRadius,
3254      ...newAttributes
3255    } = attributes; // We have to check old property `borderRadius` and if
3256    // `styles.border.radius` is a `number`
3257  
3258    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 => {
3259      return typeof possibleBorderRadius === 'number' && possibleBorderRadius !== 0;
3260    });
3261  
3262    if (!oldBorderRadius) {
3263      return newAttributes;
3264    }
3265  
3266    return { ...newAttributes,
3267      style: { ...newAttributes.style,
3268        border: { ...((_newAttributes$style2 = newAttributes.style) === null || _newAttributes$style2 === void 0 ? void 0 : _newAttributes$style2.border),
3269          radius: `$oldBorderRadius}px`
3270        }
3271      }
3272    };
3273  };
3274  
3275  const migrateCustomColorsAndGradients = attributes => {
3276    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customGradient) {
3277      return attributes;
3278    }
3279  
3280    const style = {
3281      color: {}
3282    };
3283  
3284    if (attributes.customTextColor) {
3285      style.color.text = attributes.customTextColor;
3286    }
3287  
3288    if (attributes.customBackgroundColor) {
3289      style.color.background = attributes.customBackgroundColor;
3290    }
3291  
3292    if (attributes.customGradient) {
3293      style.color.gradient = attributes.customGradient;
3294    }
3295  
3296    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor', 'customGradient']),
3297      style
3298    };
3299  };
3300  
3301  const oldColorsMigration = attributes => {
3302    return migrateCustomColorsAndGradients((0,external_lodash_namespaceObject.omit)({ ...attributes,
3303      customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
3304      customBackgroundColor: attributes.color && '#' === attributes.color[0] ? attributes.color : undefined
3305    }, ['color', 'textColor']));
3306  };
3307  
3308  const blockAttributes = {
3309    url: {
3310      type: 'string',
3311      source: 'attribute',
3312      selector: 'a',
3313      attribute: 'href'
3314    },
3315    title: {
3316      type: 'string',
3317      source: 'attribute',
3318      selector: 'a',
3319      attribute: 'title'
3320    },
3321    text: {
3322      type: 'string',
3323      source: 'html',
3324      selector: 'a'
3325    }
3326  };
3327  const v10 = {
3328    attributes: {
3329      url: {
3330        type: 'string',
3331        source: 'attribute',
3332        selector: 'a',
3333        attribute: 'href'
3334      },
3335      title: {
3336        type: 'string',
3337        source: 'attribute',
3338        selector: 'a',
3339        attribute: 'title'
3340      },
3341      text: {
3342        type: 'string',
3343        source: 'html',
3344        selector: 'a'
3345      },
3346      linkTarget: {
3347        type: 'string',
3348        source: 'attribute',
3349        selector: 'a',
3350        attribute: 'target'
3351      },
3352      rel: {
3353        type: 'string',
3354        source: 'attribute',
3355        selector: 'a',
3356        attribute: 'rel'
3357      },
3358      placeholder: {
3359        type: 'string'
3360      },
3361      backgroundColor: {
3362        type: 'string'
3363      },
3364      textColor: {
3365        type: 'string'
3366      },
3367      gradient: {
3368        type: 'string'
3369      },
3370      width: {
3371        type: 'number'
3372      }
3373    },
3374    supports: {
3375      anchor: true,
3376      align: true,
3377      alignWide: false,
3378      color: {
3379        __experimentalSkipSerialization: true,
3380        gradients: true
3381      },
3382      typography: {
3383        fontSize: true,
3384        __experimentalFontFamily: true
3385      },
3386      reusable: false,
3387      spacing: {
3388        __experimentalSkipSerialization: true,
3389        padding: ['horizontal', 'vertical'],
3390        __experimentalDefaultControls: {
3391          padding: true
3392        }
3393      },
3394      __experimentalBorder: {
3395        radius: true,
3396        __experimentalSkipSerialization: true
3397      },
3398      __experimentalSelector: '.wp-block-button__link'
3399    },
3400  
3401    save(_ref) {
3402      var _style$border, _style$typography;
3403  
3404      let {
3405        attributes,
3406        className
3407      } = _ref;
3408      const {
3409        fontSize,
3410        linkTarget,
3411        rel,
3412        style,
3413        text,
3414        title,
3415        url,
3416        width
3417      } = attributes;
3418  
3419      if (!text) {
3420        return null;
3421      }
3422  
3423      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
3424      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
3425      const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
3426      const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, borderProps.className, {
3427        // For backwards compatibility add style that isn't provided via
3428        // block support.
3429        '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
3430      });
3431      const buttonStyle = { ...borderProps.style,
3432        ...colorProps.style,
3433        ...spacingProps.style
3434      }; // The use of a `title` attribute here is soft-deprecated, but still applied
3435      // if it had already been assigned, for the sake of backward-compatibility.
3436      // A title will no longer be assigned for new or updated button block links.
3437  
3438      const wrapperClasses = classnames_default()(className, {
3439        [`has-custom-width wp-block-button__width-$width}`]: width,
3440        [`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)
3441      });
3442      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
3443        className: wrapperClasses
3444      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3445        tagName: "a",
3446        className: buttonClasses,
3447        href: url,
3448        title: title,
3449        style: buttonStyle,
3450        value: text,
3451        target: linkTarget,
3452        rel: rel
3453      }));
3454    },
3455  
3456    migrate: migrate_font_family,
3457  
3458    isEligible(_ref2) {
3459      var _style$typography2;
3460  
3461      let {
3462        style
3463      } = _ref2;
3464      return style === null || style === void 0 ? void 0 : (_style$typography2 = style.typography) === null || _style$typography2 === void 0 ? void 0 : _style$typography2.fontFamily;
3465    }
3466  
3467  };
3468  const deprecated_deprecated = [v10, {
3469    supports: {
3470      anchor: true,
3471      align: true,
3472      alignWide: false,
3473      color: {
3474        __experimentalSkipSerialization: true,
3475        gradients: true
3476      },
3477      typography: {
3478        fontSize: true,
3479        __experimentalFontFamily: true
3480      },
3481      reusable: false,
3482      __experimentalSelector: '.wp-block-button__link'
3483    },
3484    attributes: { ...blockAttributes,
3485      linkTarget: {
3486        type: 'string',
3487        source: 'attribute',
3488        selector: 'a',
3489        attribute: 'target'
3490      },
3491      rel: {
3492        type: 'string',
3493        source: 'attribute',
3494        selector: 'a',
3495        attribute: 'rel'
3496      },
3497      placeholder: {
3498        type: 'string'
3499      },
3500      backgroundColor: {
3501        type: 'string'
3502      },
3503      textColor: {
3504        type: 'string'
3505      },
3506      gradient: {
3507        type: 'string'
3508      },
3509      width: {
3510        type: 'number'
3511      }
3512    },
3513  
3514    isEligible(_ref3) {
3515      var _style$border2;
3516  
3517      let {
3518        style
3519      } = _ref3;
3520      return typeof (style === null || style === void 0 ? void 0 : (_style$border2 = style.border) === null || _style$border2 === void 0 ? void 0 : _style$border2.radius) === 'number';
3521    },
3522  
3523    save(_ref4) {
3524      var _style$border3, _style$border4, _style$typography3;
3525  
3526      let {
3527        attributes,
3528        className
3529      } = _ref4;
3530      const {
3531        fontSize,
3532        linkTarget,
3533        rel,
3534        style,
3535        text,
3536        title,
3537        url,
3538        width
3539      } = attributes;
3540  
3541      if (!text) {
3542        return null;
3543      }
3544  
3545      const borderRadius = style === null || style === void 0 ? void 0 : (_style$border3 = style.border) === null || _style$border3 === void 0 ? void 0 : _style$border3.radius;
3546      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
3547      const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {
3548        '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
3549      });
3550      const buttonStyle = {
3551        borderRadius: borderRadius ? borderRadius : undefined,
3552        ...colorProps.style
3553      }; // The use of a `title` attribute here is soft-deprecated, but still applied
3554      // if it had already been assigned, for the sake of backward-compatibility.
3555      // A title will no longer be assigned for new or updated button block links.
3556  
3557      const wrapperClasses = classnames_default()(className, {
3558        [`has-custom-width wp-block-button__width-$width}`]: width,
3559        [`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)
3560      });
3561      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
3562        className: wrapperClasses
3563      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3564        tagName: "a",
3565        className: buttonClasses,
3566        href: url,
3567        title: title,
3568        style: buttonStyle,
3569        value: text,
3570        target: linkTarget,
3571        rel: rel
3572      }));
3573    },
3574  
3575    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
3576  }, {
3577    supports: {
3578      anchor: true,
3579      align: true,
3580      alignWide: false,
3581      color: {
3582        __experimentalSkipSerialization: true
3583      },
3584      reusable: false,
3585      __experimentalSelector: '.wp-block-button__link'
3586    },
3587    attributes: { ...blockAttributes,
3588      linkTarget: {
3589        type: 'string',
3590        source: 'attribute',
3591        selector: 'a',
3592        attribute: 'target'
3593      },
3594      rel: {
3595        type: 'string',
3596        source: 'attribute',
3597        selector: 'a',
3598        attribute: 'rel'
3599      },
3600      placeholder: {
3601        type: 'string'
3602      },
3603      borderRadius: {
3604        type: 'number'
3605      },
3606      backgroundColor: {
3607        type: 'string'
3608      },
3609      textColor: {
3610        type: 'string'
3611      },
3612      gradient: {
3613        type: 'string'
3614      },
3615      style: {
3616        type: 'object'
3617      },
3618      width: {
3619        type: 'number'
3620      }
3621    },
3622  
3623    save(_ref5) {
3624      let {
3625        attributes,
3626        className
3627      } = _ref5;
3628      const {
3629        borderRadius,
3630        linkTarget,
3631        rel,
3632        text,
3633        title,
3634        url,
3635        width
3636      } = attributes;
3637      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
3638      const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {
3639        'no-border-radius': borderRadius === 0
3640      });
3641      const buttonStyle = {
3642        borderRadius: borderRadius ? borderRadius + 'px' : undefined,
3643        ...colorProps.style
3644      }; // The use of a `title` attribute here is soft-deprecated, but still applied
3645      // if it had already been assigned, for the sake of backward-compatibility.
3646      // A title will no longer be assigned for new or updated button block links.
3647  
3648      const wrapperClasses = classnames_default()(className, {
3649        [`has-custom-width wp-block-button__width-$width}`]: width
3650      });
3651      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
3652        className: wrapperClasses
3653      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3654        tagName: "a",
3655        className: buttonClasses,
3656        href: url,
3657        title: title,
3658        style: buttonStyle,
3659        value: text,
3660        target: linkTarget,
3661        rel: rel
3662      }));
3663    },
3664  
3665    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
3666  }, {
3667    supports: {
3668      anchor: true,
3669      align: true,
3670      alignWide: false,
3671      color: {
3672        __experimentalSkipSerialization: true
3673      },
3674      reusable: false,
3675      __experimentalSelector: '.wp-block-button__link'
3676    },
3677    attributes: { ...blockAttributes,
3678      linkTarget: {
3679        type: 'string',
3680        source: 'attribute',
3681        selector: 'a',
3682        attribute: 'target'
3683      },
3684      rel: {
3685        type: 'string',
3686        source: 'attribute',
3687        selector: 'a',
3688        attribute: 'rel'
3689      },
3690      placeholder: {
3691        type: 'string'
3692      },
3693      borderRadius: {
3694        type: 'number'
3695      },
3696      backgroundColor: {
3697        type: 'string'
3698      },
3699      textColor: {
3700        type: 'string'
3701      },
3702      gradient: {
3703        type: 'string'
3704      },
3705      style: {
3706        type: 'object'
3707      },
3708      width: {
3709        type: 'number'
3710      }
3711    },
3712  
3713    save(_ref6) {
3714      let {
3715        attributes,
3716        className
3717      } = _ref6;
3718      const {
3719        borderRadius,
3720        linkTarget,
3721        rel,
3722        text,
3723        title,
3724        url,
3725        width
3726      } = attributes;
3727      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
3728      const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {
3729        'no-border-radius': borderRadius === 0
3730      });
3731      const buttonStyle = {
3732        borderRadius: borderRadius ? borderRadius + 'px' : undefined,
3733        ...colorProps.style
3734      }; // The use of a `title` attribute here is soft-deprecated, but still applied
3735      // if it had already been assigned, for the sake of backward-compatibility.
3736      // A title will no longer be assigned for new or updated button block links.
3737  
3738      const wrapperClasses = classnames_default()(className, {
3739        [`has-custom-width wp-block-button__width-$width}`]: width
3740      });
3741      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
3742        className: wrapperClasses
3743      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3744        tagName: "a",
3745        className: buttonClasses,
3746        href: url,
3747        title: title,
3748        style: buttonStyle,
3749        value: text,
3750        target: linkTarget,
3751        rel: rel
3752      }));
3753    },
3754  
3755    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
3756  }, {
3757    supports: {
3758      align: true,
3759      alignWide: false,
3760      color: {
3761        gradients: true
3762      }
3763    },
3764    attributes: { ...blockAttributes,
3765      linkTarget: {
3766        type: 'string',
3767        source: 'attribute',
3768        selector: 'a',
3769        attribute: 'target'
3770      },
3771      rel: {
3772        type: 'string',
3773        source: 'attribute',
3774        selector: 'a',
3775        attribute: 'rel'
3776      },
3777      placeholder: {
3778        type: 'string'
3779      },
3780      borderRadius: {
3781        type: 'number'
3782      },
3783      backgroundColor: {
3784        type: 'string'
3785      },
3786      textColor: {
3787        type: 'string'
3788      },
3789      gradient: {
3790        type: 'string'
3791      },
3792      style: {
3793        type: 'object'
3794      }
3795    },
3796  
3797    save(_ref7) {
3798      let {
3799        attributes
3800      } = _ref7;
3801      const {
3802        borderRadius,
3803        linkTarget,
3804        rel,
3805        text,
3806        title,
3807        url
3808      } = attributes;
3809      const buttonClasses = classnames_default()('wp-block-button__link', {
3810        'no-border-radius': borderRadius === 0
3811      });
3812      const buttonStyle = {
3813        borderRadius: borderRadius ? borderRadius + 'px' : undefined
3814      };
3815      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3816        tagName: "a",
3817        className: buttonClasses,
3818        href: url,
3819        title: title,
3820        style: buttonStyle,
3821        value: text,
3822        target: linkTarget,
3823        rel: rel
3824      });
3825    },
3826  
3827    migrate: migrateBorderRadius
3828  }, {
3829    supports: {
3830      align: true,
3831      alignWide: false
3832    },
3833    attributes: { ...blockAttributes,
3834      linkTarget: {
3835        type: 'string',
3836        source: 'attribute',
3837        selector: 'a',
3838        attribute: 'target'
3839      },
3840      rel: {
3841        type: 'string',
3842        source: 'attribute',
3843        selector: 'a',
3844        attribute: 'rel'
3845      },
3846      placeholder: {
3847        type: 'string'
3848      },
3849      borderRadius: {
3850        type: 'number'
3851      },
3852      backgroundColor: {
3853        type: 'string'
3854      },
3855      textColor: {
3856        type: 'string'
3857      },
3858      customBackgroundColor: {
3859        type: 'string'
3860      },
3861      customTextColor: {
3862        type: 'string'
3863      },
3864      customGradient: {
3865        type: 'string'
3866      },
3867      gradient: {
3868        type: 'string'
3869      }
3870    },
3871    isEligible: attributes => !!attributes.customTextColor || !!attributes.customBackgroundColor || !!attributes.customGradient,
3872    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateBorderRadius, migrateCustomColorsAndGradients),
3873  
3874    save(_ref8) {
3875      let {
3876        attributes
3877      } = _ref8;
3878      const {
3879        backgroundColor,
3880        borderRadius,
3881        customBackgroundColor,
3882        customTextColor,
3883        customGradient,
3884        linkTarget,
3885        gradient,
3886        rel,
3887        text,
3888        textColor,
3889        title,
3890        url
3891      } = attributes;
3892      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
3893      const backgroundClass = !customGradient && (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
3894  
3895      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
3896  
3897      const buttonClasses = classnames_default()('wp-block-button__link', {
3898        'has-text-color': textColor || customTextColor,
3899        [textClass]: textClass,
3900        'has-background': backgroundColor || customBackgroundColor || customGradient || gradient,
3901        [backgroundClass]: backgroundClass,
3902        'no-border-radius': borderRadius === 0,
3903        [gradientClass]: gradientClass
3904      });
3905      const buttonStyle = {
3906        background: customGradient ? customGradient : undefined,
3907        backgroundColor: backgroundClass || customGradient || gradient ? undefined : customBackgroundColor,
3908        color: textClass ? undefined : customTextColor,
3909        borderRadius: borderRadius ? borderRadius + 'px' : undefined
3910      }; // The use of a `title` attribute here is soft-deprecated, but still applied
3911      // if it had already been assigned, for the sake of backward-compatibility.
3912      // A title will no longer be assigned for new or updated button block links.
3913  
3914      return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3915        tagName: "a",
3916        className: buttonClasses,
3917        href: url,
3918        title: title,
3919        style: buttonStyle,
3920        value: text,
3921        target: linkTarget,
3922        rel: rel
3923      }));
3924    }
3925  
3926  }, {
3927    attributes: { ...blockAttributes,
3928      align: {
3929        type: 'string',
3930        default: 'none'
3931      },
3932      backgroundColor: {
3933        type: 'string'
3934      },
3935      textColor: {
3936        type: 'string'
3937      },
3938      customBackgroundColor: {
3939        type: 'string'
3940      },
3941      customTextColor: {
3942        type: 'string'
3943      },
3944      linkTarget: {
3945        type: 'string',
3946        source: 'attribute',
3947        selector: 'a',
3948        attribute: 'target'
3949      },
3950      rel: {
3951        type: 'string',
3952        source: 'attribute',
3953        selector: 'a',
3954        attribute: 'rel'
3955      },
3956      placeholder: {
3957        type: 'string'
3958      }
3959    },
3960  
3961    isEligible(attribute) {
3962      return attribute.className && attribute.className.includes('is-style-squared');
3963    },
3964  
3965    migrate(attributes) {
3966      let newClassName = attributes.className;
3967  
3968      if (newClassName) {
3969        newClassName = newClassName.replace(/is-style-squared[\s]?/, '').trim();
3970      }
3971  
3972      return migrateBorderRadius(migrateCustomColorsAndGradients({ ...attributes,
3973        className: newClassName ? newClassName : undefined,
3974        borderRadius: 0
3975      }));
3976    },
3977  
3978    save(_ref9) {
3979      let {
3980        attributes
3981      } = _ref9;
3982      const {
3983        backgroundColor,
3984        customBackgroundColor,
3985        customTextColor,
3986        linkTarget,
3987        rel,
3988        text,
3989        textColor,
3990        title,
3991        url
3992      } = attributes;
3993      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
3994      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
3995      const buttonClasses = classnames_default()('wp-block-button__link', {
3996        'has-text-color': textColor || customTextColor,
3997        [textClass]: textClass,
3998        'has-background': backgroundColor || customBackgroundColor,
3999        [backgroundClass]: backgroundClass
4000      });
4001      const buttonStyle = {
4002        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
4003        color: textClass ? undefined : customTextColor
4004      };
4005      return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4006        tagName: "a",
4007        className: buttonClasses,
4008        href: url,
4009        title: title,
4010        style: buttonStyle,
4011        value: text,
4012        target: linkTarget,
4013        rel: rel
4014      }));
4015    }
4016  
4017  }, {
4018    attributes: { ...blockAttributes,
4019      align: {
4020        type: 'string',
4021        default: 'none'
4022      },
4023      backgroundColor: {
4024        type: 'string'
4025      },
4026      textColor: {
4027        type: 'string'
4028      },
4029      customBackgroundColor: {
4030        type: 'string'
4031      },
4032      customTextColor: {
4033        type: 'string'
4034      }
4035    },
4036    migrate: oldColorsMigration,
4037  
4038    save(_ref10) {
4039      let {
4040        attributes
4041      } = _ref10;
4042      const {
4043        url,
4044        text,
4045        title,
4046        backgroundColor,
4047        textColor,
4048        customBackgroundColor,
4049        customTextColor
4050      } = attributes;
4051      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4052      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4053      const buttonClasses = classnames_default()('wp-block-button__link', {
4054        'has-text-color': textColor || customTextColor,
4055        [textClass]: textClass,
4056        'has-background': backgroundColor || customBackgroundColor,
4057        [backgroundClass]: backgroundClass
4058      });
4059      const buttonStyle = {
4060        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
4061        color: textClass ? undefined : customTextColor
4062      };
4063      return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4064        tagName: "a",
4065        className: buttonClasses,
4066        href: url,
4067        title: title,
4068        style: buttonStyle,
4069        value: text
4070      }));
4071    }
4072  
4073  }, {
4074    attributes: { ...blockAttributes,
4075      color: {
4076        type: 'string'
4077      },
4078      textColor: {
4079        type: 'string'
4080      },
4081      align: {
4082        type: 'string',
4083        default: 'none'
4084      }
4085    },
4086  
4087    save(_ref11) {
4088      let {
4089        attributes
4090      } = _ref11;
4091      const {
4092        url,
4093        text,
4094        title,
4095        align,
4096        color,
4097        textColor
4098      } = attributes;
4099      const buttonStyle = {
4100        backgroundColor: color,
4101        color: textColor
4102      };
4103      const linkClass = 'wp-block-button__link';
4104      return (0,external_wp_element_namespaceObject.createElement)("div", {
4105        className: `align$align}`
4106      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4107        tagName: "a",
4108        className: linkClass,
4109        href: url,
4110        title: title,
4111        style: buttonStyle,
4112        value: text
4113      }));
4114    },
4115  
4116    migrate: oldColorsMigration
4117  }, {
4118    attributes: { ...blockAttributes,
4119      color: {
4120        type: 'string'
4121      },
4122      textColor: {
4123        type: 'string'
4124      },
4125      align: {
4126        type: 'string',
4127        default: 'none'
4128      }
4129    },
4130  
4131    save(_ref12) {
4132      let {
4133        attributes
4134      } = _ref12;
4135      const {
4136        url,
4137        text,
4138        title,
4139        align,
4140        color,
4141        textColor
4142      } = attributes;
4143      return (0,external_wp_element_namespaceObject.createElement)("div", {
4144        className: `align$align}`,
4145        style: {
4146          backgroundColor: color
4147        }
4148      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4149        tagName: "a",
4150        href: url,
4151        title: title,
4152        style: {
4153          color: textColor
4154        },
4155        value: text
4156      }));
4157    },
4158  
4159    migrate: oldColorsMigration
4160  }];
4161  /* harmony default export */ var button_deprecated = (deprecated_deprecated);
4162  
4163  ;// CONCATENATED MODULE: external ["wp","keycodes"]
4164  var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
4165  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js
4166  
4167  
4168  /**
4169   * WordPress dependencies
4170   */
4171  
4172  const link_link = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
4173    xmlns: "http://www.w3.org/2000/svg",
4174    viewBox: "0 0 24 24"
4175  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
4176    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"
4177  }));
4178  /* harmony default export */ var library_link = (link_link);
4179  
4180  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js
4181  
4182  
4183  /**
4184   * WordPress dependencies
4185   */
4186  
4187  const linkOff = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
4188    xmlns: "http://www.w3.org/2000/svg",
4189    viewBox: "0 0 24 24"
4190  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
4191    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"
4192  }));
4193  /* harmony default export */ var link_off = (linkOff);
4194  
4195  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/edit.js
4196  
4197  
4198  
4199  /**
4200   * External dependencies
4201   */
4202  
4203  /**
4204   * WordPress dependencies
4205   */
4206  
4207  
4208  
4209  
4210  
4211  
4212  
4213  
4214  const NEW_TAB_REL = 'noreferrer noopener';
4215  
4216  function WidthPanel(_ref) {
4217    let {
4218      selectedWidth,
4219      setAttributes
4220    } = _ref;
4221  
4222    function handleChange(newWidth) {
4223      // Check if we are toggling the width off
4224      const width = selectedWidth === newWidth ? undefined : newWidth; // Update attributes.
4225  
4226      setAttributes({
4227        width
4228      });
4229    }
4230  
4231    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
4232      title: (0,external_wp_i18n_namespaceObject.__)('Width settings')
4233    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
4234      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button width')
4235    }, [25, 50, 75, 100].map(widthValue => {
4236      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
4237        key: widthValue,
4238        isSmall: true,
4239        variant: widthValue === selectedWidth ? 'primary' : undefined,
4240        onClick: () => handleChange(widthValue)
4241      }, widthValue, "%");
4242    })));
4243  }
4244  
4245  function ButtonEdit(props) {
4246    var _style$border;
4247  
4248    const {
4249      attributes,
4250      setAttributes,
4251      className,
4252      isSelected,
4253      onReplace,
4254      mergeBlocks
4255    } = props;
4256    const {
4257      linkTarget,
4258      placeholder,
4259      rel,
4260      style,
4261      text,
4262      url,
4263      width
4264    } = attributes;
4265    const onSetLinkRel = (0,external_wp_element_namespaceObject.useCallback)(value => {
4266      setAttributes({
4267        rel: value
4268      });
4269    }, [setAttributes]);
4270  
4271    function onToggleOpenInNewTab(value) {
4272      const newLinkTarget = value ? '_blank' : undefined;
4273      let updatedRel = rel;
4274  
4275      if (newLinkTarget && !rel) {
4276        updatedRel = NEW_TAB_REL;
4277      } else if (!newLinkTarget && rel === NEW_TAB_REL) {
4278        updatedRel = undefined;
4279      }
4280  
4281      setAttributes({
4282        linkTarget: newLinkTarget,
4283        rel: updatedRel
4284      });
4285    }
4286  
4287    function setButtonText(newText) {
4288      // Remove anchor tags from button text content.
4289      setAttributes({
4290        text: newText.replace(/<\/?a[^>]*>/g, '')
4291      });
4292    }
4293  
4294    function onKeyDown(event) {
4295      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
4296        startEditing(event);
4297      } else if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'k')) {
4298        var _richTextRef$current;
4299  
4300        unlink();
4301        (_richTextRef$current = richTextRef.current) === null || _richTextRef$current === void 0 ? void 0 : _richTextRef$current.focus();
4302      }
4303    }
4304  
4305    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
4306    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
4307    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
4308    const ref = (0,external_wp_element_namespaceObject.useRef)();
4309    const richTextRef = (0,external_wp_element_namespaceObject.useRef)();
4310    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
4311      ref,
4312      onKeyDown
4313    });
4314    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
4315    const isURLSet = !!url;
4316    const opensInNewTab = linkTarget === '_blank';
4317  
4318    function startEditing(event) {
4319      event.preventDefault();
4320      setIsEditingURL(true);
4321    }
4322  
4323    function unlink() {
4324      setAttributes({
4325        url: undefined,
4326        linkTarget: undefined,
4327        rel: undefined
4328      });
4329      setIsEditingURL(false);
4330    }
4331  
4332    (0,external_wp_element_namespaceObject.useEffect)(() => {
4333      if (!isSelected) {
4334        setIsEditingURL(false);
4335      }
4336    }, [isSelected]);
4337    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
4338      className: classnames_default()(blockProps.className, {
4339        [`has-custom-width wp-block-button__width-$width}`]: width,
4340        [`has-custom-font-size`]: blockProps.style.fontSize
4341      })
4342    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
4343      ref: richTextRef,
4344      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
4345      placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Add text…'),
4346      value: text,
4347      onChange: value => setButtonText(value),
4348      withoutInteractiveFormatting: true,
4349      className: classnames_default()(className, 'wp-block-button__link', colorProps.className, borderProps.className, {
4350        // For backwards compatibility add style that isn't
4351        // provided via block support.
4352        '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
4353      }),
4354      style: { ...borderProps.style,
4355        ...colorProps.style,
4356        ...spacingProps.style
4357      },
4358      onSplit: value => (0,external_wp_blocks_namespaceObject.createBlock)('core/button', { ...attributes,
4359        text: value
4360      }),
4361      onReplace: onReplace,
4362      onMerge: mergeBlocks,
4363      identifier: "text"
4364    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
4365      group: "block"
4366    }, !isURLSet && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
4367      name: "link",
4368      icon: library_link,
4369      title: (0,external_wp_i18n_namespaceObject.__)('Link'),
4370      shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
4371      onClick: startEditing
4372    }), isURLSet && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
4373      name: "link",
4374      icon: link_off,
4375      title: (0,external_wp_i18n_namespaceObject.__)('Unlink'),
4376      shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('k'),
4377      onClick: unlink,
4378      isActive: true
4379    })), isSelected && (isEditingURL || isURLSet) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
4380      position: "bottom center",
4381      onClose: () => {
4382        var _richTextRef$current2;
4383  
4384        setIsEditingURL(false);
4385        (_richTextRef$current2 = richTextRef.current) === null || _richTextRef$current2 === void 0 ? void 0 : _richTextRef$current2.focus();
4386      },
4387      anchorRef: ref === null || ref === void 0 ? void 0 : ref.current,
4388      focusOnMount: isEditingURL ? 'firstElement' : false,
4389      __unstableSlotName: '__unstable-block-tools-after'
4390    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
4391      className: "wp-block-navigation-link__inline-link-input",
4392      value: {
4393        url,
4394        opensInNewTab
4395      },
4396      onChange: _ref2 => {
4397        let {
4398          url: newURL = '',
4399          opensInNewTab: newOpensInNewTab
4400        } = _ref2;
4401        setAttributes({
4402          url: newURL
4403        });
4404  
4405        if (opensInNewTab !== newOpensInNewTab) {
4406          onToggleOpenInNewTab(newOpensInNewTab);
4407        }
4408      },
4409      onRemove: () => {
4410        var _richTextRef$current3;
4411  
4412        unlink();
4413        (_richTextRef$current3 = richTextRef.current) === null || _richTextRef$current3 === void 0 ? void 0 : _richTextRef$current3.focus();
4414      },
4415      forceIsEditingLink: isEditingURL
4416    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(WidthPanel, {
4417      selectedWidth: width,
4418      setAttributes: setAttributes
4419    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
4420      __experimentalGroup: "advanced"
4421    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
4422      label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
4423      value: rel || '',
4424      onChange: onSetLinkRel
4425    })));
4426  }
4427  
4428  /* harmony default export */ var button_edit = (ButtonEdit);
4429  
4430  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/save.js
4431  
4432  
4433  /**
4434   * External dependencies
4435   */
4436  
4437  /**
4438   * WordPress dependencies
4439   */
4440  
4441  
4442  function save_save(_ref) {
4443    var _style$border, _style$typography;
4444  
4445    let {
4446      attributes,
4447      className
4448    } = _ref;
4449    const {
4450      fontSize,
4451      linkTarget,
4452      rel,
4453      style,
4454      text,
4455      title,
4456      url,
4457      width
4458    } = attributes;
4459  
4460    if (!text) {
4461      return null;
4462    }
4463  
4464    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
4465    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4466    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
4467    const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, borderProps.className, {
4468      // For backwards compatibility add style that isn't provided via
4469      // block support.
4470      '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
4471    });
4472    const buttonStyle = { ...borderProps.style,
4473      ...colorProps.style,
4474      ...spacingProps.style
4475    }; // The use of a `title` attribute here is soft-deprecated, but still applied
4476    // if it had already been assigned, for the sake of backward-compatibility.
4477    // A title will no longer be assigned for new or updated button block links.
4478  
4479    const wrapperClasses = classnames_default()(className, {
4480      [`has-custom-width wp-block-button__width-$width}`]: width,
4481      [`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)
4482    });
4483    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
4484      className: wrapperClasses
4485    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4486      tagName: "a",
4487      className: buttonClasses,
4488      href: url,
4489      title: title,
4490      style: buttonStyle,
4491      value: text,
4492      target: linkTarget,
4493      rel: rel
4494    }));
4495  }
4496  
4497  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/index.js
4498  /**
4499   * WordPress dependencies
4500   */
4501  
4502  
4503  /**
4504   * Internal dependencies
4505   */
4506  
4507  
4508  
4509  const button_metadata = {
4510    $schema: "https://schemas.wp.org/trunk/block.json",
4511    apiVersion: 2,
4512    name: "core/button",
4513    title: "Button",
4514    category: "design",
4515    parent: ["core/buttons"],
4516    description: "Prompt visitors to take action with a button-style link.",
4517    keywords: ["link"],
4518    textdomain: "default",
4519    attributes: {
4520      url: {
4521        type: "string",
4522        source: "attribute",
4523        selector: "a",
4524        attribute: "href"
4525      },
4526      title: {
4527        type: "string",
4528        source: "attribute",
4529        selector: "a",
4530        attribute: "title"
4531      },
4532      text: {
4533        type: "string",
4534        source: "html",
4535        selector: "a"
4536      },
4537      linkTarget: {
4538        type: "string",
4539        source: "attribute",
4540        selector: "a",
4541        attribute: "target"
4542      },
4543      rel: {
4544        type: "string",
4545        source: "attribute",
4546        selector: "a",
4547        attribute: "rel"
4548      },
4549      placeholder: {
4550        type: "string"
4551      },
4552      backgroundColor: {
4553        type: "string"
4554      },
4555      textColor: {
4556        type: "string"
4557      },
4558      gradient: {
4559        type: "string"
4560      },
4561      width: {
4562        type: "number"
4563      }
4564    },
4565    supports: {
4566      anchor: true,
4567      align: true,
4568      alignWide: false,
4569      color: {
4570        __experimentalSkipSerialization: true,
4571        gradients: true,
4572        __experimentalDefaultControls: {
4573          background: true,
4574          text: true
4575        }
4576      },
4577      typography: {
4578        fontSize: true,
4579        __experimentalFontFamily: true,
4580        __experimentalDefaultControls: {
4581          fontSize: true
4582        }
4583      },
4584      reusable: false,
4585      spacing: {
4586        __experimentalSkipSerialization: true,
4587        padding: ["horizontal", "vertical"],
4588        __experimentalDefaultControls: {
4589          padding: true
4590        }
4591      },
4592      __experimentalBorder: {
4593        radius: true,
4594        __experimentalSkipSerialization: true,
4595        __experimentalDefaultControls: {
4596          radius: true
4597        }
4598      },
4599      __experimentalSelector: ".wp-block-button__link"
4600    },
4601    styles: [{
4602      name: "fill",
4603      label: "Fill",
4604      isDefault: true
4605    }, {
4606      name: "outline",
4607      label: "Outline"
4608    }],
4609    editorStyle: "wp-block-button-editor",
4610    style: "wp-block-button"
4611  };
4612  
4613  const {
4614    name: button_name
4615  } = button_metadata;
4616  
4617  const button_settings = {
4618    icon: library_button,
4619    example: {
4620      attributes: {
4621        className: 'is-style-fill',
4622        text: (0,external_wp_i18n_namespaceObject.__)('Call to Action')
4623      }
4624    },
4625    edit: button_edit,
4626    save: save_save,
4627    deprecated: button_deprecated,
4628    merge: (a, _ref) => {
4629      let {
4630        text = ''
4631      } = _ref;
4632      return { ...a,
4633        text: (a.text || '') + text
4634      };
4635    }
4636  };
4637  
4638  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/buttons.js
4639  
4640  
4641  /**
4642   * WordPress dependencies
4643   */
4644  
4645  const buttons = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
4646    viewBox: "0 0 24 24",
4647    xmlns: "http://www.w3.org/2000/svg"
4648  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
4649    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"
4650  }));
4651  /* harmony default export */ var library_buttons = (buttons);
4652  
4653  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/deprecated.js
4654  
4655  
4656  /**
4657   * External dependencies
4658   */
4659  
4660  /**
4661   * WordPress dependencies
4662   */
4663  
4664  
4665  /**
4666   * @param {Object} attributes Block's attributes.
4667   */
4668  
4669  const migrateWithLayout = attributes => {
4670    if (!!attributes.layout) {
4671      return attributes;
4672    }
4673  
4674    const {
4675      contentJustification,
4676      orientation,
4677      ...updatedAttributes
4678    } = attributes;
4679  
4680    if (contentJustification || orientation) {
4681      Object.assign(updatedAttributes, {
4682        layout: {
4683          type: 'flex',
4684          ...(contentJustification && {
4685            justifyContent: contentJustification
4686          }),
4687          ...(orientation && {
4688            orientation
4689          })
4690        }
4691      });
4692    }
4693  
4694    return updatedAttributes;
4695  };
4696  
4697  const buttons_deprecated_deprecated = [{
4698    attributes: {
4699      contentJustification: {
4700        type: 'string'
4701      },
4702      orientation: {
4703        type: 'string',
4704        default: 'horizontal'
4705      }
4706    },
4707    supports: {
4708      anchor: true,
4709      align: ['wide', 'full'],
4710      __experimentalExposeControlsToChildren: true,
4711      spacing: {
4712        blockGap: true,
4713        margin: ['top', 'bottom'],
4714        __experimentalDefaultControls: {
4715          blockGap: true
4716        }
4717      }
4718    },
4719    isEligible: _ref => {
4720      let {
4721        contentJustification,
4722        orientation
4723      } = _ref;
4724      return !!contentJustification || !!orientation;
4725    },
4726    migrate: migrateWithLayout,
4727  
4728    save(_ref2) {
4729      let {
4730        attributes: {
4731          contentJustification,
4732          orientation
4733        }
4734      } = _ref2;
4735      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
4736        className: classnames_default()({
4737          [`is-content-justification-$contentJustification}`]: contentJustification,
4738          'is-vertical': orientation === 'vertical'
4739        })
4740      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
4741    }
4742  
4743  }, {
4744    supports: {
4745      align: ['center', 'left', 'right'],
4746      anchor: true
4747    },
4748  
4749    save() {
4750      return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
4751    },
4752  
4753    isEligible(_ref3) {
4754      let {
4755        align
4756      } = _ref3;
4757      return align && ['center', 'left', 'right'].includes(align);
4758    },
4759  
4760    migrate(attributes) {
4761      return migrateWithLayout({ ...attributes,
4762        align: undefined,
4763        // Floating Buttons blocks shouldn't have been supported in the
4764        // first place. Most users using them probably expected them to
4765        // act like content justification controls, so these blocks are
4766        // migrated to use content justification.
4767        // As for center-aligned Buttons blocks, the content justification
4768        // equivalent will create an identical end result in most cases.
4769        contentJustification: attributes.align
4770      });
4771    }
4772  
4773  }];
4774  /* harmony default export */ var buttons_deprecated = (buttons_deprecated_deprecated);
4775  
4776  ;// CONCATENATED MODULE: external ["wp","richText"]
4777  var external_wp_richText_namespaceObject = window["wp"]["richText"];
4778  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/transforms.js
4779  /**
4780   * WordPress dependencies
4781   */
4782  
4783  
4784  /**
4785   * Internal dependencies
4786   */
4787  
4788  const {
4789    name: transforms_name
4790  } = {
4791    $schema: "https://schemas.wp.org/trunk/block.json",
4792    apiVersion: 2,
4793    name: "core/buttons",
4794    title: "Buttons",
4795    category: "design",
4796    description: "Prompt visitors to take action with a group of button-style links.",
4797    keywords: ["link"],
4798    textdomain: "default",
4799    supports: {
4800      anchor: true,
4801      align: ["wide", "full"],
4802      __experimentalExposeControlsToChildren: true,
4803      spacing: {
4804        blockGap: true,
4805        margin: ["top", "bottom"],
4806        __experimentalDefaultControls: {
4807          blockGap: true
4808        }
4809      },
4810      __experimentalLayout: {
4811        allowSwitching: false,
4812        allowInheriting: false,
4813        "default": {
4814          type: "flex"
4815        }
4816      }
4817    },
4818    editorStyle: "wp-block-buttons-editor",
4819    style: "wp-block-buttons"
4820  };
4821  const transforms_transforms = {
4822    from: [{
4823      type: 'block',
4824      isMultiBlock: true,
4825      blocks: ['core/button'],
4826      transform: buttons => // Creates the buttons block.
4827      (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, {}, // Loop the selected buttons.
4828      buttons.map(attributes => // Create singular button in the buttons block.
4829      (0,external_wp_blocks_namespaceObject.createBlock)('core/button', attributes)))
4830    }, {
4831      type: 'block',
4832      isMultiBlock: true,
4833      blocks: ['core/paragraph'],
4834      transform: buttons => // Creates the buttons block.
4835      (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, {}, // Loop the selected buttons.
4836      buttons.map(attributes => {
4837        const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content); // Remove any HTML tags.
4838  
4839        const text = element.innerText || ''; // Get first url.
4840  
4841        const link = element.querySelector('a');
4842        const url = link === null || link === void 0 ? void 0 : link.getAttribute('href'); // Create singular button in the buttons block.
4843  
4844        return (0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
4845          text,
4846          url
4847        });
4848      })),
4849      isMatch: paragraphs => {
4850        return paragraphs.every(attributes => {
4851          const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content);
4852          const text = element.innerText || '';
4853          const links = element.querySelectorAll('a');
4854          return text.length <= 30 && links.length <= 1;
4855        });
4856      }
4857    }]
4858  };
4859  /* harmony default export */ var buttons_transforms = (transforms_transforms);
4860  
4861  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/edit.js
4862  
4863  
4864  /**
4865   * WordPress dependencies
4866   */
4867  
4868  
4869  /**
4870   * Internal dependencies
4871   */
4872  
4873  
4874  const ALLOWED_BLOCKS = [button_name];
4875  const DEFAULT_BLOCK = {
4876    name: button_name,
4877    attributesToCopy: ['backgroundColor', 'border', 'className', 'fontFamily', 'fontSize', 'gradient', 'style', 'textColor', 'width']
4878  };
4879  
4880  function ButtonsEdit(_ref) {
4881    let {
4882      attributes: {
4883        layout = {}
4884      }
4885    } = _ref;
4886    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
4887    const preferredStyle = (0,external_wp_data_namespaceObject.useSelect)(select => {
4888      var _preferredStyleVariat;
4889  
4890      const preferredStyleVariations = select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalPreferredStyleVariations;
4891  
4892      return preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat[button_name];
4893    }, []);
4894    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
4895      allowedBlocks: ALLOWED_BLOCKS,
4896      __experimentalDefaultBlock: DEFAULT_BLOCK,
4897      __experimentalDirectInsert: true,
4898      template: [[button_name, {
4899        className: preferredStyle && `is-style-$preferredStyle}`
4900      }]],
4901      __experimentalLayout: layout,
4902      templateInsertUpdatesSelection: true
4903    });
4904    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
4905  }
4906  
4907  /* harmony default export */ var buttons_edit = (ButtonsEdit);
4908  
4909  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/save.js
4910  
4911  
4912  /**
4913   * WordPress dependencies
4914   */
4915  
4916  function buttons_save_save() {
4917    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save());
4918    return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps);
4919  }
4920  
4921  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/index.js
4922  /**
4923   * WordPress dependencies
4924   */
4925  
4926  
4927  /**
4928   * Internal dependencies
4929   */
4930  
4931  
4932  
4933  
4934  const buttons_metadata = {
4935    $schema: "https://schemas.wp.org/trunk/block.json",
4936    apiVersion: 2,
4937    name: "core/buttons",
4938    title: "Buttons",
4939    category: "design",
4940    description: "Prompt visitors to take action with a group of button-style links.",
4941    keywords: ["link"],
4942    textdomain: "default",
4943    supports: {
4944      anchor: true,
4945      align: ["wide", "full"],
4946      __experimentalExposeControlsToChildren: true,
4947      spacing: {
4948        blockGap: true,
4949        margin: ["top", "bottom"],
4950        __experimentalDefaultControls: {
4951          blockGap: true
4952        }
4953      },
4954      __experimentalLayout: {
4955        allowSwitching: false,
4956        allowInheriting: false,
4957        "default": {
4958          type: "flex"
4959        }
4960      }
4961    },
4962    editorStyle: "wp-block-buttons-editor",
4963    style: "wp-block-buttons"
4964  };
4965  
4966  const {
4967    name: buttons_name
4968  } = buttons_metadata;
4969  
4970  const buttons_settings = {
4971    icon: library_buttons,
4972    example: {
4973      innerBlocks: [{
4974        name: 'core/button',
4975        attributes: {
4976          text: (0,external_wp_i18n_namespaceObject.__)('Find out more')
4977        }
4978      }, {
4979        name: 'core/button',
4980        attributes: {
4981          text: (0,external_wp_i18n_namespaceObject.__)('Contact us')
4982        }
4983      }]
4984    },
4985    deprecated: buttons_deprecated,
4986    transforms: buttons_transforms,
4987    edit: buttons_edit,
4988    save: buttons_save_save
4989  };
4990  
4991  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/calendar.js
4992  
4993  
4994  /**
4995   * WordPress dependencies
4996   */
4997  
4998  const calendar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
4999    viewBox: "0 0 24 24",
5000    xmlns: "http://www.w3.org/2000/svg"
5001  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
5002    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"
5003  }));
5004  /* harmony default export */ var library_calendar = (calendar);
5005  
5006  ;// CONCATENATED MODULE: external "moment"
5007  var external_moment_namespaceObject = window["moment"];
5008  var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_namespaceObject);
5009  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/edit.js
5010  
5011  
5012  /**
5013   * External dependencies
5014   */
5015  
5016  
5017  /**
5018   * WordPress dependencies
5019   */
5020  
5021  
5022  
5023  
5024  
5025  
5026  
5027  
5028  const getYearMonth = memize_default()(date => {
5029    if (!date) {
5030      return {};
5031    }
5032  
5033    const momentDate = external_moment_default()(date);
5034    return {
5035      year: momentDate.year(),
5036      month: momentDate.month() + 1
5037    };
5038  });
5039  function CalendarEdit(_ref) {
5040    let {
5041      attributes
5042    } = _ref;
5043    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
5044    const {
5045      date,
5046      hasPosts,
5047      hasPostsResolved
5048    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
5049      const {
5050        getEntityRecords,
5051        hasFinishedResolution
5052      } = select(external_wp_coreData_namespaceObject.store);
5053      const singlePublishedPostQuery = {
5054        status: 'publish',
5055        per_page: 1
5056      };
5057      const posts = getEntityRecords('postType', 'post', singlePublishedPostQuery);
5058      const postsResolved = hasFinishedResolution('getEntityRecords', ['postType', 'post', singlePublishedPostQuery]);
5059  
5060      let _date; // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
5061      // Blocks can be loaded into a *non-post* block editor.
5062      // eslint-disable-next-line @wordpress/data-no-store-string-literals
5063  
5064  
5065      const editorSelectors = select('core/editor');
5066  
5067      if (editorSelectors) {
5068        const postType = editorSelectors.getEditedPostAttribute('type'); // Dates are used to overwrite year and month used on the calendar.
5069        // This overwrite should only happen for 'post' post types.
5070        // For other post types the calendar always displays the current month.
5071  
5072        if (postType === 'post') {
5073          _date = editorSelectors.getEditedPostAttribute('date');
5074        }
5075      }
5076  
5077      return {
5078        date: _date,
5079        hasPostsResolved: postsResolved,
5080        hasPosts: postsResolved && (posts === null || posts === void 0 ? void 0 : posts.length) === 1
5081      };
5082    }, []);
5083  
5084    if (!hasPosts) {
5085      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
5086        icon: library_calendar,
5087        label: (0,external_wp_i18n_namespaceObject.__)('Calendar')
5088      }, !hasPostsResolved ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null) : (0,external_wp_i18n_namespaceObject.__)('No published posts found.')));
5089    }
5090  
5091    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()), {
5092      block: "core/calendar",
5093      attributes: { ...attributes,
5094        ...getYearMonth(date)
5095      }
5096    })));
5097  }
5098  
5099  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/transforms.js
5100  /**
5101   * WordPress dependencies
5102   */
5103  
5104  const calendar_transforms_transforms = {
5105    from: [{
5106      type: 'block',
5107      blocks: ['core/archives'],
5108      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/calendar')
5109    }],
5110    to: [{
5111      type: 'block',
5112      blocks: ['core/archives'],
5113      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/archives')
5114    }]
5115  };
5116  /* harmony default export */ var calendar_transforms = (calendar_transforms_transforms);
5117  
5118  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/index.js
5119  /**
5120   * WordPress dependencies
5121   */
5122  
5123  /**
5124   * Internal dependencies
5125   */
5126  
5127  const calendar_metadata = {
5128    $schema: "https://schemas.wp.org/trunk/block.json",
5129    apiVersion: 2,
5130    name: "core/calendar",
5131    title: "Calendar",
5132    category: "widgets",
5133    description: "A calendar of your site\u2019s posts.",
5134    keywords: ["posts", "archive"],
5135    textdomain: "default",
5136    attributes: {
5137      month: {
5138        type: "integer"
5139      },
5140      year: {
5141        type: "integer"
5142      }
5143    },
5144    supports: {
5145      align: true
5146    },
5147    style: "wp-block-calendar"
5148  };
5149  
5150  
5151  const {
5152    name: calendar_name
5153  } = calendar_metadata;
5154  
5155  const calendar_settings = {
5156    icon: library_calendar,
5157    example: {},
5158    edit: CalendarEdit,
5159    transforms: calendar_transforms
5160  };
5161  
5162  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js
5163  
5164  
5165  /**
5166   * WordPress dependencies
5167   */
5168  
5169  const category = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
5170    viewBox: "0 0 24 24",
5171    xmlns: "http://www.w3.org/2000/svg"
5172  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
5173    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",
5174    fillRule: "evenodd",
5175    clipRule: "evenodd"
5176  }));
5177  /* harmony default export */ var library_category = (category);
5178  
5179  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin.js
5180  
5181  
5182  /**
5183   * WordPress dependencies
5184   */
5185  
5186  const pin = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
5187    xmlns: "http://www.w3.org/2000/svg",
5188    viewBox: "0 0 24 24"
5189  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
5190    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"
5191  }));
5192  /* harmony default export */ var library_pin = (pin);
5193  
5194  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/edit.js
5195  
5196  
5197  /**
5198   * External dependencies
5199   */
5200  
5201  /**
5202   * WordPress dependencies
5203   */
5204  
5205  
5206  
5207  
5208  
5209  
5210  
5211  function CategoriesEdit(_ref) {
5212    let {
5213      attributes: {
5214        displayAsDropdown,
5215        showHierarchy,
5216        showPostCounts,
5217        showOnlyTopLevel
5218      },
5219      setAttributes
5220    } = _ref;
5221    const selectId = (0,external_wp_compose_namespaceObject.useInstanceId)(CategoriesEdit, 'blocks-category-select');
5222    const query = {
5223      per_page: -1,
5224      hide_empty: true,
5225      context: 'view'
5226    };
5227  
5228    if (showOnlyTopLevel) {
5229      query.parent = 0;
5230    }
5231  
5232    const {
5233      records: categories,
5234      isResolving
5235    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('taxonomy', 'category', query);
5236  
5237    const getCategoriesList = parentId => {
5238      if (!(categories !== null && categories !== void 0 && categories.length)) {
5239        return [];
5240      }
5241  
5242      if (parentId === null) {
5243        return categories;
5244      }
5245  
5246      return categories.filter(_ref2 => {
5247        let {
5248          parent
5249        } = _ref2;
5250        return parent === parentId;
5251      });
5252    };
5253  
5254    const getCategoryListClassName = level => {
5255      return `wp-block-categories__list wp-block-categories__list-level-$level}`;
5256    };
5257  
5258    const toggleAttribute = attributeName => newValue => setAttributes({
5259      [attributeName]: newValue
5260    });
5261  
5262    const renderCategoryName = name => !name ? (0,external_wp_i18n_namespaceObject.__)('(Untitled)') : (0,external_lodash_namespaceObject.unescape)(name).trim();
5263  
5264    const renderCategoryList = () => {
5265      const parentId = showHierarchy ? 0 : null;
5266      const categoriesList = getCategoriesList(parentId);
5267      return (0,external_wp_element_namespaceObject.createElement)("ul", {
5268        className: getCategoryListClassName(0)
5269      }, categoriesList.map(category => renderCategoryListItem(category, 0)));
5270    };
5271  
5272    const renderCategoryListItem = (category, level) => {
5273      const childCategories = getCategoriesList(category.id);
5274      const {
5275        id,
5276        link,
5277        count,
5278        name
5279      } = category;
5280      return (0,external_wp_element_namespaceObject.createElement)("li", {
5281        key: id
5282      }, (0,external_wp_element_namespaceObject.createElement)("a", {
5283        href: link,
5284        target: "_blank",
5285        rel: "noreferrer noopener"
5286      }, renderCategoryName(name)), showPostCounts && (0,external_wp_element_namespaceObject.createElement)("span", {
5287        className: "wp-block-categories__post-count"
5288      }, ` ($count})`), showHierarchy && !!childCategories.length && (0,external_wp_element_namespaceObject.createElement)("ul", {
5289        className: getCategoryListClassName(level + 1)
5290      }, childCategories.map(childCategory => renderCategoryListItem(childCategory, level + 1))));
5291    };
5292  
5293    const renderCategoryDropdown = () => {
5294      const parentId = showHierarchy ? 0 : null;
5295      const categoriesList = getCategoriesList(parentId);
5296      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, {
5297        as: "label",
5298        htmlFor: selectId
5299      }, (0,external_wp_i18n_namespaceObject.__)('Categories')), (0,external_wp_element_namespaceObject.createElement)("select", {
5300        id: selectId,
5301        className: "wp-block-categories__dropdown"
5302      }, categoriesList.map(category => renderCategoryDropdownItem(category, 0))));
5303    };
5304  
5305    const renderCategoryDropdownItem = (category, level) => {
5306      const {
5307        id,
5308        count,
5309        name
5310      } = category;
5311      const childCategories = getCategoriesList(id);
5312      return [(0,external_wp_element_namespaceObject.createElement)("option", {
5313        key: id
5314      }, (0,external_lodash_namespaceObject.times)(level * 3, () => '\xa0'), renderCategoryName(name), showPostCounts && ` ($count})`), showHierarchy && !!childCategories.length && childCategories.map(childCategory => renderCategoryDropdownItem(childCategory, level + 1))];
5315    };
5316  
5317    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, {
5318      title: (0,external_wp_i18n_namespaceObject.__)('Categories settings')
5319    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
5320      label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
5321      checked: displayAsDropdown,
5322      onChange: toggleAttribute('displayAsDropdown')
5323    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
5324      label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
5325      checked: showPostCounts,
5326      onChange: toggleAttribute('showPostCounts')
5327    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
5328      label: (0,external_wp_i18n_namespaceObject.__)('Show only top level categories'),
5329      checked: showOnlyTopLevel,
5330      onChange: toggleAttribute('showOnlyTopLevel')
5331    }), !showOnlyTopLevel && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
5332      label: (0,external_wp_i18n_namespaceObject.__)('Show hierarchy'),
5333      checked: showHierarchy,
5334      onChange: toggleAttribute('showHierarchy')
5335    }))), isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
5336      icon: library_pin,
5337      label: (0,external_wp_i18n_namespaceObject.__)('Categories')
5338    }, (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()));
5339  }
5340  
5341  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/index.js
5342  /**
5343   * WordPress dependencies
5344   */
5345  
5346  /**
5347   * Internal dependencies
5348   */
5349  
5350  const categories_metadata = {
5351    $schema: "https://schemas.wp.org/trunk/block.json",
5352    apiVersion: 2,
5353    name: "core/categories",
5354    title: "Categories",
5355    category: "widgets",
5356    description: "Display a list of all categories.",
5357    textdomain: "default",
5358    attributes: {
5359      displayAsDropdown: {
5360        type: "boolean",
5361        "default": false
5362      },
5363      showHierarchy: {
5364        type: "boolean",
5365        "default": false
5366      },
5367      showPostCounts: {
5368        type: "boolean",
5369        "default": false
5370      },
5371      showOnlyTopLevel: {
5372        type: "boolean",
5373        "default": false
5374      }
5375    },
5376    supports: {
5377      align: true,
5378      html: false
5379    },
5380    editorStyle: "wp-block-categories-editor",
5381    style: "wp-block-categories"
5382  };
5383  
5384  const {
5385    name: categories_name
5386  } = categories_metadata;
5387  
5388  const categories_settings = {
5389    icon: library_category,
5390    example: {},
5391    edit: CategoriesEdit
5392  };
5393  
5394  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/classic.js
5395  
5396  
5397  /**
5398   * WordPress dependencies
5399   */
5400  
5401  const classic = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
5402    viewBox: "0 0 24 24",
5403    xmlns: "http://www.w3.org/2000/svg"
5404  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
5405    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"
5406  }));
5407  /* harmony default export */ var library_classic = (classic);
5408  
5409  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/convert-to-blocks-button.js
5410  
5411  
5412  /**
5413   * WordPress dependencies
5414   */
5415  
5416  
5417  
5418  
5419  
5420  
5421  const ConvertToBlocksButton = _ref => {
5422    let {
5423      clientId
5424    } = _ref;
5425    const {
5426      replaceBlocks
5427    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
5428    const block = (0,external_wp_data_namespaceObject.useSelect)(select => {
5429      return select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId);
5430    }, [clientId]);
5431    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
5432      onClick: () => replaceBlocks(block.clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({
5433        HTML: (0,external_wp_blocks_namespaceObject.serialize)(block)
5434      }))
5435    }, (0,external_wp_i18n_namespaceObject.__)('Convert to blocks'));
5436  };
5437  
5438  /* harmony default export */ var convert_to_blocks_button = (ConvertToBlocksButton);
5439  
5440  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/edit.js
5441  
5442  
5443  /**
5444   * External dependencies
5445   */
5446  
5447  /**
5448   * WordPress dependencies
5449   */
5450  
5451  
5452  
5453  
5454  
5455  
5456  
5457  /**
5458   * Internal dependencies
5459   */
5460  
5461  
5462  const {
5463    wp: edit_wp
5464  } = window;
5465  
5466  function isTmceEmpty(editor) {
5467    // When tinyMce is empty the content seems to be:
5468    // <p><br data-mce-bogus="1"></p>
5469    // avoid expensive checks for large documents
5470    const body = editor.getBody();
5471  
5472    if (body.childNodes.length > 1) {
5473      return false;
5474    } else if (body.childNodes.length === 0) {
5475      return true;
5476    }
5477  
5478    if (body.childNodes[0].childNodes.length > 1) {
5479      return false;
5480    }
5481  
5482    return /^\n?$/.test(body.innerText || body.textContent);
5483  }
5484  
5485  function ClassicEdit(_ref) {
5486    let {
5487      clientId,
5488      attributes: {
5489        content
5490      },
5491      setAttributes,
5492      onReplace
5493    } = _ref;
5494    const {
5495      getMultiSelectedBlockClientIds
5496    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
5497    const didMount = (0,external_wp_element_namespaceObject.useRef)(false);
5498    (0,external_wp_element_namespaceObject.useEffect)(() => {
5499      if (!didMount.current) {
5500        return;
5501      }
5502  
5503      const editor = window.tinymce.get(`editor-$clientId}`);
5504      const currentContent = editor === null || editor === void 0 ? void 0 : editor.getContent();
5505  
5506      if (currentContent !== content) {
5507        editor.setContent(content || '');
5508      }
5509    }, [content]);
5510    (0,external_wp_element_namespaceObject.useEffect)(() => {
5511      const {
5512        baseURL,
5513        suffix
5514      } = window.wpEditorL10n.tinymce;
5515      didMount.current = true;
5516      window.tinymce.EditorManager.overrideDefaults({
5517        base_url: baseURL,
5518        suffix
5519      });
5520  
5521      function onSetup(editor) {
5522        let bookmark;
5523  
5524        if (content) {
5525          editor.on('loadContent', () => editor.setContent(content));
5526        }
5527  
5528        editor.on('blur', () => {
5529          var _getMultiSelectedBloc;
5530  
5531          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.
5532          // This causes a scroll to the top of editor content on return from some content updating dialogs so tracking
5533          // scroll position until this is fixed in core.
5534  
5535          const scrollContainer = document.querySelector('.interface-interface-skeleton__content');
5536          const scrollPosition = scrollContainer.scrollTop; // Only update attributes if we aren't multi-selecting blocks.
5537          // Updating during multi-selection can overwrite attributes of other blocks.
5538  
5539          if (!((_getMultiSelectedBloc = getMultiSelectedBlockClientIds()) !== null && _getMultiSelectedBloc !== void 0 && _getMultiSelectedBloc.length)) {
5540            setAttributes({
5541              content: editor.getContent()
5542            });
5543          }
5544  
5545          editor.once('focus', () => {
5546            if (bookmark) {
5547              editor.selection.moveToBookmark(bookmark);
5548  
5549              if (scrollContainer.scrollTop !== scrollPosition) {
5550                scrollContainer.scrollTop = scrollPosition;
5551              }
5552            }
5553          });
5554          return false;
5555        });
5556        editor.on('mousedown touchstart', () => {
5557          bookmark = null;
5558        });
5559        const debouncedOnChange = (0,external_lodash_namespaceObject.debounce)(() => {
5560          const value = editor.getContent();
5561  
5562          if (value !== editor._lastChange) {
5563            editor._lastChange = value;
5564            setAttributes({
5565              content: value
5566            });
5567          }
5568        }, 250);
5569        editor.on('Paste Change input Undo Redo', debouncedOnChange); // We need to cancel the debounce call because when we remove
5570        // the editor (onUnmount) this callback is executed in
5571        // another tick. This results in setting the content to empty.
5572  
5573        editor.on('remove', debouncedOnChange.cancel);
5574        editor.on('keydown', event => {
5575          if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z')) {
5576            // Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.
5577            event.stopPropagation();
5578          }
5579  
5580          if ((event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) && isTmceEmpty(editor)) {
5581            // Delete the block.
5582            onReplace([]);
5583            event.preventDefault();
5584            event.stopImmediatePropagation();
5585          }
5586  
5587          const {
5588            altKey
5589          } = event;
5590          /*
5591           * Prevent Mousetrap from kicking in: TinyMCE already uses its own
5592           * `alt+f10` shortcut to focus its toolbar.
5593           */
5594  
5595          if (altKey && event.keyCode === external_wp_keycodes_namespaceObject.F10) {
5596            event.stopPropagation();
5597          }
5598        });
5599        editor.on('init', () => {
5600          const rootNode = editor.getBody(); // Create the toolbar by refocussing the editor.
5601  
5602          if (rootNode.ownerDocument.activeElement === rootNode) {
5603            rootNode.blur();
5604            editor.focus();
5605          }
5606        });
5607      }
5608  
5609      function initialize() {
5610        const {
5611          settings
5612        } = window.wpEditorL10n.tinymce;
5613        edit_wp.oldEditor.initialize(`editor-$clientId}`, {
5614          tinymce: { ...settings,
5615            inline: true,
5616            content_css: false,
5617            fixed_toolbar_container: `#toolbar-$clientId}`,
5618            setup: onSetup
5619          }
5620        });
5621      }
5622  
5623      function onReadyStateChange() {
5624        if (document.readyState === 'complete') {
5625          initialize();
5626        }
5627      }
5628  
5629      if (document.readyState === 'complete') {
5630        initialize();
5631      } else {
5632        document.addEventListener('readystatechange', onReadyStateChange);
5633      }
5634  
5635      return () => {
5636        document.removeEventListener('readystatechange', onReadyStateChange);
5637        edit_wp.oldEditor.remove(`editor-$clientId}`);
5638      };
5639    }, []);
5640  
5641    function focus() {
5642      const editor = window.tinymce.get(`editor-$clientId}`);
5643  
5644      if (editor) {
5645        editor.focus();
5646      }
5647    }
5648  
5649    function onToolbarKeyDown(event) {
5650      // Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.
5651      event.stopPropagation(); // Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.
5652  
5653      event.nativeEvent.stopImmediatePropagation();
5654    } // Disable reasons:
5655    //
5656    // jsx-a11y/no-static-element-interactions
5657    //  - the toolbar itself is non-interactive, but must capture events
5658    //    from the KeyboardShortcuts component to stop their propagation.
5659  
5660    /* eslint-disable jsx-a11y/no-static-element-interactions */
5661  
5662  
5663    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, {
5664      clientId: clientId
5665    }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", {
5666      key: "toolbar",
5667      id: `toolbar-$clientId}`,
5668      className: "block-library-classic__toolbar",
5669      onClick: focus,
5670      "data-placeholder": (0,external_wp_i18n_namespaceObject.__)('Classic'),
5671      onKeyDown: onToolbarKeyDown
5672    }), (0,external_wp_element_namespaceObject.createElement)("div", {
5673      key: "editor",
5674      id: `editor-$clientId}`,
5675      className: "wp-block-freeform block-library-rich-text__tinymce"
5676    })));
5677    /* eslint-enable jsx-a11y/no-static-element-interactions */
5678  }
5679  
5680  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/save.js
5681  
5682  
5683  /**
5684   * WordPress dependencies
5685   */
5686  
5687  function freeform_save_save(_ref) {
5688    let {
5689      attributes
5690    } = _ref;
5691    const {
5692      content
5693    } = attributes;
5694    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, content);
5695  }
5696  
5697  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/index.js
5698  /**
5699   * WordPress dependencies
5700   */
5701  
5702  /**
5703   * Internal dependencies
5704   */
5705  
5706  
5707  const freeform_metadata = {
5708    $schema: "https://schemas.wp.org/trunk/block.json",
5709    apiVersion: 2,
5710    name: "core/freeform",
5711    title: "Classic",
5712    category: "text",
5713    description: "Use the classic WordPress editor.",
5714    textdomain: "default",
5715    attributes: {
5716      content: {
5717        type: "string",
5718        source: "html"
5719      }
5720    },
5721    supports: {
5722      className: false,
5723      customClassName: false,
5724      reusable: false
5725    },
5726    editorStyle: "wp-block-freeform-editor"
5727  };
5728  
5729  const {
5730    name: freeform_name
5731  } = freeform_metadata;
5732  
5733  const freeform_settings = {
5734    icon: library_classic,
5735    edit: ClassicEdit,
5736    save: freeform_save_save
5737  };
5738  
5739  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js
5740  
5741  
5742  /**
5743   * WordPress dependencies
5744   */
5745  
5746  const code = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
5747    viewBox: "0 0 24 24",
5748    xmlns: "http://www.w3.org/2000/svg"
5749  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
5750    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"
5751  }));
5752  /* harmony default export */ var library_code = (code);
5753  
5754  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/edit.js
5755  
5756  
5757  /**
5758   * WordPress dependencies
5759   */
5760  
5761  
5762  function CodeEdit(_ref) {
5763    let {
5764      attributes,
5765      setAttributes,
5766      onRemove
5767    } = _ref;
5768    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
5769    return (0,external_wp_element_namespaceObject.createElement)("pre", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
5770      tagName: "code",
5771      value: attributes.content,
5772      onChange: content => setAttributes({
5773        content
5774      }),
5775      onRemove: onRemove,
5776      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write code…'),
5777      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Code'),
5778      preserveWhiteSpace: true,
5779      __unstablePastePlainText: true
5780    }));
5781  }
5782  
5783  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/utils.js
5784  /**
5785   * External dependencies
5786   */
5787  
5788  /**
5789   * Escapes ampersands, shortcodes, and links.
5790   *
5791   * @param {string} content The content of a code block.
5792   * @return {string} The given content with some characters escaped.
5793   */
5794  
5795  function utils_escape(content) {
5796    return (0,external_lodash_namespaceObject.flow)(escapeOpeningSquareBrackets, escapeProtocolInIsolatedUrls)(content || '');
5797  }
5798  /**
5799   * Returns the given content with all opening shortcode characters converted
5800   * into their HTML entity counterpart (i.e. [ => &#91;). For instance, a
5801   * shortcode like [embed] becomes &#91;embed]
5802   *
5803   * This function replicates the escaping of HTML tags, where a tag like
5804   * <strong> becomes &lt;strong>.
5805   *
5806   * @param {string} content The content of a code block.
5807   * @return {string} The given content with its opening shortcode characters
5808   *                  converted into their HTML entity counterpart
5809   *                  (i.e. [ => &#91;)
5810   */
5811  
5812  function escapeOpeningSquareBrackets(content) {
5813    return content.replace(/\[/g, '&#91;');
5814  }
5815  /**
5816   * Converts the first two forward slashes of any isolated URL into their HTML
5817   * counterparts (i.e. // => &#47;&#47;). For instance, https://youtube.com/watch?x
5818   * becomes https:&#47;&#47;youtube.com/watch?x.
5819   *
5820   * An isolated URL is a URL that sits in its own line, surrounded only by spacing
5821   * characters.
5822   *
5823   * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403
5824   *
5825   * @param {string} content The content of a code block.
5826   * @return {string} The given content with its ampersands converted into
5827   *                  their HTML entity counterpart (i.e. & => &amp;)
5828   */
5829  
5830  
5831  function escapeProtocolInIsolatedUrls(content) {
5832    return content.replace(/^(\s*https?:)\/\/([^\s<>"]+\s*)$/m, '$1&#47;&#47;$2');
5833  }
5834  
5835  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/save.js
5836  
5837  
5838  /**
5839   * WordPress dependencies
5840   */
5841  
5842  /**
5843   * Internal dependencies
5844   */
5845  
5846  
5847  function code_save_save(_ref) {
5848    let {
5849      attributes
5850    } = _ref;
5851    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, {
5852      tagName: "code",
5853      value: utils_escape(attributes.content)
5854    }));
5855  }
5856  
5857  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/transforms.js
5858  /**
5859   * WordPress dependencies
5860   */
5861  
5862  const code_transforms_transforms = {
5863    from: [{
5864      type: 'enter',
5865      regExp: /^```$/,
5866      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/code')
5867    }, {
5868      type: 'block',
5869      blocks: ['core/html', 'core/paragraph'],
5870      transform: _ref => {
5871        let {
5872          content
5873        } = _ref;
5874        return (0,external_wp_blocks_namespaceObject.createBlock)('core/code', {
5875          content
5876        });
5877      }
5878    }, {
5879      type: 'raw',
5880      isMatch: node => node.nodeName === 'PRE' && node.children.length === 1 && node.firstChild.nodeName === 'CODE',
5881      schema: {
5882        pre: {
5883          children: {
5884            code: {
5885              children: {
5886                '#text': {}
5887              }
5888            }
5889          }
5890        }
5891      }
5892    }]
5893  };
5894  /* harmony default export */ var code_transforms = (code_transforms_transforms);
5895  
5896  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/index.js
5897  /**
5898   * WordPress dependencies
5899   */
5900  
5901  
5902  /**
5903   * Internal dependencies
5904   */
5905  
5906  
5907  const code_metadata = {
5908    $schema: "https://schemas.wp.org/trunk/block.json",
5909    apiVersion: 2,
5910    name: "core/code",
5911    title: "Code",
5912    category: "text",
5913    description: "Display code snippets that respect your spacing and tabs.",
5914    textdomain: "default",
5915    attributes: {
5916      content: {
5917        type: "string",
5918        source: "html",
5919        selector: "code"
5920      }
5921    },
5922    supports: {
5923      anchor: true,
5924      typography: {
5925        fontSize: true,
5926        lineHeight: true,
5927        __experimentalFontStyle: true,
5928        __experimentalFontWeight: true,
5929        __experimentalLetterSpacing: true,
5930        __experimentalTextTransform: true,
5931        __experimentalDefaultControls: {
5932          fontSize: true
5933        }
5934      },
5935      spacing: {
5936        margin: ["top", "bottom"],
5937        padding: true
5938      },
5939      __experimentalBorder: {
5940        radius: true,
5941        color: true,
5942        width: true,
5943        style: true,
5944        __experimentalDefaultControls: {
5945          width: true,
5946          color: true
5947        }
5948      },
5949      color: {
5950        text: true,
5951        background: true,
5952        gradients: true,
5953        __experimentalDefaultControls: {
5954          background: true,
5955          text: true
5956        }
5957      }
5958    },
5959    style: "wp-block-code"
5960  };
5961  
5962  
5963  const {
5964    name: code_name
5965  } = code_metadata;
5966  
5967  const code_settings = {
5968    icon: library_code,
5969    example: {
5970      attributes: {
5971        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
5972        // translators: Preserve \n markers for line breaks
5973        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 );')
5974        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
5975  
5976      }
5977    },
5978    transforms: code_transforms,
5979    edit: CodeEdit,
5980    save: code_save_save
5981  };
5982  
5983  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/column.js
5984  
5985  
5986  /**
5987   * WordPress dependencies
5988   */
5989  
5990  const column = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
5991    xmlns: "http://www.w3.org/2000/svg",
5992    viewBox: "0 0 24 24"
5993  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
5994    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"
5995  }));
5996  /* harmony default export */ var library_column = (column);
5997  
5998  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/deprecated.js
5999  
6000  
6001  /**
6002   * External dependencies
6003   */
6004  
6005  /**
6006   * WordPress dependencies
6007   */
6008  
6009  
6010  const column_deprecated_deprecated = [{
6011    attributes: {
6012      verticalAlignment: {
6013        type: 'string'
6014      },
6015      width: {
6016        type: 'number',
6017        min: 0,
6018        max: 100
6019      }
6020    },
6021  
6022    isEligible(_ref) {
6023      let {
6024        width
6025      } = _ref;
6026      return isFinite(width);
6027    },
6028  
6029    migrate(attributes) {
6030      return { ...attributes,
6031        width: `$attributes.width}%`
6032      };
6033    },
6034  
6035    save(_ref2) {
6036      let {
6037        attributes
6038      } = _ref2;
6039      const {
6040        verticalAlignment,
6041        width
6042      } = attributes;
6043      const wrapperClasses = classnames_default()({
6044        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
6045      });
6046      const style = {
6047        flexBasis: width + '%'
6048      };
6049      return (0,external_wp_element_namespaceObject.createElement)("div", {
6050        className: wrapperClasses,
6051        style: style
6052      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
6053    }
6054  
6055  }];
6056  /* harmony default export */ var column_deprecated = (column_deprecated_deprecated);
6057  
6058  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/edit.js
6059  
6060  
6061  /**
6062   * External dependencies
6063   */
6064  
6065  /**
6066   * WordPress dependencies
6067   */
6068  
6069  
6070  
6071  
6072  
6073  
6074  function ColumnEdit(_ref) {
6075    let {
6076      attributes: {
6077        verticalAlignment,
6078        width,
6079        templateLock = false,
6080        allowedBlocks
6081      },
6082      setAttributes,
6083      clientId
6084    } = _ref;
6085    const classes = classnames_default()('block-core-columns', {
6086      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
6087    });
6088    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
6089      availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['%', 'px', 'em', 'rem', 'vw']
6090    });
6091    const {
6092      columnsIds,
6093      hasChildBlocks,
6094      rootClientId
6095    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
6096      const {
6097        getBlockOrder,
6098        getBlockRootClientId
6099      } = select(external_wp_blockEditor_namespaceObject.store);
6100      const rootId = getBlockRootClientId(clientId);
6101      return {
6102        hasChildBlocks: getBlockOrder(clientId).length > 0,
6103        rootClientId: rootId,
6104        columnsIds: getBlockOrder(rootId)
6105      };
6106    }, [clientId]);
6107    const {
6108      updateBlockAttributes
6109    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
6110  
6111    const updateAlignment = value => {
6112      // Update own alignment.
6113      setAttributes({
6114        verticalAlignment: value
6115      }); // Reset parent Columns block.
6116  
6117      updateBlockAttributes(rootClientId, {
6118        verticalAlignment: null
6119      });
6120    };
6121  
6122    const widthWithUnit = Number.isFinite(width) ? width + '%' : width;
6123    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
6124      className: classes,
6125      style: widthWithUnit ? {
6126        flexBasis: widthWithUnit
6127      } : undefined
6128    });
6129    const columnsCount = columnsIds.length;
6130    const currentColumnPosition = columnsIds.indexOf(clientId) + 1;
6131    const label = (0,external_wp_i18n_namespaceObject.sprintf)(
6132    /* translators: 1: Block label (i.e. "Block: Column"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */
6133    (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$d of %3$d)'), blockProps['aria-label'], currentColumnPosition, columnsCount);
6134    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ ...blockProps,
6135      'aria-label': label
6136    }, {
6137      templateLock,
6138      allowedBlocks,
6139      renderAppender: hasChildBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
6140    });
6141    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, {
6142      onChange: updateAlignment,
6143      value: verticalAlignment
6144    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
6145      title: (0,external_wp_i18n_namespaceObject.__)('Column settings')
6146    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
6147      label: (0,external_wp_i18n_namespaceObject.__)('Width'),
6148      labelPosition: "edge",
6149      __unstableInputWidth: "80px",
6150      value: width || '',
6151      onChange: nextWidth => {
6152        nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
6153        setAttributes({
6154          width: nextWidth
6155        });
6156      },
6157      units: units
6158    }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
6159  }
6160  
6161  /* harmony default export */ var column_edit = (ColumnEdit);
6162  
6163  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/save.js
6164  
6165  
6166  /**
6167   * External dependencies
6168   */
6169  
6170  /**
6171   * WordPress dependencies
6172   */
6173  
6174  
6175  function column_save_save(_ref) {
6176    let {
6177      attributes
6178    } = _ref;
6179    const {
6180      verticalAlignment,
6181      width
6182    } = attributes;
6183    const wrapperClasses = classnames_default()({
6184      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
6185    });
6186    let style;
6187  
6188    if (width && /\d/.test(width)) {
6189      // Numbers are handled for backward compatibility as they can be still provided with templates.
6190      let flexBasis = Number.isFinite(width) ? width + '%' : width; // In some cases we need to round the width to a shorter float.
6191  
6192      if (!Number.isFinite(width) && width !== null && width !== void 0 && width.endsWith('%')) {
6193        const multiplier = 1000000000000; // Shrink the number back to a reasonable float.
6194  
6195        flexBasis = Math.round(Number.parseFloat(width) * multiplier) / multiplier + '%';
6196      }
6197  
6198      style = {
6199        flexBasis
6200      };
6201    }
6202  
6203    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
6204      className: wrapperClasses,
6205      style
6206    });
6207    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
6208    return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps);
6209  }
6210  
6211  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/index.js
6212  /**
6213   * WordPress dependencies
6214   */
6215  
6216  /**
6217   * Internal dependencies
6218   */
6219  
6220  
6221  
6222  const column_metadata = {
6223    $schema: "https://schemas.wp.org/trunk/block.json",
6224    apiVersion: 2,
6225    name: "core/column",
6226    title: "Column",
6227    category: "text",
6228    parent: ["core/columns"],
6229    description: "A single column within a columns block.",
6230    textdomain: "default",
6231    attributes: {
6232      verticalAlignment: {
6233        type: "string"
6234      },
6235      width: {
6236        type: "string"
6237      },
6238      allowedBlocks: {
6239        type: "array"
6240      },
6241      templateLock: {
6242        type: ["string", "boolean"],
6243        "enum": ["all", "insert", false]
6244      }
6245    },
6246    supports: {
6247      anchor: true,
6248      reusable: false,
6249      html: false,
6250      color: {
6251        gradients: true,
6252        link: true,
6253        __experimentalDefaultControls: {
6254          background: true,
6255          text: true
6256        }
6257      },
6258      spacing: {
6259        blockGap: true,
6260        padding: true,
6261        __experimentalDefaultControls: {
6262          padding: true
6263        }
6264      },
6265      __experimentalLayout: true
6266    }
6267  };
6268  
6269  const {
6270    name: column_name
6271  } = column_metadata;
6272  
6273  const column_settings = {
6274    icon: library_column,
6275    edit: column_edit,
6276    save: column_save_save,
6277    deprecated: column_deprecated
6278  };
6279  
6280  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/columns.js
6281  
6282  
6283  /**
6284   * WordPress dependencies
6285   */
6286  
6287  const columns = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
6288    viewBox: "0 0 24 24",
6289    xmlns: "http://www.w3.org/2000/svg"
6290  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
6291    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"
6292  }));
6293  /* harmony default export */ var library_columns = (columns);
6294  
6295  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/deprecated.js
6296  
6297  
6298  /**
6299   * External dependencies
6300   */
6301  
6302  
6303  /**
6304   * WordPress dependencies
6305   */
6306  
6307  
6308  
6309  /**
6310   * Given an HTML string for a deprecated columns inner block, returns the
6311   * column index to which the migrated inner block should be assigned. Returns
6312   * undefined if the inner block was not assigned to a column.
6313   *
6314   * @param {string} originalContent Deprecated Columns inner block HTML.
6315   *
6316   * @return {?number} Column to which inner block is to be assigned.
6317   */
6318  
6319  function getDeprecatedLayoutColumn(originalContent) {
6320    let {
6321      doc
6322    } = getDeprecatedLayoutColumn;
6323  
6324    if (!doc) {
6325      doc = document.implementation.createHTMLDocument('');
6326      getDeprecatedLayoutColumn.doc = doc;
6327    }
6328  
6329    let columnMatch;
6330    doc.body.innerHTML = originalContent;
6331  
6332    for (const classListItem of doc.body.firstChild.classList) {
6333      if (columnMatch = classListItem.match(/^layout-column-(\d+)$/)) {
6334        return Number(columnMatch[1]) - 1;
6335      }
6336    }
6337  }
6338  
6339  const migrateCustomColors = attributes => {
6340    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
6341      return attributes;
6342    }
6343  
6344    const style = {
6345      color: {}
6346    };
6347  
6348    if (attributes.customTextColor) {
6349      style.color.text = attributes.customTextColor;
6350    }
6351  
6352    if (attributes.customBackgroundColor) {
6353      style.color.background = attributes.customBackgroundColor;
6354    }
6355  
6356    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor']),
6357      style,
6358      isStackedOnMobile: true
6359    };
6360  };
6361  
6362  /* harmony default export */ var columns_deprecated = ([{
6363    attributes: {
6364      verticalAlignment: {
6365        type: 'string'
6366      },
6367      backgroundColor: {
6368        type: 'string'
6369      },
6370      customBackgroundColor: {
6371        type: 'string'
6372      },
6373      customTextColor: {
6374        type: 'string'
6375      },
6376      textColor: {
6377        type: 'string'
6378      }
6379    },
6380    migrate: migrateCustomColors,
6381  
6382    save(_ref) {
6383      let {
6384        attributes
6385      } = _ref;
6386      const {
6387        verticalAlignment,
6388        backgroundColor,
6389        customBackgroundColor,
6390        textColor,
6391        customTextColor
6392      } = attributes;
6393      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
6394      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
6395      const className = classnames_default()({
6396        'has-background': backgroundColor || customBackgroundColor,
6397        'has-text-color': textColor || customTextColor,
6398        [backgroundClass]: backgroundClass,
6399        [textClass]: textClass,
6400        [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment
6401      });
6402      const style = {
6403        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
6404        color: textClass ? undefined : customTextColor
6405      };
6406      return (0,external_wp_element_namespaceObject.createElement)("div", {
6407        className: className ? className : undefined,
6408        style: style
6409      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
6410    }
6411  
6412  }, {
6413    attributes: {
6414      columns: {
6415        type: 'number',
6416        default: 2
6417      }
6418    },
6419  
6420    isEligible(attributes, innerBlocks) {
6421      // Since isEligible is called on every valid instance of the
6422      // Columns block and a deprecation is the unlikely case due to
6423      // its subsequent migration, optimize for the `false` condition
6424      // by performing a naive, inaccurate pass at inner blocks.
6425      const isFastPassEligible = innerBlocks.some(innerBlock => /layout-column-\d+/.test(innerBlock.originalContent));
6426  
6427      if (!isFastPassEligible) {
6428        return false;
6429      } // Only if the fast pass is considered eligible is the more
6430      // accurate, durable, slower condition performed.
6431  
6432  
6433      return innerBlocks.some(innerBlock => getDeprecatedLayoutColumn(innerBlock.originalContent) !== undefined);
6434    },
6435  
6436    migrate(attributes, innerBlocks) {
6437      const columns = innerBlocks.reduce((accumulator, innerBlock) => {
6438        const {
6439          originalContent
6440        } = innerBlock;
6441        let columnIndex = getDeprecatedLayoutColumn(originalContent);
6442  
6443        if (columnIndex === undefined) {
6444          columnIndex = 0;
6445        }
6446  
6447        if (!accumulator[columnIndex]) {
6448          accumulator[columnIndex] = [];
6449        }
6450  
6451        accumulator[columnIndex].push(innerBlock);
6452        return accumulator;
6453      }, []);
6454      const migratedInnerBlocks = columns.map(columnBlocks => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, columnBlocks));
6455      return [{ ...(0,external_lodash_namespaceObject.omit)(attributes, ['columns']),
6456        isStackedOnMobile: true
6457      }, migratedInnerBlocks];
6458    },
6459  
6460    save(_ref2) {
6461      let {
6462        attributes
6463      } = _ref2;
6464      const {
6465        columns
6466      } = attributes;
6467      return (0,external_wp_element_namespaceObject.createElement)("div", {
6468        className: `has-$columns}-columns`
6469      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
6470    }
6471  
6472  }, {
6473    attributes: {
6474      columns: {
6475        type: 'number',
6476        default: 2
6477      }
6478    },
6479  
6480    migrate(attributes, innerBlocks) {
6481      attributes = { ...(0,external_lodash_namespaceObject.omit)(attributes, ['columns']),
6482        isStackedOnMobile: true
6483      };
6484      return [attributes, innerBlocks];
6485    },
6486  
6487    save(_ref3) {
6488      let {
6489        attributes
6490      } = _ref3;
6491      const {
6492        verticalAlignment,
6493        columns
6494      } = attributes;
6495      const wrapperClasses = classnames_default()(`has-$columns}-columns`, {
6496        [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment
6497      });
6498      return (0,external_wp_element_namespaceObject.createElement)("div", {
6499        className: wrapperClasses
6500      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
6501    }
6502  
6503  }]);
6504  
6505  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/utils.js
6506  /**
6507   * External dependencies
6508   */
6509  
6510  /**
6511   * Returns a column width attribute value rounded to standard precision.
6512   * Returns `undefined` if the value is not a valid finite number.
6513   *
6514   * @param {?number} value Raw value.
6515   *
6516   * @return {number} Value rounded to standard precision.
6517   */
6518  
6519  const toWidthPrecision = value => {
6520    const unitlessValue = parseFloat(value);
6521    return Number.isFinite(unitlessValue) ? parseFloat(unitlessValue.toFixed(2)) : undefined;
6522  };
6523  /**
6524   * Returns an effective width for a given block. An effective width is equal to
6525   * its attribute value if set, or a computed value assuming equal distribution.
6526   *
6527   * @param {WPBlock} block           Block object.
6528   * @param {number}  totalBlockCount Total number of blocks in Columns.
6529   *
6530   * @return {number} Effective column width.
6531   */
6532  
6533  function getEffectiveColumnWidth(block, totalBlockCount) {
6534    const {
6535      width = 100 / totalBlockCount
6536    } = block.attributes;
6537    return toWidthPrecision(width);
6538  }
6539  /**
6540   * Returns the total width occupied by the given set of column blocks.
6541   *
6542   * @param {WPBlock[]} blocks          Block objects.
6543   * @param {?number}   totalBlockCount Total number of blocks in Columns.
6544   *                                    Defaults to number of blocks passed.
6545   *
6546   * @return {number} Total width occupied by blocks.
6547   */
6548  
6549  function getTotalColumnsWidth(blocks) {
6550    let totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length;
6551    return (0,external_lodash_namespaceObject.sumBy)(blocks, block => getEffectiveColumnWidth(block, totalBlockCount));
6552  }
6553  /**
6554   * Returns an object of `clientId` → `width` of effective column widths.
6555   *
6556   * @param {WPBlock[]} blocks          Block objects.
6557   * @param {?number}   totalBlockCount Total number of blocks in Columns.
6558   *                                    Defaults to number of blocks passed.
6559   *
6560   * @return {Object<string,number>} Column widths.
6561   */
6562  
6563  function getColumnWidths(blocks) {
6564    let totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length;
6565    return blocks.reduce((accumulator, block) => {
6566      const width = getEffectiveColumnWidth(block, totalBlockCount);
6567      return Object.assign(accumulator, {
6568        [block.clientId]: width
6569      });
6570    }, {});
6571  }
6572  /**
6573   * Returns an object of `clientId` → `width` of column widths as redistributed
6574   * proportional to their current widths, constrained or expanded to fit within
6575   * the given available width.
6576   *
6577   * @param {WPBlock[]} blocks          Block objects.
6578   * @param {number}    availableWidth  Maximum width to fit within.
6579   * @param {?number}   totalBlockCount Total number of blocks in Columns.
6580   *                                    Defaults to number of blocks passed.
6581   *
6582   * @return {Object<string,number>} Redistributed column widths.
6583   */
6584  
6585  function getRedistributedColumnWidths(blocks, availableWidth) {
6586    let totalBlockCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : blocks.length;
6587    const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);
6588    return (0,external_lodash_namespaceObject.mapValues)(getColumnWidths(blocks, totalBlockCount), width => {
6589      const newWidth = availableWidth * width / totalWidth;
6590      return toWidthPrecision(newWidth);
6591    });
6592  }
6593  /**
6594   * Returns true if column blocks within the provided set are assigned with
6595   * explicit widths, or false otherwise.
6596   *
6597   * @param {WPBlock[]} blocks Block objects.
6598   *
6599   * @return {boolean} Whether columns have explicit widths.
6600   */
6601  
6602  function hasExplicitPercentColumnWidths(blocks) {
6603    return blocks.every(block => {
6604      var _blockWidth$endsWith;
6605  
6606      const blockWidth = block.attributes.width;
6607      return Number.isFinite(blockWidth !== null && blockWidth !== void 0 && (_blockWidth$endsWith = blockWidth.endsWith) !== null && _blockWidth$endsWith !== void 0 && _blockWidth$endsWith.call(blockWidth, '%') ? parseFloat(blockWidth) : blockWidth);
6608    });
6609  }
6610  /**
6611   * Returns a copy of the given set of blocks with new widths assigned from the
6612   * provided object of redistributed column widths.
6613   *
6614   * @param {WPBlock[]}             blocks Block objects.
6615   * @param {Object<string,number>} widths Redistributed column widths.
6616   *
6617   * @return {WPBlock[]} blocks Mapped block objects.
6618   */
6619  
6620  function getMappedColumnWidths(blocks, widths) {
6621    return blocks.map(block => (0,external_lodash_namespaceObject.merge)({}, block, {
6622      attributes: {
6623        width: `$widths[block.clientId]}%`
6624      }
6625    }));
6626  }
6627  /**
6628   * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.
6629   *
6630   * @param {WPBlock[]} blocks      Block objects.
6631   * @param {?boolean}  withParsing Whether value has to be parsed.
6632   *
6633   * @return {Array<number,string>} Column widths.
6634   */
6635  
6636  function getWidths(blocks) {
6637    let withParsing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
6638    return blocks.map(innerColumn => {
6639      const innerColumnWidth = innerColumn.attributes.width || 100 / blocks.length;
6640      return withParsing ? parseFloat(innerColumnWidth) : innerColumnWidth;
6641    });
6642  }
6643  /**
6644   * Returns a column width with unit.
6645   *
6646   * @param {string} width Column width.
6647   * @param {string} unit  Column width unit.
6648   *
6649   * @return {string} Column width with unit.
6650   */
6651  
6652  function getWidthWithUnit(width, unit) {
6653    width = 0 > parseFloat(width) ? '0' : width;
6654  
6655    if (isPercentageUnit(unit)) {
6656      width = Math.min(width, 100);
6657    }
6658  
6659    return `$width}$unit}`;
6660  }
6661  /**
6662   * Returns a boolean whether passed unit is percentage
6663   *
6664   * @param {string} unit Column width unit.
6665   *
6666   * @return {boolean}     Whether unit is '%'.
6667   */
6668  
6669  function isPercentageUnit(unit) {
6670    return unit === '%';
6671  }
6672  
6673  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/edit.js
6674  
6675  
6676  /**
6677   * External dependencies
6678   */
6679  
6680  
6681  /**
6682   * WordPress dependencies
6683   */
6684  
6685  
6686  
6687  
6688  
6689  
6690  /**
6691   * Internal dependencies
6692   */
6693  
6694  
6695  /**
6696   * Allowed blocks constant is passed to InnerBlocks precisely as specified here.
6697   * The contents of the array should never change.
6698   * The array should contain the name of each block that is allowed.
6699   * In columns block, the only block we allow is 'core/column'.
6700   *
6701   * @constant
6702   * @type {string[]}
6703   */
6704  
6705  const edit_ALLOWED_BLOCKS = ['core/column'];
6706  
6707  function ColumnsEditContainer(_ref) {
6708    let {
6709      attributes,
6710      setAttributes,
6711      updateAlignment,
6712      updateColumns,
6713      clientId
6714    } = _ref;
6715    const {
6716      isStackedOnMobile,
6717      verticalAlignment
6718    } = attributes;
6719    const {
6720      count
6721    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
6722      return {
6723        count: select(external_wp_blockEditor_namespaceObject.store).getBlockCount(clientId)
6724      };
6725    }, [clientId]);
6726    const classes = classnames_default()({
6727      [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
6728      [`is-not-stacked-on-mobile`]: !isStackedOnMobile
6729    });
6730    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
6731      className: classes
6732    });
6733    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
6734      allowedBlocks: edit_ALLOWED_BLOCKS,
6735      orientation: 'horizontal',
6736      renderAppender: false
6737    });
6738    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, {
6739      onChange: updateAlignment,
6740      value: verticalAlignment
6741    })), (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, {
6742      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
6743      value: count,
6744      onChange: value => updateColumns(count, value),
6745      min: 1,
6746      max: Math.max(6, count)
6747    }), count > 6 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, {
6748      status: "warning",
6749      isDismissible: false
6750    }, (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, {
6751      label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
6752      checked: isStackedOnMobile,
6753      onChange: () => setAttributes({
6754        isStackedOnMobile: !isStackedOnMobile
6755      })
6756    }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
6757  }
6758  
6759  const ColumnsEditContainerWrapper = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, registry) => ({
6760    /**
6761     * Update all child Column blocks with a new vertical alignment setting
6762     * based on whatever alignment is passed in. This allows change to parent
6763     * to overide anything set on a individual column basis.
6764     *
6765     * @param {string} verticalAlignment the vertical alignment setting
6766     */
6767    updateAlignment(verticalAlignment) {
6768      const {
6769        clientId,
6770        setAttributes
6771      } = ownProps;
6772      const {
6773        updateBlockAttributes
6774      } = dispatch(external_wp_blockEditor_namespaceObject.store);
6775      const {
6776        getBlockOrder
6777      } = registry.select(external_wp_blockEditor_namespaceObject.store); // Update own alignment.
6778  
6779      setAttributes({
6780        verticalAlignment
6781      }); // Update all child Column Blocks to match.
6782  
6783      const innerBlockClientIds = getBlockOrder(clientId);
6784      innerBlockClientIds.forEach(innerBlockClientId => {
6785        updateBlockAttributes(innerBlockClientId, {
6786          verticalAlignment
6787        });
6788      });
6789    },
6790  
6791    /**
6792     * Updates the column count, including necessary revisions to child Column
6793     * blocks to grant required or redistribute available space.
6794     *
6795     * @param {number} previousColumns Previous column count.
6796     * @param {number} newColumns      New column count.
6797     */
6798    updateColumns(previousColumns, newColumns) {
6799      const {
6800        clientId
6801      } = ownProps;
6802      const {
6803        replaceInnerBlocks
6804      } = dispatch(external_wp_blockEditor_namespaceObject.store);
6805      const {
6806        getBlocks
6807      } = registry.select(external_wp_blockEditor_namespaceObject.store);
6808      let innerBlocks = getBlocks(clientId);
6809      const hasExplicitWidths = hasExplicitPercentColumnWidths(innerBlocks); // Redistribute available width for existing inner blocks.
6810  
6811      const isAddingColumn = newColumns > previousColumns;
6812  
6813      if (isAddingColumn && hasExplicitWidths) {
6814        // If adding a new column, assign width to the new column equal to
6815        // as if it were `1 / columns` of the total available space.
6816        const newColumnWidth = toWidthPrecision(100 / newColumns); // Redistribute in consideration of pending block insertion as
6817        // constraining the available working width.
6818  
6819        const widths = getRedistributedColumnWidths(innerBlocks, 100 - newColumnWidth);
6820        innerBlocks = [...getMappedColumnWidths(innerBlocks, widths), ...(0,external_lodash_namespaceObject.times)(newColumns - previousColumns, () => {
6821          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {
6822            width: `$newColumnWidth}%`
6823          });
6824        })];
6825      } else if (isAddingColumn) {
6826        innerBlocks = [...innerBlocks, ...(0,external_lodash_namespaceObject.times)(newColumns - previousColumns, () => {
6827          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column');
6828        })];
6829      } else {
6830        // The removed column will be the last of the inner blocks.
6831        innerBlocks = (0,external_lodash_namespaceObject.dropRight)(innerBlocks, previousColumns - newColumns);
6832  
6833        if (hasExplicitWidths) {
6834          // Redistribute as if block is already removed.
6835          const widths = getRedistributedColumnWidths(innerBlocks, 100);
6836          innerBlocks = getMappedColumnWidths(innerBlocks, widths);
6837        }
6838      }
6839  
6840      replaceInnerBlocks(clientId, innerBlocks);
6841    }
6842  
6843  }))(ColumnsEditContainer);
6844  
6845  function Placeholder(_ref2) {
6846    let {
6847      clientId,
6848      name,
6849      setAttributes
6850    } = _ref2;
6851    const {
6852      blockType,
6853      defaultVariation,
6854      variations
6855    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
6856      const {
6857        getBlockVariations,
6858        getBlockType,
6859        getDefaultBlockVariation
6860      } = select(external_wp_blocks_namespaceObject.store);
6861      return {
6862        blockType: getBlockType(name),
6863        defaultVariation: getDefaultBlockVariation(name, 'block'),
6864        variations: getBlockVariations(name, 'block')
6865      };
6866    }, [name]);
6867    const {
6868      replaceInnerBlocks
6869    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
6870    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
6871    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
6872      icon: (0,external_lodash_namespaceObject.get)(blockType, ['icon', 'src']),
6873      label: (0,external_lodash_namespaceObject.get)(blockType, ['title']),
6874      variations: variations,
6875      onSelect: function () {
6876        let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;
6877  
6878        if (nextVariation.attributes) {
6879          setAttributes(nextVariation.attributes);
6880        }
6881  
6882        if (nextVariation.innerBlocks) {
6883          replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), true);
6884        }
6885      },
6886      allowSkip: true
6887    }));
6888  }
6889  
6890  const ColumnsEdit = props => {
6891    const {
6892      clientId
6893    } = props;
6894    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length > 0, [clientId]);
6895    const Component = hasInnerBlocks ? ColumnsEditContainerWrapper : Placeholder;
6896    return (0,external_wp_element_namespaceObject.createElement)(Component, props);
6897  };
6898  
6899  /* harmony default export */ var columns_edit = (ColumnsEdit);
6900  
6901  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/save.js
6902  
6903  
6904  /**
6905   * External dependencies
6906   */
6907  
6908  /**
6909   * WordPress dependencies
6910   */
6911  
6912  
6913  function columns_save_save(_ref) {
6914    let {
6915      attributes
6916    } = _ref;
6917    const {
6918      isStackedOnMobile,
6919      verticalAlignment
6920    } = attributes;
6921    const className = classnames_default()({
6922      [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
6923      [`is-not-stacked-on-mobile`]: !isStackedOnMobile
6924    });
6925    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
6926      className
6927    });
6928    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
6929    return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps);
6930  }
6931  
6932  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/variations.js
6933  
6934  
6935  /**
6936   * WordPress dependencies
6937   */
6938  
6939  
6940  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
6941  
6942  /**
6943   * Template option choices for predefined columns layouts.
6944   *
6945   * @type {WPBlockVariation[]}
6946   */
6947  
6948  const variations = [{
6949    name: 'one-column-full',
6950    title: (0,external_wp_i18n_namespaceObject.__)('100'),
6951    description: (0,external_wp_i18n_namespaceObject.__)('One column'),
6952    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
6953      width: "48",
6954      height: "48",
6955      viewBox: "0 0 48 48",
6956      xmlns: "http://www.w3.org/2000/svg"
6957    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
6958      fillRule: "evenodd",
6959      clipRule: "evenodd",
6960      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"
6961    })),
6962    innerBlocks: [['core/column']],
6963    scope: ['block']
6964  }, {
6965    name: 'two-columns-equal',
6966    title: (0,external_wp_i18n_namespaceObject.__)('50 / 50'),
6967    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; equal split'),
6968    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
6969      width: "48",
6970      height: "48",
6971      viewBox: "0 0 48 48",
6972      xmlns: "http://www.w3.org/2000/svg"
6973    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
6974      fillRule: "evenodd",
6975      clipRule: "evenodd",
6976      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"
6977    })),
6978    isDefault: true,
6979    innerBlocks: [['core/column'], ['core/column']],
6980    scope: ['block']
6981  }, {
6982    name: 'two-columns-one-third-two-thirds',
6983    title: (0,external_wp_i18n_namespaceObject.__)('30 / 70'),
6984    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; one-third, two-thirds split'),
6985    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
6986      width: "48",
6987      height: "48",
6988      viewBox: "0 0 48 48",
6989      xmlns: "http://www.w3.org/2000/svg"
6990    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
6991      fillRule: "evenodd",
6992      clipRule: "evenodd",
6993      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"
6994    })),
6995    innerBlocks: [['core/column', {
6996      width: '33.33%'
6997    }], ['core/column', {
6998      width: '66.66%'
6999    }]],
7000    scope: ['block']
7001  }, {
7002    name: 'two-columns-two-thirds-one-third',
7003    title: (0,external_wp_i18n_namespaceObject.__)('70 / 30'),
7004    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; two-thirds, one-third split'),
7005    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
7006      width: "48",
7007      height: "48",
7008      viewBox: "0 0 48 48",
7009      xmlns: "http://www.w3.org/2000/svg"
7010    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
7011      fillRule: "evenodd",
7012      clipRule: "evenodd",
7013      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"
7014    })),
7015    innerBlocks: [['core/column', {
7016      width: '66.66%'
7017    }], ['core/column', {
7018      width: '33.33%'
7019    }]],
7020    scope: ['block']
7021  }, {
7022    name: 'three-columns-equal',
7023    title: (0,external_wp_i18n_namespaceObject.__)('33 / 33 / 33'),
7024    description: (0,external_wp_i18n_namespaceObject.__)('Three columns; equal split'),
7025    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
7026      width: "48",
7027      height: "48",
7028      viewBox: "0 0 48 48",
7029      xmlns: "http://www.w3.org/2000/svg"
7030    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
7031      fillRule: "evenodd",
7032      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"
7033    })),
7034    innerBlocks: [['core/column'], ['core/column'], ['core/column']],
7035    scope: ['block']
7036  }, {
7037    name: 'three-columns-wider-center',
7038    title: (0,external_wp_i18n_namespaceObject.__)('25 / 50 / 25'),
7039    description: (0,external_wp_i18n_namespaceObject.__)('Three columns; wide center column'),
7040    icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
7041      width: "48",
7042      height: "48",
7043      viewBox: "0 0 48 48",
7044      xmlns: "http://www.w3.org/2000/svg"
7045    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
7046      fillRule: "evenodd",
7047      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"
7048    })),
7049    innerBlocks: [['core/column', {
7050      width: '25%'
7051    }], ['core/column', {
7052      width: '50%'
7053    }], ['core/column', {
7054      width: '25%'
7055    }]],
7056    scope: ['block']
7057  }];
7058  /* harmony default export */ var columns_variations = (variations);
7059  
7060  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/transforms.js
7061  /**
7062   * WordPress dependencies
7063   */
7064  
7065  const MAXIMUM_SELECTED_BLOCKS = 6;
7066  const columns_transforms_transforms = {
7067    from: [{
7068      type: 'block',
7069      isMultiBlock: true,
7070      blocks: ['*'],
7071      __experimentalConvert: blocks => {
7072        const columnWidth = +(100 / blocks.length).toFixed(2);
7073        const innerBlocksTemplate = blocks.map(_ref => {
7074          let {
7075            name,
7076            attributes,
7077            innerBlocks
7078          } = _ref;
7079          return ['core/column', {
7080            width: `$columnWidth}%`
7081          }, [[name, { ...attributes
7082          }, innerBlocks]]];
7083        });
7084        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {}, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
7085      },
7086      isMatch: _ref2 => {
7087        let {
7088          length: selectedBlocksLength
7089        } = _ref2;
7090        return selectedBlocksLength && selectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS;
7091      }
7092    }, {
7093      type: 'block',
7094      blocks: ['core/media-text'],
7095      priority: 1,
7096      transform: (attributes, innerBlocks) => {
7097        const {
7098          align,
7099          backgroundColor,
7100          textColor,
7101          style,
7102          mediaAlt: alt,
7103          mediaId: id,
7104          mediaPosition,
7105          mediaSizeSlug: sizeSlug,
7106          mediaType,
7107          mediaUrl: url,
7108          mediaWidth,
7109          verticalAlignment
7110        } = attributes;
7111        let media;
7112  
7113        if (mediaType === 'image' || !mediaType) {
7114          const imageAttrs = {
7115            id,
7116            alt,
7117            url,
7118            sizeSlug
7119          };
7120          const linkAttrs = {
7121            href: attributes.href,
7122            linkClass: attributes.linkClass,
7123            linkDestination: attributes.linkDestination,
7124            linkTarget: attributes.linkTarget,
7125            rel: attributes.rel
7126          };
7127          media = ['core/image', { ...imageAttrs,
7128            ...linkAttrs
7129          }];
7130        } else {
7131          media = ['core/video', {
7132            id,
7133            src: url
7134          }];
7135        }
7136  
7137        const innerBlocksTemplate = [['core/column', {
7138          width: `$mediaWidth}%`
7139        }, [media]], ['core/column', {
7140          width: `$100 - mediaWidth}%`
7141        }, innerBlocks]];
7142  
7143        if (mediaPosition === 'right') {
7144          innerBlocksTemplate.reverse();
7145        }
7146  
7147        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
7148          align,
7149          backgroundColor,
7150          textColor,
7151          style,
7152          verticalAlignment
7153        }, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
7154      }
7155    }]
7156  };
7157  /* harmony default export */ var columns_transforms = (columns_transforms_transforms);
7158  
7159  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/index.js
7160  /**
7161   * WordPress dependencies
7162   */
7163  
7164  
7165  /**
7166   * Internal dependencies
7167   */
7168  
7169  
7170  
7171  const columns_metadata = {
7172    $schema: "https://schemas.wp.org/trunk/block.json",
7173    apiVersion: 2,
7174    name: "core/columns",
7175    title: "Columns",
7176    category: "design",
7177    description: "Display content in multiple columns, with blocks added to each column.",
7178    textdomain: "default",
7179    attributes: {
7180      verticalAlignment: {
7181        type: "string"
7182      },
7183      isStackedOnMobile: {
7184        type: "boolean",
7185        "default": true
7186      }
7187    },
7188    supports: {
7189      anchor: true,
7190      align: ["wide", "full"],
7191      html: false,
7192      color: {
7193        gradients: true,
7194        link: true,
7195        __experimentalDefaultControls: {
7196          background: true,
7197          text: true
7198        }
7199      },
7200      spacing: {
7201        blockGap: true,
7202        margin: ["top", "bottom"],
7203        padding: true,
7204        __experimentalDefaultControls: {
7205          padding: true
7206        }
7207      },
7208      __experimentalLayout: {
7209        allowSwitching: false,
7210        allowInheriting: false,
7211        allowEditing: false,
7212        "default": {
7213          type: "flex",
7214          flexWrap: "nowrap"
7215        }
7216      },
7217      __experimentalBorder: {
7218        color: true,
7219        radius: true,
7220        style: true,
7221        width: true,
7222        __experimentalDefaultControls: {
7223          color: true,
7224          radius: true,
7225          style: true,
7226          width: true
7227        }
7228      }
7229    },
7230    editorStyle: "wp-block-columns-editor",
7231    style: "wp-block-columns"
7232  };
7233  
7234  
7235  
7236  const {
7237    name: columns_name
7238  } = columns_metadata;
7239  
7240  const columns_settings = {
7241    icon: library_columns,
7242    variations: columns_variations,
7243    example: {
7244      viewportWidth: 600,
7245      // Columns collapse "@media (max-width: 599px)".
7246      innerBlocks: [{
7247        name: 'core/column',
7248        innerBlocks: [{
7249          name: 'core/paragraph',
7250          attributes: {
7251            /* translators: example text. */
7252            content: (0,external_wp_i18n_namespaceObject.__)('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.')
7253          }
7254        }, {
7255          name: 'core/image',
7256          attributes: {
7257            url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
7258          }
7259        }, {
7260          name: 'core/paragraph',
7261          attributes: {
7262            /* translators: example text. */
7263            content: (0,external_wp_i18n_namespaceObject.__)('Suspendisse commodo neque lacus, a dictum orci interdum et.')
7264          }
7265        }]
7266      }, {
7267        name: 'core/column',
7268        innerBlocks: [{
7269          name: 'core/paragraph',
7270          attributes: {
7271            /* translators: example text. */
7272            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.')
7273          }
7274        }, {
7275          name: 'core/paragraph',
7276          attributes: {
7277            /* translators: example text. */
7278            content: (0,external_wp_i18n_namespaceObject.__)('Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.')
7279          }
7280        }]
7281      }]
7282    },
7283    deprecated: columns_deprecated,
7284    edit: columns_edit,
7285    save: columns_save_save,
7286    transforms: columns_transforms
7287  };
7288  
7289  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-name.js
7290  
7291  
7292  /**
7293   * WordPress dependencies
7294   */
7295  
7296  const commentAuthorName = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
7297    viewBox: "0 0 24 24",
7298    xmlns: "http://www.w3.org/2000/svg"
7299  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
7300    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",
7301    fillRule: "evenodd",
7302    clipRule: "evenodd"
7303  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
7304    d: "M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15",
7305    fillRule: "evenodd",
7306    clipRule: "evenodd"
7307  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, {
7308    cx: "12",
7309    cy: "9",
7310    r: "2",
7311    fillRule: "evenodd",
7312    clipRule: "evenodd"
7313  }));
7314  /* harmony default export */ var comment_author_name = (commentAuthorName);
7315  
7316  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/edit.js
7317  
7318  
7319  /**
7320   * External dependencies
7321   */
7322  
7323  /**
7324   * WordPress dependencies
7325   */
7326  
7327  
7328  
7329  
7330  
7331  
7332  /**
7333   * Renders the `core/comment-author-name` block on the editor.
7334   *
7335   * @param {Object} props                       React props.
7336   * @param {Object} props.setAttributes         Callback for updating block attributes.
7337   * @param {Object} props.attributes            Block attributes.
7338   * @param {string} props.attributes.isLink     Whether the author name should be linked.
7339   * @param {string} props.attributes.linkTarget Target of the link.
7340   * @param {string} props.attributes.textAlign  Text alignment.
7341   * @param {Object} props.context               Inherited context.
7342   * @param {string} props.context.commentId     The comment ID.
7343   *
7344   * @return {JSX.Element} React element.
7345   */
7346  
7347  function edit_Edit(_ref) {
7348    let {
7349      attributes: {
7350        isLink,
7351        linkTarget,
7352        textAlign
7353      },
7354      context: {
7355        commentId
7356      },
7357      setAttributes
7358    } = _ref;
7359    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
7360      className: classnames_default()({
7361        [`has-text-align-$textAlign}`]: textAlign
7362      })
7363    });
7364    const displayName = (0,external_wp_data_namespaceObject.useSelect)(select => {
7365      const {
7366        getEntityRecord
7367      } = select(external_wp_coreData_namespaceObject.store);
7368      const comment = getEntityRecord('root', 'comment', commentId);
7369      const authorName = comment === null || comment === void 0 ? void 0 : comment.author_name; // eslint-disable-line camelcase
7370  
7371      if (comment && !authorName) {
7372        var _user$name;
7373  
7374        const user = getEntityRecord('root', 'user', comment.author);
7375        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');
7376      }
7377  
7378      return authorName !== null && authorName !== void 0 ? authorName : '';
7379    }, [commentId]);
7380    const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
7381      group: "block"
7382    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
7383      value: textAlign,
7384      onChange: newAlign => setAttributes({
7385        textAlign: newAlign
7386      })
7387    }));
7388    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, {
7389      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
7390    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
7391      label: (0,external_wp_i18n_namespaceObject.__)('Link to authors URL'),
7392      onChange: () => setAttributes({
7393        isLink: !isLink
7394      }),
7395      checked: isLink
7396    }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
7397      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
7398      onChange: value => setAttributes({
7399        linkTarget: value ? '_blank' : '_self'
7400      }),
7401      checked: linkTarget === '_blank'
7402    })));
7403  
7404    if (!commentId || !displayName) {
7405      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'))));
7406    }
7407  
7408    const displayAuthor = isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
7409      href: "#comment-author-pseudo-link",
7410      onClick: event => event.preventDefault()
7411    }, displayName) : (0,external_wp_element_namespaceObject.createElement)("p", null, displayName);
7412    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, displayAuthor));
7413  }
7414  
7415  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/deprecated.js
7416  /**
7417   * Internal dependencies
7418   */
7419  
7420  const v1 = {
7421    attributes: {
7422      isLink: {
7423        type: 'boolean',
7424        default: false
7425      },
7426      linkTarget: {
7427        type: 'string',
7428        default: '_self'
7429      }
7430    },
7431    supports: {
7432      html: false,
7433      color: {
7434        gradients: true,
7435        link: true
7436      },
7437      typography: {
7438        fontSize: true,
7439        lineHeight: true,
7440        __experimentalFontFamily: true,
7441        __experimentalFontWeight: true,
7442        __experimentalFontStyle: true,
7443        __experimentalTextTransform: true,
7444        __experimentalLetterSpacing: true
7445      }
7446    },
7447  
7448    save() {
7449      return null;
7450    },
7451  
7452    migrate: migrate_font_family,
7453  
7454    isEligible(_ref) {
7455      var _style$typography;
7456  
7457      let {
7458        style
7459      } = _ref;
7460      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
7461    }
7462  
7463  };
7464  /**
7465   * New deprecations need to be placed first
7466   * for them to have higher priority.
7467   *
7468   * Old deprecations may need to be updated as well.
7469   *
7470   * See block-deprecation.md
7471   */
7472  
7473  /* harmony default export */ var comment_author_name_deprecated = ([v1]);
7474  
7475  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
7476  /**
7477   * WordPress dependencies
7478   */
7479  
7480  /**
7481   * Internal dependencies
7482   */
7483  
7484  const comment_author_name_metadata = {
7485    $schema: "https://schemas.wp.org/trunk/block.json",
7486    apiVersion: 2,
7487    name: "core/comment-author-name",
7488    title: "Comment Author Name",
7489    category: "theme",
7490    ancestor: ["core/comment-template"],
7491    description: "Displays the name of the author of the comment.",
7492    textdomain: "default",
7493    attributes: {
7494      isLink: {
7495        type: "boolean",
7496        "default": true
7497      },
7498      linkTarget: {
7499        type: "string",
7500        "default": "_self"
7501      },
7502      textAlign: {
7503        type: "string"
7504      },
7505      fontSize: {
7506        type: "string",
7507        "default": "small"
7508      }
7509    },
7510    usesContext: ["commentId"],
7511    supports: {
7512      html: false,
7513      spacing: {
7514        margin: true,
7515        padding: true
7516      },
7517      color: {
7518        gradients: true,
7519        link: true,
7520        __experimentalDefaultControls: {
7521          background: true,
7522          text: true,
7523          link: true
7524        }
7525      },
7526      typography: {
7527        fontSize: true,
7528        lineHeight: true,
7529        __experimentalFontFamily: true,
7530        __experimentalFontWeight: true,
7531        __experimentalFontStyle: true,
7532        __experimentalTextTransform: true,
7533        __experimentalLetterSpacing: true
7534      }
7535    }
7536  };
7537  
7538  
7539  const {
7540    name: comment_author_name_name
7541  } = comment_author_name_metadata;
7542  
7543  const comment_author_name_settings = {
7544    icon: comment_author_name,
7545    edit: edit_Edit,
7546    deprecated: comment_author_name_deprecated
7547  };
7548  
7549  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-content.js
7550  
7551  
7552  /**
7553   * WordPress dependencies
7554   */
7555  
7556  const commentContent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
7557    viewBox: "0 0 24 24",
7558    xmlns: "http://www.w3.org/2000/svg"
7559  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
7560    fillRule: "evenodd",
7561    clipRule: "evenodd",
7562    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"
7563  }));
7564  /* harmony default export */ var comment_content = (commentContent);
7565  
7566  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/edit.js
7567  
7568  
7569  /**
7570   * External dependencies
7571   */
7572  
7573  /**
7574   * WordPress dependencies
7575   */
7576  
7577  
7578  
7579  
7580  
7581  
7582  /**
7583   * Renders the `core/comment-content` block on the editor.
7584   *
7585   * @param {Object} props                      React props.
7586   * @param {Object} props.setAttributes        Callback for updating block attributes.
7587   * @param {Object} props.attributes           Block attributes.
7588   * @param {string} props.attributes.textAlign The `textAlign` attribute.
7589   * @param {Object} props.context              Inherited context.
7590   * @param {string} props.context.commentId    The comment ID.
7591   *
7592   * @return {JSX.Element} React element.
7593   */
7594  
7595  function comment_content_edit_Edit(_ref) {
7596    let {
7597      setAttributes,
7598      attributes: {
7599        textAlign
7600      },
7601      context: {
7602        commentId
7603      }
7604    } = _ref;
7605    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
7606      className: classnames_default()({
7607        [`has-text-align-$textAlign}`]: textAlign
7608      })
7609    });
7610    const [content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'content', commentId);
7611    const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
7612      group: "block"
7613    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
7614      value: textAlign,
7615      onChange: newAlign => setAttributes({
7616        textAlign: newAlign
7617      })
7618    }));
7619  
7620    if (!commentId || !content) {
7621      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'))));
7622    }
7623  
7624    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, {
7625      key: "html"
7626    }, content.rendered))));
7627  }
7628  
7629  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
7630  /**
7631   * WordPress dependencies
7632   */
7633  
7634  /**
7635   * Internal dependencies
7636   */
7637  
7638  const comment_content_metadata = {
7639    $schema: "https://schemas.wp.org/trunk/block.json",
7640    apiVersion: 2,
7641    name: "core/comment-content",
7642    title: "Comment Content",
7643    category: "theme",
7644    ancestor: ["core/comment-template"],
7645    description: "Displays the contents of a comment.",
7646    textdomain: "default",
7647    usesContext: ["commentId"],
7648    attributes: {
7649      textAlign: {
7650        type: "string"
7651      }
7652    },
7653    supports: {
7654      color: {
7655        gradients: true,
7656        link: true,
7657        __experimentalDefaultControls: {
7658          background: true,
7659          text: true
7660        }
7661      },
7662      typography: {
7663        fontSize: true,
7664        lineHeight: true,
7665        __experimentalFontFamily: true,
7666        __experimentalFontWeight: true,
7667        __experimentalFontStyle: true,
7668        __experimentalTextTransform: true,
7669        __experimentalLetterSpacing: true
7670      },
7671      spacing: {
7672        padding: ["horizontal", "vertical"],
7673        __experimentalDefaultControls: {
7674          padding: true
7675        }
7676      },
7677      html: false
7678    }
7679  };
7680  
7681  const {
7682    name: comment_content_name
7683  } = comment_content_metadata;
7684  
7685  const comment_content_settings = {
7686    icon: comment_content,
7687    edit: comment_content_edit_Edit
7688  };
7689  
7690  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-date.js
7691  
7692  
7693  /**
7694   * WordPress dependencies
7695   */
7696  
7697  const postDate = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
7698    xmlns: "http://www.w3.org/2000/svg",
7699    viewBox: "0 0 24 24"
7700  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
7701    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"
7702  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
7703    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"
7704  }));
7705  /* harmony default export */ var post_date = (postDate);
7706  
7707  ;// CONCATENATED MODULE: external ["wp","date"]
7708  var external_wp_date_namespaceObject = window["wp"]["date"];
7709  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/edit.js
7710  
7711  
7712  /**
7713   * WordPress dependencies
7714   */
7715  
7716  
7717  
7718  
7719  
7720  /**
7721   * Renders the `core/comment-date` block on the editor.
7722   *
7723   * @param {Object} props                   React props.
7724   * @param {Object} props.setAttributes     Callback for updating block attributes.
7725   * @param {Object} props.attributes        Block attributes.
7726   * @param {string} props.attributes.format Format of the date.
7727   * @param {string} props.attributes.isLink Whether the author name should be linked.
7728   * @param {Object} props.context           Inherited context.
7729   * @param {string} props.context.commentId The comment ID.
7730   *
7731   * @return {JSX.Element} React element.
7732   */
7733  
7734  function comment_date_edit_Edit(_ref) {
7735    let {
7736      attributes: {
7737        format,
7738        isLink
7739      },
7740      context: {
7741        commentId
7742      },
7743      setAttributes
7744    } = _ref;
7745    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
7746    const [date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'date', commentId);
7747    const [siteFormat = (0,external_wp_date_namespaceObject.__experimentalGetSettings)().formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
7748    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, {
7749      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
7750    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
7751      format: format,
7752      defaultFormat: siteFormat,
7753      onChange: nextFormat => setAttributes({
7754        format: nextFormat
7755      })
7756    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
7757      label: (0,external_wp_i18n_namespaceObject.__)('Link to comment'),
7758      onChange: () => setAttributes({
7759        isLink: !isLink
7760      }),
7761      checked: isLink
7762    })));
7763  
7764    if (!commentId || !date) {
7765      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'))));
7766    }
7767  
7768    let commentDate = (0,external_wp_element_namespaceObject.createElement)("time", {
7769      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date)
7770    }, (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date));
7771  
7772    if (isLink) {
7773      commentDate = (0,external_wp_element_namespaceObject.createElement)("a", {
7774        href: "#comment-date-pseudo-link",
7775        onClick: event => event.preventDefault()
7776      }, commentDate);
7777    }
7778  
7779    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, commentDate));
7780  }
7781  
7782  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/deprecated.js
7783  /**
7784   * Internal dependencies
7785   */
7786  
7787  const deprecated_v1 = {
7788    attributes: {
7789      format: {
7790        type: 'string'
7791      },
7792      isLink: {
7793        type: 'boolean',
7794        default: false
7795      }
7796    },
7797    supports: {
7798      html: false,
7799      color: {
7800        gradients: true,
7801        link: true
7802      },
7803      typography: {
7804        fontSize: true,
7805        lineHeight: true,
7806        __experimentalFontFamily: true,
7807        __experimentalFontWeight: true,
7808        __experimentalFontStyle: true,
7809        __experimentalTextTransform: true,
7810        __experimentalLetterSpacing: true
7811      }
7812    },
7813  
7814    save() {
7815      return null;
7816    },
7817  
7818    migrate: migrate_font_family,
7819  
7820    isEligible(_ref) {
7821      var _style$typography;
7822  
7823      let {
7824        style
7825      } = _ref;
7826      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
7827    }
7828  
7829  };
7830  /**
7831   * New deprecations need to be placed first
7832   * for them to have higher priority.
7833   *
7834   * Old deprecations may need to be updated as well.
7835   *
7836   * See block-deprecation.md
7837   */
7838  
7839  /* harmony default export */ var comment_date_deprecated = ([deprecated_v1]);
7840  
7841  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
7842  /**
7843   * WordPress dependencies
7844   */
7845  
7846  /**
7847   * Internal dependencies
7848   */
7849  
7850  const comment_date_metadata = {
7851    $schema: "https://schemas.wp.org/trunk/block.json",
7852    apiVersion: 2,
7853    name: "core/comment-date",
7854    title: "Comment Date",
7855    category: "theme",
7856    ancestor: ["core/comment-template"],
7857    description: "Displays the date on which the comment was posted.",
7858    textdomain: "default",
7859    attributes: {
7860      format: {
7861        type: "string"
7862      },
7863      isLink: {
7864        type: "boolean",
7865        "default": true
7866      },
7867      fontSize: {
7868        type: "string",
7869        "default": "small"
7870      }
7871    },
7872    usesContext: ["commentId"],
7873    supports: {
7874      html: false,
7875      color: {
7876        gradients: true,
7877        link: true,
7878        __experimentalDefaultControls: {
7879          background: true,
7880          text: true,
7881          link: true
7882        }
7883      },
7884      typography: {
7885        fontSize: true,
7886        lineHeight: true,
7887        __experimentalFontFamily: true,
7888        __experimentalFontWeight: true,
7889        __experimentalFontStyle: true,
7890        __experimentalTextTransform: true,
7891        __experimentalLetterSpacing: true,
7892        __experimentalDefaultControls: {
7893          fontSize: true
7894        }
7895      }
7896    }
7897  };
7898  
7899  
7900  const {
7901    name: comment_date_name
7902  } = comment_date_metadata;
7903  
7904  const comment_date_settings = {
7905    icon: post_date,
7906    edit: comment_date_edit_Edit,
7907    deprecated: comment_date_deprecated
7908  };
7909  
7910  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-edit-link.js
7911  
7912  
7913  /**
7914   * WordPress dependencies
7915   */
7916  
7917  const commentEditLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
7918    width: "24",
7919    height: "24",
7920    viewBox: "0 0 24 24",
7921    xmlns: "http://www.w3.org/2000/svg"
7922  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
7923    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"
7924  }));
7925  /* harmony default export */ var comment_edit_link = (commentEditLink);
7926  
7927  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/edit.js
7928  
7929  
7930  /**
7931   * External dependencies
7932   */
7933  
7934  /**
7935   * WordPress dependencies
7936   */
7937  
7938  
7939  
7940  
7941  function comment_edit_link_edit_Edit(_ref) {
7942    let {
7943      attributes: {
7944        linkTarget,
7945        textAlign
7946      },
7947      setAttributes
7948    } = _ref;
7949    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
7950      className: classnames_default()({
7951        [`has-text-align-$textAlign}`]: textAlign
7952      })
7953    });
7954    const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
7955      group: "block"
7956    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
7957      value: textAlign,
7958      onChange: newAlign => setAttributes({
7959        textAlign: newAlign
7960      })
7961    }));
7962    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, {
7963      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
7964    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
7965      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
7966      onChange: value => setAttributes({
7967        linkTarget: value ? '_blank' : '_self'
7968      }),
7969      checked: linkTarget === '_blank'
7970    })));
7971    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", {
7972      href: "#edit-comment-pseudo-link",
7973      onClick: event => event.preventDefault()
7974    }, (0,external_wp_i18n_namespaceObject.__)('Edit'))));
7975  }
7976  
7977  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
7978  /**
7979   * WordPress dependencies
7980   */
7981  
7982  /**
7983   * Internal dependencies
7984   */
7985  
7986  const comment_edit_link_metadata = {
7987    $schema: "https://schemas.wp.org/trunk/block.json",
7988    apiVersion: 2,
7989    name: "core/comment-edit-link",
7990    title: "Comment Edit Link",
7991    category: "theme",
7992    ancestor: ["core/comment-template"],
7993    description: "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.",
7994    textdomain: "default",
7995    usesContext: ["commentId"],
7996    attributes: {
7997      linkTarget: {
7998        type: "string",
7999        "default": "_self"
8000      },
8001      textAlign: {
8002        type: "string"
8003      },
8004      fontSize: {
8005        type: "string",
8006        "default": "small"
8007      }
8008    },
8009    supports: {
8010      html: false,
8011      color: {
8012        link: true,
8013        gradients: true,
8014        text: false,
8015        __experimentalDefaultControls: {
8016          background: true,
8017          link: true
8018        }
8019      },
8020      typography: {
8021        fontSize: true,
8022        lineHeight: true,
8023        __experimentalFontFamily: true,
8024        __experimentalFontWeight: true,
8025        __experimentalFontStyle: true,
8026        __experimentalTextTransform: true,
8027        __experimentalLetterSpacing: true
8028      }
8029    }
8030  };
8031  
8032  const {
8033    name: comment_edit_link_name
8034  } = comment_edit_link_metadata;
8035  
8036  const comment_edit_link_settings = {
8037    icon: comment_edit_link,
8038    edit: comment_edit_link_edit_Edit
8039  };
8040  
8041  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-reply-link.js
8042  
8043  
8044  /**
8045   * WordPress dependencies
8046   */
8047  
8048  const commentReplyLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
8049    width: "24",
8050    height: "24",
8051    viewBox: "0 0 24 24",
8052    xmlns: "http://www.w3.org/2000/svg"
8053  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
8054    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"
8055  }));
8056  /* harmony default export */ var comment_reply_link = (commentReplyLink);
8057  
8058  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/edit.js
8059  
8060  
8061  /**
8062   * External dependencies
8063   */
8064  
8065  /**
8066   * WordPress dependencies
8067   */
8068  
8069  
8070  
8071  /**
8072   * Renders the `core/comment-reply-link` block on the editor.
8073   *
8074   * @param {Object} props                      React props.
8075   * @param {Object} props.setAttributes        Callback for updating block attributes.
8076   * @param {Object} props.attributes           Block attributes.
8077   * @param {string} props.attributes.textAlign The `textAlign` attribute.
8078   *
8079   * @return {JSX.Element} React element.
8080   */
8081  
8082  function comment_reply_link_edit_Edit(_ref) {
8083    let {
8084      setAttributes,
8085      attributes: {
8086        textAlign
8087      }
8088    } = _ref;
8089    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
8090      className: classnames_default()({
8091        [`has-text-align-$textAlign}`]: textAlign
8092      })
8093    });
8094    const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
8095      group: "block"
8096    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
8097      value: textAlign,
8098      onChange: newAlign => setAttributes({
8099        textAlign: newAlign
8100      })
8101    }));
8102    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", {
8103      href: "#comment-reply-pseudo-link",
8104      onClick: event => event.preventDefault()
8105    }, (0,external_wp_i18n_namespaceObject.__)('Reply'))));
8106  }
8107  
8108  /* harmony default export */ var comment_reply_link_edit = (comment_reply_link_edit_Edit);
8109  
8110  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
8111  /**
8112   * WordPress dependencies
8113   */
8114  
8115  /**
8116   * Internal dependencies
8117   */
8118  
8119  const comment_reply_link_metadata = {
8120    $schema: "https://schemas.wp.org/trunk/block.json",
8121    apiVersion: 2,
8122    name: "core/comment-reply-link",
8123    title: "Comment Reply Link",
8124    category: "theme",
8125    ancestor: ["core/comment-template"],
8126    description: "Displays a link to reply to a comment.",
8127    textdomain: "default",
8128    usesContext: ["commentId"],
8129    attributes: {
8130      textAlign: {
8131        type: "string"
8132      },
8133      fontSize: {
8134        type: "string",
8135        "default": "small"
8136      }
8137    },
8138    supports: {
8139      color: {
8140        gradients: true,
8141        link: true,
8142        text: false,
8143        __experimentalDefaultControls: {
8144          background: true,
8145          link: true
8146        }
8147      },
8148      typography: {
8149        fontSize: true,
8150        lineHeight: true,
8151        __experimentalFontFamily: true,
8152        __experimentalFontWeight: true,
8153        __experimentalFontStyle: true,
8154        __experimentalTextTransform: true,
8155        __experimentalLetterSpacing: true
8156      },
8157      html: false
8158    }
8159  };
8160  
8161  const {
8162    name: comment_reply_link_name
8163  } = comment_reply_link_metadata;
8164  
8165  const comment_reply_link_settings = {
8166    edit: comment_reply_link_edit,
8167    icon: comment_reply_link
8168  };
8169  
8170  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js
8171  
8172  
8173  /**
8174   * WordPress dependencies
8175   */
8176  
8177  const layout = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
8178    xmlns: "http://www.w3.org/2000/svg",
8179    viewBox: "0 0 24 24"
8180  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
8181    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"
8182  }));
8183  /* harmony default export */ var library_layout = (layout);
8184  
8185  ;// CONCATENATED MODULE: external ["wp","apiFetch"]
8186  var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"];
8187  var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject);
8188  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/hooks.js
8189  /**
8190   * WordPress dependencies
8191   */
8192  
8193  
8194  
8195  
8196   // This is limited by WP REST API
8197  
8198  const MAX_COMMENTS_PER_PAGE = 100;
8199  /**
8200   * Return an object with the query args needed to fetch the default page of
8201   * comments.
8202   *
8203   * @param {Object} props        Hook props.
8204   * @param {number} props.postId ID of the post that contains the comments.
8205   *                              discussion settings.
8206   *
8207   * @return {Object} Query args to retrieve the comments.
8208   */
8209  
8210  const useCommentQueryArgs = _ref => {
8211    let {
8212      postId
8213    } = _ref;
8214    // Initialize the query args that are not going to change.
8215    const queryArgs = {
8216      status: 'approve',
8217      order: 'asc',
8218      context: 'embed',
8219      parent: 0,
8220      _embed: 'children'
8221    }; // Get the Discussion settings that may be needed to query the comments.
8222  
8223    const {
8224      pageComments,
8225      commentsPerPage,
8226      defaultCommentsPage: defaultPage
8227    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8228      const {
8229        getSettings
8230      } = select(external_wp_blockEditor_namespaceObject.store);
8231      const {
8232        __experimentalDiscussionSettings
8233      } = getSettings();
8234      return __experimentalDiscussionSettings;
8235    }); // WP REST API doesn't allow fetching more than max items limit set per single page of data.
8236    // As for the editor performance is more important than completeness of data and fetching only the
8237    // max allowed for single page should be enough for the purpose of design and laying out the page.
8238    // Fetching over the limit would return an error here but would work with backend query.
8239  
8240    const perPage = pageComments ? Math.min(commentsPerPage, MAX_COMMENTS_PER_PAGE) : MAX_COMMENTS_PER_PAGE; // Get the number of the default page.
8241  
8242    const page = useDefaultPageIndex({
8243      defaultPage,
8244      postId,
8245      perPage,
8246      queryArgs
8247    }); // Merge, memoize and return all query arguments, unless the default page's
8248    // number is not known yet.
8249  
8250    return (0,external_wp_element_namespaceObject.useMemo)(() => {
8251      return page ? { ...queryArgs,
8252        post: postId,
8253        per_page: perPage,
8254        page
8255      } : null;
8256    }, [postId, perPage, page]);
8257  };
8258  /**
8259   * Return the index of the default page, depending on whether `defaultPage` is
8260   * `newest` or `oldest`. In the first case, the only way to know the page's
8261   * index is by using the `X-WP-TotalPages` header, which forces to make an
8262   * additional request.
8263   *
8264   * @param {Object} props             Hook props.
8265   * @param {string} props.defaultPage Page shown by default (newest/oldest).
8266   * @param {number} props.postId      ID of the post that contains the comments.
8267   * @param {number} props.perPage     The number of comments included per page.
8268   * @param {Object} props.queryArgs   Other query args.
8269   *
8270   * @return {number} Index of the default comments page.
8271   */
8272  
8273  const useDefaultPageIndex = _ref2 => {
8274    let {
8275      defaultPage,
8276      postId,
8277      perPage,
8278      queryArgs
8279    } = _ref2;
8280    // Store the default page indices.
8281    const [defaultPages, setDefaultPages] = (0,external_wp_element_namespaceObject.useState)({});
8282    const key = `$postId}_$perPage}`;
8283    const page = defaultPages[key] || 0;
8284    (0,external_wp_element_namespaceObject.useEffect)(() => {
8285      // Do nothing if the page is already known or not the newest page.
8286      if (page || defaultPage !== 'newest') {
8287        return;
8288      } // We need to fetch comments to know the index. Use HEAD and limit
8289      // fields just to ID, to make this call as light as possible.
8290  
8291  
8292      external_wp_apiFetch_default()({
8293        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', { ...queryArgs,
8294          post: postId,
8295          per_page: perPage,
8296          _fields: 'id'
8297        }),
8298        method: 'HEAD',
8299        parse: false
8300      }).then(res => {
8301        const pages = parseInt(res.headers.get('X-WP-TotalPages'));
8302        setDefaultPages({ ...defaultPages,
8303          [key]: pages <= 1 ? 1 : pages // If there are 0 pages, it means that there are no comments, but there is no 0th page.
8304  
8305        });
8306      });
8307    }, [defaultPage, postId, perPage, setDefaultPages]); // The oldest one is always the first one.
8308  
8309    return defaultPage === 'newest' ? page : 1;
8310  };
8311  /**
8312   * Generate a tree structure of comment IDs from a list of comment entities. The
8313   * children of each comment are obtained from `_embedded`.
8314   *
8315   * @typedef {{ commentId: number, children: CommentNode }} CommentNode
8316   *
8317   * @param {Object[]} topLevelComments List of comment entities.
8318   * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.
8319   */
8320  
8321  
8322  const useCommentTree = topLevelComments => {
8323    const commentTree = (0,external_wp_element_namespaceObject.useMemo)(() => topLevelComments === null || topLevelComments === void 0 ? void 0 : topLevelComments.map(_ref3 => {
8324      let {
8325        id,
8326        _embedded
8327      } = _ref3;
8328      const [children] = (_embedded === null || _embedded === void 0 ? void 0 : _embedded.children) || [[]];
8329      return {
8330        commentId: id,
8331        children: children.map(child => ({
8332          commentId: child.id
8333        }))
8334      };
8335    }), [topLevelComments]);
8336    return commentTree;
8337  };
8338  
8339  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/edit.js
8340  
8341  
8342  
8343  /**
8344   * WordPress dependencies
8345   */
8346  
8347  
8348  
8349  
8350  
8351  
8352  /**
8353   * Internal dependencies
8354   */
8355  
8356  
8357  const TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']];
8358  /**
8359   * Function that returns a comment structure that will be rendered with default placehoders.
8360   *
8361   * Each comment has a `commentId` property that is always a negative number in
8362   * case of the placeholders. This is to ensure that the comment does not
8363   * conflict with the actual (real) comments.
8364   *
8365   * @param {Object}  settings                       Discussion Settings.
8366   * @param {number}  [settings.perPage]             - Comments per page setting or block attribute.
8367   * @param {boolean} [settings.threadComments]      - Enable threaded (nested) comments setting.
8368   * @param {number}  [settings.threadCommentsDepth] - Level deep of threaded comments.
8369   *
8370   * @typedef {{id: null, children: EmptyComment[]}} EmptyComment
8371   * @return {EmptyComment[]}                         Inner blocks of the Comment Template
8372   */
8373  
8374  const getCommentsPlaceholder = _ref => {
8375    let {
8376      perPage,
8377      threadComments,
8378      threadCommentsDepth
8379    } = _ref;
8380    // In case that `threadCommentsDepth` is falsy, we default to a somewhat
8381    // arbitrary value of 3.
8382    // In case that the value is set but larger than 3 we truncate it to 3.
8383    const commentsDepth = Math.min(threadCommentsDepth || 3, 3); // We set a limit in order not to overload the editor of empty comments.
8384  
8385    const defaultCommentsToShow = perPage <= commentsDepth ? perPage : commentsDepth;
8386  
8387    if (!threadComments || defaultCommentsToShow === 1) {
8388      // If displaying threaded comments is disabled, we only show one comment
8389      // A commentId is negative in order to avoid conflicts with the actual comments.
8390      return [{
8391        commentId: -1,
8392        children: []
8393      }];
8394    } else if (defaultCommentsToShow === 2) {
8395      return [{
8396        commentId: -1,
8397        children: [{
8398          commentId: -2,
8399          children: []
8400        }]
8401      }];
8402    } // In case that the value is set but larger than 3 we truncate it to 3.
8403  
8404  
8405    return [{
8406      commentId: -1,
8407      children: [{
8408        commentId: -2,
8409        children: [{
8410          commentId: -3,
8411          children: []
8412        }]
8413      }]
8414    }];
8415  };
8416  /**
8417   * Component which renders the inner blocks of the Comment Template.
8418   *
8419   * @param {Object} props                      Component props.
8420   * @param {Array}  [props.comment]            - A comment object.
8421   * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
8422   * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
8423   * @param {Array}  [props.firstCommentId]     - ID of the first comment in the array.
8424   * @param {Array}  [props.blocks]             - Array of blocks returned from
8425   *                                            getBlocks() in parent .
8426   * @return {WPElement}                         Inner blocks of the Comment Template
8427   */
8428  
8429  
8430  function CommentTemplateInnerBlocks(_ref2) {
8431    var _comment$children;
8432  
8433    let {
8434      comment,
8435      activeCommentId,
8436      setActiveCommentId,
8437      firstCommentId,
8438      blocks
8439    } = _ref2;
8440    const {
8441      children,
8442      ...innerBlocksProps
8443    } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, {
8444      template: TEMPLATE
8445    });
8446    return (0,external_wp_element_namespaceObject.createElement)("li", innerBlocksProps, comment.commentId === (activeCommentId || firstCommentId) ? children : null, (0,external_wp_element_namespaceObject.createElement)(MemoizedCommentTemplatePreview, {
8447      blocks: blocks,
8448      commentId: comment.commentId,
8449      setActiveCommentId: setActiveCommentId,
8450      isHidden: comment.commentId === (activeCommentId || firstCommentId)
8451    }), (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, {
8452      comments: comment.children,
8453      activeCommentId: activeCommentId,
8454      setActiveCommentId: setActiveCommentId,
8455      blocks: blocks,
8456      firstCommentId: firstCommentId
8457    }) : null);
8458  }
8459  
8460  const CommentTemplatePreview = _ref3 => {
8461    let {
8462      blocks,
8463      commentId,
8464      setActiveCommentId,
8465      isHidden
8466    } = _ref3;
8467    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
8468      blocks
8469    });
8470  
8471    const handleOnClick = () => {
8472      setActiveCommentId(commentId);
8473    }; // We have to hide the preview block if the `comment` props points to
8474    // the curently active block!
8475    // Or, to put it differently, every preview block is visible unless it is the
8476    // currently active block - in this case we render its inner blocks.
8477  
8478  
8479    const style = {
8480      display: isHidden ? 'none' : undefined
8481    };
8482    return (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockPreviewProps, {
8483      tabIndex: 0,
8484      role: "button",
8485      style: style // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
8486      ,
8487      onClick: handleOnClick,
8488      onKeyPress: handleOnClick
8489    }));
8490  };
8491  
8492  const MemoizedCommentTemplatePreview = (0,external_wp_element_namespaceObject.memo)(CommentTemplatePreview);
8493  /**
8494   * Component that renders a list of (nested) comments. It is called recursively.
8495   *
8496   * @param {Object} props                      Component props.
8497   * @param {Array}  [props.comments]           - Array of comment objects.
8498   * @param {Array}  [props.blockProps]         - Props from parent's `useBlockProps()`.
8499   * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
8500   * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
8501   * @param {Array}  [props.blocks]             - Array of blocks returned from getBlocks() in parent.
8502   * @param {Object} [props.firstCommentId]     - The ID of the first comment in the array of
8503   *                                            comment objects.
8504   * @return {WPElement}                         List of comments.
8505   */
8506  
8507  const CommentsList = _ref4 => {
8508    let {
8509      comments,
8510      blockProps,
8511      activeCommentId,
8512      setActiveCommentId,
8513      blocks,
8514      firstCommentId
8515    } = _ref4;
8516    return (0,external_wp_element_namespaceObject.createElement)("ol", blockProps, comments && comments.map((_ref5, index) => {
8517      let {
8518        commentId,
8519        ...comment
8520      } = _ref5;
8521      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
8522        key: comment.commentId || index,
8523        value: {
8524          // If the commentId is negative it means that this comment is a
8525          // "placeholder" and that the block is most likely being used in the
8526          // site editor. In this case, we have to set the commentId to `null`
8527          // because otherwise the (non-existent) comment with a negative ID
8528          // would be reqested from the REST API.
8529          commentId: commentId < 0 ? null : commentId
8530        }
8531      }, (0,external_wp_element_namespaceObject.createElement)(CommentTemplateInnerBlocks, {
8532        comment: {
8533          commentId,
8534          ...comment
8535        },
8536        activeCommentId: activeCommentId,
8537        setActiveCommentId: setActiveCommentId,
8538        blocks: blocks,
8539        firstCommentId: firstCommentId
8540      }));
8541    }));
8542  };
8543  
8544  function CommentTemplateEdit(_ref6) {
8545    var _commentTree$;
8546  
8547    let {
8548      clientId,
8549      context: {
8550        postId
8551      }
8552    } = _ref6;
8553    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
8554    const [activeCommentId, setActiveCommentId] = (0,external_wp_element_namespaceObject.useState)();
8555    const {
8556      commentOrder,
8557      threadCommentsDepth,
8558      threadComments,
8559      commentsPerPage
8560    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8561      const {
8562        getSettings
8563      } = select(external_wp_blockEditor_namespaceObject.store);
8564      return getSettings().__experimentalDiscussionSettings;
8565    });
8566    const commentQuery = useCommentQueryArgs({
8567      postId
8568    });
8569    const {
8570      topLevelComments,
8571      blocks
8572    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8573      const {
8574        getEntityRecords
8575      } = select(external_wp_coreData_namespaceObject.store);
8576      const {
8577        getBlocks
8578      } = select(external_wp_blockEditor_namespaceObject.store);
8579      return {
8580        // Request only top-level comments. Replies are embedded.
8581        topLevelComments: commentQuery ? getEntityRecords('root', 'comment', commentQuery) : null,
8582        blocks: getBlocks(clientId)
8583      };
8584    }, [clientId, commentQuery]); // Generate a tree structure of comment IDs.
8585  
8586    let commentTree = useCommentTree( // Reverse the order of top comments if needed.
8587    commentOrder === 'desc' && topLevelComments ? [...topLevelComments].reverse() : topLevelComments);
8588  
8589    if (!topLevelComments) {
8590      return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
8591    }
8592  
8593    if (!postId) {
8594      commentTree = getCommentsPlaceholder({
8595        perPage: commentsPerPage,
8596        threadComments,
8597        threadCommentsDepth
8598      });
8599    }
8600  
8601    if (!commentTree.length) {
8602      return (0,external_wp_element_namespaceObject.createElement)("p", _extends({}, blockProps, {
8603        "data-testid": "noresults"
8604      }), (0,external_wp_i18n_namespaceObject.__)('No results found.'));
8605    }
8606  
8607    return (0,external_wp_element_namespaceObject.createElement)(CommentsList, {
8608      comments: commentTree,
8609      blockProps: blockProps,
8610      blocks: blocks,
8611      activeCommentId: activeCommentId,
8612      setActiveCommentId: setActiveCommentId,
8613      firstCommentId: (_commentTree$ = commentTree[0]) === null || _commentTree$ === void 0 ? void 0 : _commentTree$.commentId
8614    });
8615  }
8616  
8617  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/save.js
8618  
8619  
8620  /**
8621   * WordPress dependencies
8622   */
8623  
8624  function CommentTemplateSave() {
8625    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
8626  }
8627  
8628  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
8629  /**
8630   * WordPress dependencies
8631   */
8632  
8633  /**
8634   * Internal dependencies
8635   */
8636  
8637  const comment_template_metadata = {
8638    $schema: "https://schemas.wp.org/trunk/block.json",
8639    apiVersion: 2,
8640    name: "core/comment-template",
8641    title: "Comment Template",
8642    category: "design",
8643    parent: ["core/comments-query-loop"],
8644    description: "Contains the block elements used to display a comment, like the title, date, author, avatar and more.",
8645    textdomain: "default",
8646    usesContext: ["postId"],
8647    supports: {
8648      reusable: false,
8649      html: false,
8650      align: true
8651    },
8652    style: "wp-block-comment-template"
8653  };
8654  
8655  
8656  const {
8657    name: comment_template_name
8658  } = comment_template_metadata;
8659  
8660  const comment_template_settings = {
8661    icon: library_layout,
8662    edit: CommentTemplateEdit,
8663    save: CommentTemplateSave
8664  };
8665  
8666  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-previous.js
8667  
8668  
8669  /**
8670   * WordPress dependencies
8671   */
8672  
8673  const queryPaginationPrevious = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
8674    xmlns: "http://www.w3.org/2000/svg",
8675    viewBox: "0 0 24 24"
8676  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
8677    d: "M16 10.5v3h3v-3h-3zm-5 3h3v-3h-3v3zM7 9l-3 3 3 3 1-1-2-2 2-2-1-1z"
8678  }));
8679  /* harmony default export */ var query_pagination_previous = (queryPaginationPrevious);
8680  
8681  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/edit.js
8682  
8683  
8684  
8685  /**
8686   * WordPress dependencies
8687   */
8688  
8689  
8690  const arrowMap = {
8691    none: '',
8692    arrow: '←',
8693    chevron: '«'
8694  };
8695  function CommentsPaginationPreviousEdit(_ref) {
8696    let {
8697      attributes: {
8698        label
8699      },
8700      setAttributes,
8701      context: {
8702        'comments/paginationArrow': paginationArrow
8703      }
8704    } = _ref;
8705    const displayArrow = arrowMap[paginationArrow];
8706    return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
8707      href: "#comments-pagination-previous-pseudo-link",
8708      onClick: event => event.preventDefault()
8709    }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
8710      className: `wp-block-comments-pagination-previous-arrow is-arrow-$paginationArrow}`
8711    }, displayArrow), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
8712      __experimentalVersion: 2,
8713      tagName: "span",
8714      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Older comments page link'),
8715      placeholder: (0,external_wp_i18n_namespaceObject.__)('Older Comments'),
8716      value: label,
8717      onChange: newLabel => setAttributes({
8718        label: newLabel
8719      })
8720    }));
8721  }
8722  
8723  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
8724  /**
8725   * WordPress dependencies
8726   */
8727  
8728  /**
8729   * Internal dependencies
8730   */
8731  
8732  const comments_pagination_previous_metadata = {
8733    $schema: "https://schemas.wp.org/trunk/block.json",
8734    apiVersion: 2,
8735    name: "core/comments-pagination-previous",
8736    title: "Previous Page",
8737    category: "theme",
8738    parent: ["core/comments-pagination"],
8739    description: "Displays the previous comment's page link.",
8740    textdomain: "default",
8741    attributes: {
8742      label: {
8743        type: "string"
8744      }
8745    },
8746    usesContext: ["postId", "comments/paginationArrow"],
8747    supports: {
8748      reusable: false,
8749      html: false,
8750      color: {
8751        gradients: true,
8752        text: false,
8753        __experimentalDefaultControls: {
8754          background: true
8755        }
8756      },
8757      typography: {
8758        fontSize: true,
8759        lineHeight: true,
8760        __experimentalFontStyle: true,
8761        __experimentalFontWeight: true,
8762        __experimentalLetterSpacing: true,
8763        __experimentalTextTransform: true,
8764        __experimentalDefaultControls: {
8765          fontSize: true
8766        }
8767      }
8768    }
8769  };
8770  
8771  const {
8772    name: comments_pagination_previous_name
8773  } = comments_pagination_previous_metadata;
8774  
8775  const comments_pagination_previous_settings = {
8776    icon: query_pagination_previous,
8777    edit: CommentsPaginationPreviousEdit
8778  };
8779  
8780  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments.js
8781  
8782  
8783  /**
8784   * WordPress dependencies
8785   */
8786  
8787  const postComments = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
8788    xmlns: "http://www.w3.org/2000/svg",
8789    viewBox: "0 0 24 24"
8790  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
8791    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"
8792  }));
8793  /* harmony default export */ var post_comments = (postComments);
8794  
8795  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/edit/comments-inspector-controls.js
8796  
8797  
8798  /**
8799   * WordPress dependencies
8800   */
8801  
8802  
8803  
8804  function CommentsInspectorControls(_ref) {
8805    let {
8806      attributes: {
8807        TagName
8808      },
8809      setAttributes
8810    } = _ref;
8811    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
8812      __experimentalGroup: "advanced"
8813    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
8814      label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
8815      options: [{
8816        label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
8817        value: 'div'
8818      }, {
8819        label: '<section>',
8820        value: 'section'
8821      }, {
8822        label: '<aside>',
8823        value: 'aside'
8824      }],
8825      value: TagName,
8826      onChange: value => setAttributes({
8827        tagName: value
8828      })
8829    })));
8830  }
8831  
8832  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/edit.js
8833  
8834  
8835  /**
8836   * WordPress dependencies
8837   */
8838  
8839  /**
8840   * Internal dependencies
8841   */
8842  
8843  
8844  const edit_TEMPLATE = [['core/comments-title'], ['core/comment-template', {}, [['core/columns', {}, [['core/column', {
8845    width: '40px'
8846  }, [['core/avatar', {
8847    size: 40,
8848    style: {
8849      border: {
8850        radius: '20px'
8851      }
8852    }
8853  }]]], ['core/column', {}, [['core/comment-author-name'], ['core/group', {
8854    layout: {
8855      type: 'flex'
8856    },
8857    style: {
8858      spacing: {
8859        margin: {
8860          top: '0px',
8861          bottom: '0px'
8862        }
8863      }
8864    }
8865  }, [['core/comment-date'], ['core/comment-edit-link']]], ['core/comment-content'], ['core/comment-reply-link']]]]]]], ['core/comments-pagination'], ['core/post-comments-form']];
8866  function CommentsQueryLoopEdit(_ref) {
8867    let {
8868      attributes,
8869      setAttributes
8870    } = _ref;
8871    const {
8872      tagName: TagName
8873    } = attributes;
8874    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
8875    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
8876      template: edit_TEMPLATE
8877    });
8878    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(CommentsInspectorControls, {
8879      attributes: attributes,
8880      setAttributes: setAttributes
8881    }), (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps));
8882  }
8883  
8884  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/save.js
8885  
8886  
8887  /**
8888   * WordPress dependencies
8889   */
8890  
8891  function CommentsQueryLoopSave(_ref) {
8892    let {
8893      attributes: {
8894        tagName: Tag
8895      }
8896    } = _ref;
8897    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));
8898  }
8899  
8900  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/index.js
8901  /**
8902   * WordPress dependencies
8903   */
8904  
8905  /**
8906   * Internal dependencies
8907   */
8908  
8909  const comments_query_loop_metadata = {
8910    $schema: "https://schemas.wp.org/trunk/block.json",
8911    apiVersion: 2,
8912    name: "core/comments-query-loop",
8913    title: "Comments Query Loop",
8914    category: "theme",
8915    description: "An advanced block that allows displaying post comments using different visual configurations.",
8916    textdomain: "default",
8917    attributes: {
8918      tagName: {
8919        type: "string",
8920        "default": "div"
8921      }
8922    },
8923    supports: {
8924      align: ["wide", "full"],
8925      html: false,
8926      color: {
8927        gradients: true,
8928        link: true,
8929        __experimentalDefaultControls: {
8930          background: true,
8931          text: true,
8932          link: true
8933        }
8934      }
8935    },
8936    editorStyle: "wp-block-comments-editor"
8937  };
8938  
8939  
8940  const {
8941    name: comments_query_loop_name
8942  } = comments_query_loop_metadata;
8943  
8944  const comments_query_loop_settings = {
8945    icon: post_comments,
8946    edit: CommentsQueryLoopEdit,
8947    save: CommentsQueryLoopSave
8948  };
8949  
8950  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination.js
8951  
8952  
8953  /**
8954   * WordPress dependencies
8955   */
8956  
8957  const queryPagination = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
8958    xmlns: "http://www.w3.org/2000/svg",
8959    viewBox: "0 0 24 24"
8960  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
8961    d: "M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z"
8962  }));
8963  /* harmony default export */ var query_pagination = (queryPagination);
8964  
8965  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/comments-pagination-arrow-controls.js
8966  
8967  
8968  /**
8969   * WordPress dependencies
8970   */
8971  
8972  
8973  function CommentsPaginationArrowControls(_ref) {
8974    let {
8975      value,
8976      onChange
8977    } = _ref;
8978    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
8979      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
8980      value: value,
8981      onChange: onChange,
8982      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous comments link.'),
8983      isBlock: true
8984    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
8985      value: "none",
8986      label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Comments Pagination Next/Previous blocks')
8987    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
8988      value: "arrow",
8989      label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Comments Pagination Next/Previous blocks')
8990    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
8991      value: "chevron",
8992      label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Comments Pagination Next/Previous blocks')
8993    }));
8994  }
8995  
8996  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/edit.js
8997  
8998  
8999  /**
9000   * WordPress dependencies
9001   */
9002  
9003  
9004  
9005  
9006  
9007  /**
9008   * Internal dependencies
9009   */
9010  
9011  
9012  const comments_pagination_edit_TEMPLATE = [['core/comments-pagination-previous'], ['core/comments-pagination-numbers'], ['core/comments-pagination-next']];
9013  
9014  const getDefaultBlockLayout = blockTypeOrName => {
9015    const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout');
9016    return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default;
9017  };
9018  
9019  function QueryPaginationEdit(_ref) {
9020    let {
9021      attributes: {
9022        paginationArrow,
9023        layout
9024      },
9025      setAttributes,
9026      clientId,
9027      name
9028    } = _ref;
9029    const usedLayout = layout || getDefaultBlockLayout(name);
9030    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
9031      const {
9032        getBlocks
9033      } = select(external_wp_blockEditor_namespaceObject.store);
9034      const innerBlocks = getBlocks(clientId);
9035      /**
9036       * Show the `paginationArrow` control only if a
9037       * Comments Pagination Next or Comments Pagination Previous
9038       * block exists.
9039       */
9040  
9041      return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => {
9042        return ['core/comments-pagination-previous', 'core/comments-pagination-next'].includes(innerBlock.name);
9043      });
9044    }, []);
9045    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
9046    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
9047      template: comments_pagination_edit_TEMPLATE,
9048      allowedBlocks: ['core/comments-pagination-previous', 'core/comments-pagination-numbers', 'core/comments-pagination-next'],
9049      __experimentalLayout: usedLayout
9050    }); // Get the Discussion settings
9051  
9052    const pageComments = (0,external_wp_data_namespaceObject.useSelect)(select => {
9053      const {
9054        getSettings
9055      } = select(external_wp_blockEditor_namespaceObject.store);
9056      const {
9057        __experimentalDiscussionSettings
9058      } = getSettings();
9059      return __experimentalDiscussionSettings === null || __experimentalDiscussionSettings === void 0 ? void 0 : __experimentalDiscussionSettings.pageComments;
9060    }, []); // If paging comments is not enabled in the Discussion Settings then hide the pagination
9061    // controls. We don't want to remove them from the template so that when the user enables
9062    // paging comments, the controls will be visible.
9063  
9064    if (!pageComments) {
9065      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'));
9066    }
9067  
9068    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, {
9069      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
9070    }, (0,external_wp_element_namespaceObject.createElement)(CommentsPaginationArrowControls, {
9071      value: paginationArrow,
9072      onChange: value => {
9073        setAttributes({
9074          paginationArrow: value
9075        });
9076      }
9077    }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
9078  }
9079  
9080  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/save.js
9081  
9082  
9083  /**
9084   * WordPress dependencies
9085   */
9086  
9087  function comments_pagination_save_save() {
9088    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
9089  }
9090  
9091  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
9092  /**
9093   * WordPress dependencies
9094   */
9095  
9096  /**
9097   * Internal dependencies
9098   */
9099  
9100  const comments_pagination_metadata = {
9101    $schema: "https://schemas.wp.org/trunk/block.json",
9102    apiVersion: 2,
9103    name: "core/comments-pagination",
9104    title: "Comments Pagination",
9105    category: "theme",
9106    parent: ["core/comments-query-loop"],
9107    description: "Displays a paginated navigation to next/previous set of comments, when applicable.",
9108    textdomain: "default",
9109    attributes: {
9110      paginationArrow: {
9111        type: "string",
9112        "default": "none"
9113      }
9114    },
9115    providesContext: {
9116      "comments/paginationArrow": "paginationArrow"
9117    },
9118    supports: {
9119      align: true,
9120      reusable: false,
9121      html: false,
9122      color: {
9123        gradients: true,
9124        link: true,
9125        __experimentalDefaultControls: {
9126          background: true,
9127          text: true,
9128          link: true
9129        }
9130      },
9131      __experimentalLayout: {
9132        allowSwitching: false,
9133        allowInheriting: false,
9134        "default": {
9135          type: "flex"
9136        }
9137      }
9138    },
9139    editorStyle: "wp-block-comments-pagination-editor",
9140    style: "wp-block-comments-pagination"
9141  };
9142  
9143  
9144  const {
9145    name: comments_pagination_name
9146  } = comments_pagination_metadata;
9147  
9148  const comments_pagination_settings = {
9149    icon: query_pagination,
9150    edit: QueryPaginationEdit,
9151    save: comments_pagination_save_save
9152  };
9153  
9154  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-next.js
9155  
9156  
9157  /**
9158   * WordPress dependencies
9159   */
9160  
9161  const queryPaginationNext = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
9162    xmlns: "http://www.w3.org/2000/svg",
9163    viewBox: "0 0 24 24"
9164  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
9165    d: "M5 13.5h3v-3H5v3zm5 0h3v-3h-3v3zM17 9l-1 1 2 2-2 2 1 1 3-3-3-3z"
9166  }));
9167  /* harmony default export */ var query_pagination_next = (queryPaginationNext);
9168  
9169  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/edit.js
9170  
9171  
9172  
9173  /**
9174   * WordPress dependencies
9175   */
9176  
9177  
9178  const edit_arrowMap = {
9179    none: '',
9180    arrow: '→',
9181    chevron: '»'
9182  };
9183  function CommentsPaginationNextEdit(_ref) {
9184    let {
9185      attributes: {
9186        label
9187      },
9188      setAttributes,
9189      context: {
9190        'comments/paginationArrow': paginationArrow
9191      }
9192    } = _ref;
9193    const displayArrow = edit_arrowMap[paginationArrow];
9194    return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
9195      href: "#comments-pagination-next-pseudo-link",
9196      onClick: event => event.preventDefault()
9197    }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
9198      __experimentalVersion: 2,
9199      tagName: "span",
9200      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Newer comments page link'),
9201      placeholder: (0,external_wp_i18n_namespaceObject.__)('Newer Comments'),
9202      value: label,
9203      onChange: newLabel => setAttributes({
9204        label: newLabel
9205      })
9206    }), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
9207      className: `wp-block-comments-pagination-next-arrow is-arrow-$paginationArrow}`
9208    }, displayArrow));
9209  }
9210  
9211  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
9212  /**
9213   * WordPress dependencies
9214   */
9215  
9216  /**
9217   * Internal dependencies
9218   */
9219  
9220  const comments_pagination_next_metadata = {
9221    $schema: "https://schemas.wp.org/trunk/block.json",
9222    apiVersion: 2,
9223    name: "core/comments-pagination-next",
9224    title: "Next Page",
9225    category: "theme",
9226    parent: ["core/comments-pagination"],
9227    description: "Displays the next comment's page link.",
9228    textdomain: "default",
9229    attributes: {
9230      label: {
9231        type: "string"
9232      }
9233    },
9234    usesContext: ["postId", "comments/paginationArrow"],
9235    supports: {
9236      reusable: false,
9237      html: false,
9238      color: {
9239        gradients: true,
9240        text: false,
9241        __experimentalDefaultControls: {
9242          background: true
9243        }
9244      },
9245      typography: {
9246        fontSize: true,
9247        lineHeight: true,
9248        __experimentalFontStyle: true,
9249        __experimentalFontWeight: true,
9250        __experimentalLetterSpacing: true,
9251        __experimentalTextTransform: true,
9252        __experimentalDefaultControls: {
9253          fontSize: true
9254        }
9255      }
9256    }
9257  };
9258  
9259  const {
9260    name: comments_pagination_next_name
9261  } = comments_pagination_next_metadata;
9262  
9263  const comments_pagination_next_settings = {
9264    icon: query_pagination_next,
9265    edit: CommentsPaginationNextEdit
9266  };
9267  
9268  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-numbers.js
9269  
9270  
9271  /**
9272   * WordPress dependencies
9273   */
9274  
9275  const queryPaginationNumbers = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
9276    xmlns: "http://www.w3.org/2000/svg",
9277    viewBox: "0 0 24 24"
9278  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
9279    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"
9280  }));
9281  /* harmony default export */ var query_pagination_numbers = (queryPaginationNumbers);
9282  
9283  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/edit.js
9284  
9285  
9286  /**
9287   * WordPress dependencies
9288   */
9289  
9290  
9291  const PaginationItem = _ref => {
9292    let {
9293      content,
9294      tag: Tag = 'a',
9295      extraClass = ''
9296    } = _ref;
9297    return (0,external_wp_element_namespaceObject.createElement)(Tag, {
9298      className: `page-numbers $extraClass}`
9299    }, content);
9300  };
9301  
9302  function CommentsPaginationNumbersEdit() {
9303    return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9304      content: "1"
9305    }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9306      content: "2"
9307    }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9308      content: "3",
9309      tag: "span",
9310      extraClass: "current"
9311    }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9312      content: "4"
9313    }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9314      content: "5"
9315    }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9316      content: "...",
9317      tag: "span",
9318      extraClass: "dots"
9319    }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, {
9320      content: "8"
9321    }));
9322  }
9323  
9324  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
9325  /**
9326   * WordPress dependencies
9327   */
9328  
9329  /**
9330   * Internal dependencies
9331   */
9332  
9333  const comments_pagination_numbers_metadata = {
9334    $schema: "https://schemas.wp.org/trunk/block.json",
9335    apiVersion: 2,
9336    name: "core/comments-pagination-numbers",
9337    title: "Page Numbers",
9338    category: "theme",
9339    parent: ["core/comments-pagination"],
9340    description: "Displays a list of page numbers for comments pagination.",
9341    textdomain: "default",
9342    usesContext: ["postId"],
9343    supports: {
9344      reusable: false,
9345      html: false
9346    }
9347  };
9348  
9349  const {
9350    name: comments_pagination_numbers_name
9351  } = comments_pagination_numbers_metadata;
9352  
9353  const comments_pagination_numbers_settings = {
9354    icon: query_pagination_numbers,
9355    edit: CommentsPaginationNumbersEdit
9356  };
9357  
9358  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-title.js
9359  
9360  
9361  /**
9362   * WordPress dependencies
9363   */
9364  
9365  const commentTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
9366    xmlns: "http://www.w3.org/2000/svg",
9367    viewBox: "0 0 24 24"
9368  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
9369    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"
9370  }));
9371  /* harmony default export */ var comment_title = (commentTitle);
9372  
9373  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-icon.js
9374  
9375  
9376  /**
9377   * WordPress dependencies
9378   */
9379  
9380  /** @typedef {import('@wordpress/element').WPComponent} WPComponent */
9381  
9382  /**
9383   * HeadingLevelIcon props.
9384   *
9385   * @typedef WPHeadingLevelIconProps
9386   *
9387   * @property {number}   level     The heading level to show an icon for.
9388   * @property {?boolean} isPressed Whether or not the icon should appear pressed; default: false.
9389   */
9390  
9391  /**
9392   * Heading level icon.
9393   *
9394   * @param {WPHeadingLevelIconProps} props Component props.
9395   *
9396   * @return {?WPComponent} The icon.
9397   */
9398  
9399  function HeadingLevelIcon(_ref) {
9400    let {
9401      level,
9402      isPressed = false
9403    } = _ref;
9404    const levelToPath = {
9405      1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z',
9406      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',
9407      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',
9408      4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z',
9409      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',
9410      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'
9411    };
9412  
9413    if (!levelToPath.hasOwnProperty(level)) {
9414      return null;
9415    }
9416  
9417    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
9418      width: "24",
9419      height: "24",
9420      viewBox: "0 0 20 20",
9421      xmlns: "http://www.w3.org/2000/svg",
9422      isPressed: isPressed
9423    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
9424      d: levelToPath[level]
9425    }));
9426  }
9427  
9428  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-dropdown.js
9429  
9430  
9431  /**
9432   * WordPress dependencies
9433   */
9434  
9435  
9436  /**
9437   * Internal dependencies
9438   */
9439  
9440  
9441  const HEADING_LEVELS = [1, 2, 3, 4, 5, 6];
9442  const POPOVER_PROPS = {
9443    className: 'block-library-heading-level-dropdown'
9444  };
9445  /** @typedef {import('@wordpress/element').WPComponent} WPComponent */
9446  
9447  /**
9448   * HeadingLevelDropdown props.
9449   *
9450   * @typedef WPHeadingLevelDropdownProps
9451   *
9452   * @property {number}                 selectedLevel The chosen heading level.
9453   * @property {(newValue:number)=>any} onChange      Callback to run when
9454   *                                                  toolbar value is changed.
9455   */
9456  
9457  /**
9458   * Dropdown for selecting a heading level (1 through 6).
9459   *
9460   * @param {WPHeadingLevelDropdownProps} props Component props.
9461   *
9462   * @return {WPComponent} The toolbar.
9463   */
9464  
9465  function HeadingLevelDropdown(_ref) {
9466    let {
9467      selectedLevel,
9468      onChange
9469    } = _ref;
9470    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
9471      popoverProps: POPOVER_PROPS,
9472      icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, {
9473        level: selectedLevel
9474      }),
9475      label: (0,external_wp_i18n_namespaceObject.__)('Change heading level'),
9476      controls: HEADING_LEVELS.map(targetLevel => {
9477        {
9478          const isActive = targetLevel === selectedLevel;
9479          return {
9480            icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, {
9481              level: targetLevel,
9482              isPressed: isActive
9483            }),
9484            label: (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: heading level e.g: "1", "2", "3"
9485            (0,external_wp_i18n_namespaceObject.__)('Heading %d'), targetLevel),
9486            isActive,
9487  
9488            onClick() {
9489              onChange(targetLevel);
9490            }
9491  
9492          };
9493        }
9494      })
9495    });
9496  }
9497  
9498  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/edit.js
9499  
9500  
9501  /**
9502   * External dependencies
9503   */
9504  
9505  /**
9506   * WordPress dependencies
9507   */
9508  
9509  
9510  
9511  
9512  
9513  
9514  
9515  
9516  /**
9517   * Internal dependencies
9518   */
9519  
9520  
9521  function comments_title_edit_Edit(_ref) {
9522    let {
9523      attributes: {
9524        textAlign,
9525        singleCommentLabel,
9526        multipleCommentsLabel,
9527        showPostTitle,
9528        showCommentsCount,
9529        level
9530      },
9531      setAttributes,
9532      context: {
9533        postType,
9534        postId
9535      }
9536    } = _ref;
9537    const TagName = 'h' + level;
9538    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
9539    const [editingMode, setEditingMode] = (0,external_wp_element_namespaceObject.useState)('plural');
9540    const [rawTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
9541    const isSiteEditor = typeof postId === 'undefined';
9542    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
9543      className: classnames_default()({
9544        [`has-text-align-$textAlign}`]: textAlign
9545      })
9546    });
9547    (0,external_wp_element_namespaceObject.useEffect)(() => {
9548      if (isSiteEditor) {
9549        setCommentsCount(3);
9550        return;
9551      }
9552  
9553      const currentPostId = postId;
9554      external_wp_apiFetch_default()({
9555        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
9556          post: postId,
9557          _fields: 'id'
9558        }),
9559        method: 'HEAD',
9560        parse: false
9561      }).then(res => {
9562        // Stale requests will have the `currentPostId` of an older closure.
9563        if (currentPostId === postId) {
9564          setCommentsCount(parseInt(res.headers.get('X-WP-Total')));
9565        }
9566      }).catch(() => {
9567        setCommentsCount(0);
9568      });
9569    }, [postId]);
9570    const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
9571      group: "block"
9572    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
9573      value: textAlign,
9574      onChange: newAlign => setAttributes({
9575        textAlign: newAlign
9576      })
9577    }), (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
9578      selectedLevel: level,
9579      onChange: newLevel => setAttributes({
9580        level: newLevel
9581      })
9582    }));
9583    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, {
9584      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
9585    }, isSiteEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
9586      label: (0,external_wp_i18n_namespaceObject.__)('Editing mode'),
9587      onChange: setEditingMode,
9588      value: editingMode
9589    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
9590      label: (0,external_wp_i18n_namespaceObject.__)('Singular'),
9591      value: "singular"
9592    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
9593      label: (0,external_wp_i18n_namespaceObject.__)('Plural'),
9594      value: "plural"
9595    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
9596      label: (0,external_wp_i18n_namespaceObject.__)('Show post title'),
9597      checked: showPostTitle,
9598      onChange: value => setAttributes({
9599        showPostTitle: value
9600      })
9601    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
9602      label: (0,external_wp_i18n_namespaceObject.__)('Show comments count'),
9603      checked: showCommentsCount,
9604      onChange: value => setAttributes({
9605        showCommentsCount: value
9606      })
9607    })));
9608    const postTitle = isSiteEditor ? (0,external_wp_i18n_namespaceObject.__)('"Post Title"') : `"$rawTitle}"`;
9609    const singlePlaceholder = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('One response to ') : (0,external_wp_i18n_namespaceObject.__)('One response');
9610    const singlePlaceholderNoCount = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('Response to ') : (0,external_wp_i18n_namespaceObject.__)('Response');
9611    const multiplePlaceholder = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('responses to ') : (0,external_wp_i18n_namespaceObject.__)('responses');
9612    const multiplePlaceholderNoCount = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('Responses to ') : (0,external_wp_i18n_namespaceObject.__)('Responses');
9613    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, editingMode === 'singular' || commentsCount === 1 ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
9614      __experimentalVersion: 2,
9615      tagName: "span",
9616      "aria-label": showCommentsCount ? singlePlaceholder : singlePlaceholderNoCount,
9617      placeholder: showCommentsCount ? singlePlaceholder : singlePlaceholderNoCount,
9618      value: singleCommentLabel,
9619      onChange: newLabel => setAttributes({
9620        singleCommentLabel: newLabel
9621      })
9622    }), showPostTitle ? postTitle : null) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, showCommentsCount ? commentsCount : null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
9623      __experimentalVersion: 2,
9624      tagName: "span",
9625      "aria-label": showCommentsCount ? ` $multiplePlaceholder}` : multiplePlaceholderNoCount,
9626      placeholder: showCommentsCount ? ` $multiplePlaceholder}` : multiplePlaceholderNoCount,
9627      value: multipleCommentsLabel,
9628      onChange: newLabel => setAttributes({
9629        multipleCommentsLabel: newLabel
9630      })
9631    }), showPostTitle ? postTitle : null)));
9632  }
9633  
9634  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
9635  /**
9636   * WordPress dependencies
9637   */
9638  
9639  /**
9640   * Internal dependencies
9641   */
9642  
9643  const comments_title_metadata = {
9644    $schema: "https://schemas.wp.org/trunk/block.json",
9645    apiVersion: 2,
9646    name: "core/comments-title",
9647    title: "Comments Title",
9648    category: "theme",
9649    ancestor: ["core/comments-query-loop"],
9650    description: "Displays a title with the number of comments",
9651    textdomain: "default",
9652    usesContext: ["postId", "postType"],
9653    attributes: {
9654      textAlign: {
9655        type: "string"
9656      },
9657      singleCommentLabel: {
9658        type: "string"
9659      },
9660      multipleCommentsLabel: {
9661        type: "string"
9662      },
9663      showPostTitle: {
9664        type: "boolean",
9665        "default": true
9666      },
9667      showCommentsCount: {
9668        type: "boolean",
9669        "default": true
9670      },
9671      level: {
9672        type: "number",
9673        "default": 2
9674      }
9675    },
9676    supports: {
9677      anchor: false,
9678      align: true,
9679      html: false,
9680      __experimentalBorder: {
9681        radius: true,
9682        color: true,
9683        width: true,
9684        style: true
9685      },
9686      color: {
9687        gradients: true,
9688        __experimentalDefaultControls: {
9689          background: true,
9690          text: true
9691        }
9692      },
9693      spacing: {
9694        margin: true,
9695        padding: true
9696      },
9697      typography: {
9698        fontSize: true,
9699        lineHeight: true,
9700        __experimentalFontStyle: true,
9701        __experimentalFontWeight: true,
9702        __experimentalFontFamily: true,
9703        __experimentalTextTransform: true,
9704        __experimentalDefaultControls: {
9705          fontSize: true,
9706          __experimentalFontFamily: true,
9707          __experimentalFontStyle: true,
9708          __experimentalFontWeight: true
9709        }
9710      }
9711    }
9712  };
9713  
9714  const {
9715    name: comments_title_name
9716  } = comments_title_metadata;
9717  
9718  const comments_title_settings = {
9719    icon: comment_title,
9720    edit: comments_title_edit_Edit
9721  };
9722  
9723  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cover.js
9724  
9725  
9726  /**
9727   * WordPress dependencies
9728   */
9729  
9730  const cover = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
9731    xmlns: "http://www.w3.org/2000/svg",
9732    viewBox: "0 0 24 24"
9733  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
9734    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"
9735  }));
9736  /* harmony default export */ var library_cover = (cover);
9737  
9738  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/shared.js
9739  /**
9740   * WordPress dependencies
9741   */
9742  
9743  const POSITION_CLASSNAMES = {
9744    'top left': 'is-position-top-left',
9745    'top center': 'is-position-top-center',
9746    'top right': 'is-position-top-right',
9747    'center left': 'is-position-center-left',
9748    'center center': 'is-position-center-center',
9749    center: 'is-position-center-center',
9750    'center right': 'is-position-center-right',
9751    'bottom left': 'is-position-bottom-left',
9752    'bottom center': 'is-position-bottom-center',
9753    'bottom right': 'is-position-bottom-right'
9754  };
9755  const IMAGE_BACKGROUND_TYPE = 'image';
9756  const VIDEO_BACKGROUND_TYPE = 'video';
9757  const COVER_MIN_HEIGHT = 50;
9758  const COVER_MAX_HEIGHT = 1000;
9759  const COVER_DEFAULT_HEIGHT = 300;
9760  function backgroundImageStyles(url) {
9761    return url ? {
9762      backgroundImage: `url($url})`
9763    } : {};
9764  }
9765  const shared_ALLOWED_MEDIA_TYPES = ['image', 'video'];
9766  function dimRatioToClass(ratio) {
9767    return ratio === 50 || !ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
9768  }
9769  function attributesFromMedia(setAttributes, dimRatio) {
9770    return media => {
9771      if (!media || !media.url) {
9772        setAttributes({
9773          url: undefined,
9774          id: undefined
9775        });
9776        return;
9777      }
9778  
9779      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
9780        media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
9781      }
9782  
9783      let mediaType; // For media selections originated from a file upload.
9784  
9785      if (media.media_type) {
9786        if (media.media_type === IMAGE_BACKGROUND_TYPE) {
9787          mediaType = IMAGE_BACKGROUND_TYPE;
9788        } else {
9789          // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
9790          // Videos contain the media type of 'file' in the object returned from the rest api.
9791          mediaType = VIDEO_BACKGROUND_TYPE;
9792        }
9793      } else {
9794        // For media selections originated from existing files in the media library.
9795        if (media.type !== IMAGE_BACKGROUND_TYPE && media.type !== VIDEO_BACKGROUND_TYPE) {
9796          return;
9797        }
9798  
9799        mediaType = media.type;
9800      }
9801  
9802      setAttributes({
9803        dimRatio: dimRatio === 100 ? 50 : dimRatio,
9804        url: media.url,
9805        id: media.id,
9806        alt: media === null || media === void 0 ? void 0 : media.alt,
9807        backgroundType: mediaType,
9808        ...(mediaType === VIDEO_BACKGROUND_TYPE ? {
9809          focalPoint: undefined,
9810          hasParallax: undefined
9811        } : {})
9812      });
9813    };
9814  }
9815  /**
9816   * Checks of the contentPosition is the center (default) position.
9817   *
9818   * @param {string} contentPosition The current content position.
9819   * @return {boolean} Whether the contentPosition is center.
9820   */
9821  
9822  function isContentPositionCenter(contentPosition) {
9823    return !contentPosition || contentPosition === 'center center' || contentPosition === 'center';
9824  }
9825  /**
9826   * Retrieves the className for the current contentPosition.
9827   * The default position (center) will not have a className.
9828   *
9829   * @param {string} contentPosition The current content position.
9830   * @return {string} The className assigned to the contentPosition.
9831   */
9832  
9833  function getPositionClassName(contentPosition) {
9834    /*
9835     * Only render a className if the contentPosition is not center (the default).
9836     */
9837    if (isContentPositionCenter(contentPosition)) return '';
9838    return POSITION_CLASSNAMES[contentPosition];
9839  }
9840  
9841  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/deprecated.js
9842  
9843  
9844  /**
9845   * External dependencies
9846   */
9847  
9848  
9849  /**
9850   * WordPress dependencies
9851   */
9852  
9853  
9854  
9855  
9856  /**
9857   * Internal dependencies
9858   */
9859  
9860  
9861  /**
9862   * Original function to determine the background opacity classname
9863   *
9864   * Used in deprecations: v1-7.
9865   *
9866   * @param {number} ratio ratio to use for opacity.
9867   * @return {string}       background opacity class   .
9868   */
9869  
9870  function dimRatioToClassV1(ratio) {
9871    return ratio === 0 || ratio === 50 || !ratio ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
9872  }
9873  
9874  function migrateDimRatio(attributes) {
9875    return { ...attributes,
9876      dimRatio: !attributes.url ? 100 : attributes.dimRatio
9877    };
9878  }
9879  
9880  const deprecated_blockAttributes = {
9881    url: {
9882      type: 'string'
9883    },
9884    id: {
9885      type: 'number'
9886    },
9887    hasParallax: {
9888      type: 'boolean',
9889      default: false
9890    },
9891    dimRatio: {
9892      type: 'number',
9893      default: 50
9894    },
9895    overlayColor: {
9896      type: 'string'
9897    },
9898    customOverlayColor: {
9899      type: 'string'
9900    },
9901    backgroundType: {
9902      type: 'string',
9903      default: 'image'
9904    },
9905    focalPoint: {
9906      type: 'object'
9907    }
9908  }; // Deprecation for blocks with `minHeightUnit` set but no `minHeight`.
9909  
9910  const v9 = {
9911    attributes: {
9912      url: {
9913        type: 'string'
9914      },
9915      id: {
9916        type: 'number'
9917      },
9918      alt: {
9919        type: 'string',
9920        source: 'attribute',
9921        selector: 'img',
9922        attribute: 'alt',
9923        default: ''
9924      },
9925      hasParallax: {
9926        type: 'boolean',
9927        default: false
9928      },
9929      isRepeated: {
9930        type: 'boolean',
9931        default: false
9932      },
9933      dimRatio: {
9934        type: 'number',
9935        default: 100
9936      },
9937      overlayColor: {
9938        type: 'string'
9939      },
9940      customOverlayColor: {
9941        type: 'string'
9942      },
9943      backgroundType: {
9944        type: 'string',
9945        default: 'image'
9946      },
9947      focalPoint: {
9948        type: 'object'
9949      },
9950      minHeight: {
9951        type: 'number'
9952      },
9953      minHeightUnit: {
9954        type: 'string'
9955      },
9956      gradient: {
9957        type: 'string'
9958      },
9959      customGradient: {
9960        type: 'string'
9961      },
9962      contentPosition: {
9963        type: 'string'
9964      },
9965      isDark: {
9966        type: 'boolean',
9967        default: true
9968      },
9969      allowedBlocks: {
9970        type: 'array'
9971      },
9972      templateLock: {
9973        type: ['string', 'boolean'],
9974        enum: ['all', 'insert', false]
9975      }
9976    },
9977    supports: {
9978      anchor: true,
9979      align: true,
9980      html: false,
9981      spacing: {
9982        padding: true,
9983        __experimentalDefaultControls: {
9984          padding: true
9985        }
9986      },
9987      color: {
9988        __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
9989        text: false,
9990        background: false
9991      }
9992    },
9993  
9994    save(_ref) {
9995      let {
9996        attributes
9997      } = _ref;
9998      const {
9999        backgroundType,
10000        gradient,
10001        contentPosition,
10002        customGradient,
10003        customOverlayColor,
10004        dimRatio,
10005        focalPoint,
10006        hasParallax,
10007        isDark,
10008        isRepeated,
10009        overlayColor,
10010        url,
10011        alt,
10012        id,
10013        minHeight: minHeightProp,
10014        minHeightUnit
10015      } = attributes;
10016      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10017  
10018      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
10019  
10020      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
10021      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
10022      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
10023      const isImgElement = !(hasParallax || isRepeated);
10024      const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
10025        minHeight: minHeight || undefined
10026      };
10027      const bgStyle = {
10028        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
10029        background: customGradient ? customGradient : undefined
10030      };
10031      const objectPosition = // prettier-ignore
10032      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
10033      const classes = classnames_default()({
10034        'is-light': !isDark,
10035        'has-parallax': hasParallax,
10036        'is-repeated': isRepeated,
10037        'has-custom-content-position': !isContentPositionCenter(contentPosition)
10038      }, getPositionClassName(contentPosition));
10039      const gradientValue = gradient || customGradient;
10040      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
10041        className: classes,
10042        style
10043      }), (0,external_wp_element_namespaceObject.createElement)("span", {
10044        "aria-hidden": "true",
10045        className: classnames_default()('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
10046          'has-background-dim': dimRatio !== undefined,
10047          // For backwards compatibility. Former versions of the Cover Block applied
10048          // `.wp-block-cover__gradient-background` in the presence of
10049          // media, a gradient and a dim.
10050          'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
10051          'has-background-gradient': gradientValue,
10052          [gradientClass]: gradientClass
10053        }),
10054        style: bgStyle
10055      }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
10056        className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
10057        alt: alt,
10058        src: url,
10059        style: {
10060          objectPosition
10061        },
10062        "data-object-fit": "cover",
10063        "data-object-position": objectPosition
10064      }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10065        className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
10066        autoPlay: true,
10067        muted: true,
10068        loop: true,
10069        playsInline: true,
10070        src: url,
10071        style: {
10072          objectPosition
10073        },
10074        "data-object-fit": "cover",
10075        "data-object-position": objectPosition
10076      }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
10077        className: 'wp-block-cover__inner-container'
10078      })));
10079    }
10080  
10081  }; // v8: deprecated to remove duplicated gradient classes and swap `wp-block-cover__gradient-background` for `wp-block-cover__background`.
10082  
10083  const v8 = {
10084    attributes: {
10085      url: {
10086        type: 'string'
10087      },
10088      id: {
10089        type: 'number'
10090      },
10091      alt: {
10092        type: 'string',
10093        source: 'attribute',
10094        selector: 'img',
10095        attribute: 'alt',
10096        default: ''
10097      },
10098      hasParallax: {
10099        type: 'boolean',
10100        default: false
10101      },
10102      isRepeated: {
10103        type: 'boolean',
10104        default: false
10105      },
10106      dimRatio: {
10107        type: 'number',
10108        default: 100
10109      },
10110      overlayColor: {
10111        type: 'string'
10112      },
10113      customOverlayColor: {
10114        type: 'string'
10115      },
10116      backgroundType: {
10117        type: 'string',
10118        default: 'image'
10119      },
10120      focalPoint: {
10121        type: 'object'
10122      },
10123      minHeight: {
10124        type: 'number'
10125      },
10126      minHeightUnit: {
10127        type: 'string'
10128      },
10129      gradient: {
10130        type: 'string'
10131      },
10132      customGradient: {
10133        type: 'string'
10134      },
10135      contentPosition: {
10136        type: 'string'
10137      },
10138      isDark: {
10139        type: 'boolean',
10140        default: true
10141      },
10142      allowedBlocks: {
10143        type: 'array'
10144      },
10145      templateLock: {
10146        type: ['string', 'boolean'],
10147        enum: ['all', 'insert', false]
10148      }
10149    },
10150    supports: {
10151      anchor: true,
10152      align: true,
10153      html: false,
10154      spacing: {
10155        padding: true,
10156        __experimentalDefaultControls: {
10157          padding: true
10158        }
10159      },
10160      color: {
10161        __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
10162        text: false,
10163        background: false
10164      }
10165    },
10166  
10167    save(_ref2) {
10168      let {
10169        attributes
10170      } = _ref2;
10171      const {
10172        backgroundType,
10173        gradient,
10174        contentPosition,
10175        customGradient,
10176        customOverlayColor,
10177        dimRatio,
10178        focalPoint,
10179        hasParallax,
10180        isDark,
10181        isRepeated,
10182        overlayColor,
10183        url,
10184        alt,
10185        id,
10186        minHeight: minHeightProp,
10187        minHeightUnit
10188      } = attributes;
10189      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10190  
10191      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
10192  
10193      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
10194      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
10195      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
10196      const isImgElement = !(hasParallax || isRepeated);
10197      const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
10198        minHeight: minHeight || undefined
10199      };
10200      const bgStyle = {
10201        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
10202        background: customGradient ? customGradient : undefined
10203      };
10204      const objectPosition = // prettier-ignore
10205      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
10206      const classes = classnames_default()({
10207        'is-light': !isDark,
10208        'has-parallax': hasParallax,
10209        'is-repeated': isRepeated,
10210        'has-custom-content-position': !isContentPositionCenter(contentPosition)
10211      }, getPositionClassName(contentPosition));
10212      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
10213        className: classes,
10214        style
10215      }), (0,external_wp_element_namespaceObject.createElement)("span", {
10216        "aria-hidden": "true",
10217        className: classnames_default()(overlayColorClass, dimRatioToClass(dimRatio), 'wp-block-cover__gradient-background', gradientClass, {
10218          'has-background-dim': dimRatio !== undefined,
10219          'has-background-gradient': gradient || customGradient,
10220          [gradientClass]: !url && gradientClass
10221        }),
10222        style: bgStyle
10223      }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
10224        className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
10225        alt: alt,
10226        src: url,
10227        style: {
10228          objectPosition
10229        },
10230        "data-object-fit": "cover",
10231        "data-object-position": objectPosition
10232      }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10233        className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
10234        autoPlay: true,
10235        muted: true,
10236        loop: true,
10237        playsInline: true,
10238        src: url,
10239        style: {
10240          objectPosition
10241        },
10242        "data-object-fit": "cover",
10243        "data-object-position": objectPosition
10244      }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
10245        className: 'wp-block-cover__inner-container'
10246      })));
10247    }
10248  
10249  };
10250  const v7 = {
10251    attributes: { ...deprecated_blockAttributes,
10252      isRepeated: {
10253        type: 'boolean',
10254        default: false
10255      },
10256      minHeight: {
10257        type: 'number'
10258      },
10259      minHeightUnit: {
10260        type: 'string'
10261      },
10262      gradient: {
10263        type: 'string'
10264      },
10265      customGradient: {
10266        type: 'string'
10267      },
10268      contentPosition: {
10269        type: 'string'
10270      },
10271      alt: {
10272        type: 'string',
10273        source: 'attribute',
10274        selector: 'img',
10275        attribute: 'alt',
10276        default: ''
10277      }
10278    },
10279    supports: {
10280      anchor: true,
10281      align: true,
10282      html: false,
10283      spacing: {
10284        padding: true,
10285        __experimentalDefaultControls: {
10286          padding: true
10287        }
10288      },
10289      color: {
10290        __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
10291        text: false,
10292        background: false
10293      }
10294    },
10295  
10296    save(_ref3) {
10297      let {
10298        attributes
10299      } = _ref3;
10300      const {
10301        backgroundType,
10302        gradient,
10303        contentPosition,
10304        customGradient,
10305        customOverlayColor,
10306        dimRatio,
10307        focalPoint,
10308        hasParallax,
10309        isRepeated,
10310        overlayColor,
10311        url,
10312        alt,
10313        id,
10314        minHeight: minHeightProp,
10315        minHeightUnit
10316      } = attributes;
10317      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10318  
10319      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
10320  
10321      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
10322      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
10323      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
10324      const isImgElement = !(hasParallax || isRepeated);
10325      const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
10326        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
10327        background: customGradient && !url ? customGradient : undefined,
10328        minHeight: minHeight || undefined
10329      };
10330      const objectPosition = // prettier-ignore
10331      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
10332      const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
10333        'has-background-dim': dimRatio !== 0,
10334        'has-parallax': hasParallax,
10335        'is-repeated': isRepeated,
10336        'has-background-gradient': gradient || customGradient,
10337        [gradientClass]: !url && gradientClass,
10338        'has-custom-content-position': !isContentPositionCenter(contentPosition)
10339      }, getPositionClassName(contentPosition));
10340      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
10341        className: classes,
10342        style
10343      }), url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
10344        "aria-hidden": "true",
10345        className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
10346        style: customGradient ? {
10347          background: customGradient
10348        } : undefined
10349      }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
10350        className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
10351        alt: alt,
10352        src: url,
10353        style: {
10354          objectPosition
10355        },
10356        "data-object-fit": "cover",
10357        "data-object-position": objectPosition
10358      }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10359        className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
10360        autoPlay: true,
10361        muted: true,
10362        loop: true,
10363        playsInline: true,
10364        src: url,
10365        style: {
10366          objectPosition
10367        },
10368        "data-object-fit": "cover",
10369        "data-object-position": objectPosition
10370      }), (0,external_wp_element_namespaceObject.createElement)("div", {
10371        className: "wp-block-cover__inner-container"
10372      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
10373    },
10374  
10375    migrate: migrateDimRatio
10376  };
10377  const v6 = {
10378    attributes: { ...deprecated_blockAttributes,
10379      isRepeated: {
10380        type: 'boolean',
10381        default: false
10382      },
10383      minHeight: {
10384        type: 'number'
10385      },
10386      minHeightUnit: {
10387        type: 'string'
10388      },
10389      gradient: {
10390        type: 'string'
10391      },
10392      customGradient: {
10393        type: 'string'
10394      },
10395      contentPosition: {
10396        type: 'string'
10397      }
10398    },
10399    supports: {
10400      align: true
10401    },
10402  
10403    save(_ref4) {
10404      let {
10405        attributes
10406      } = _ref4;
10407      const {
10408        backgroundType,
10409        gradient,
10410        contentPosition,
10411        customGradient,
10412        customOverlayColor,
10413        dimRatio,
10414        focalPoint,
10415        hasParallax,
10416        isRepeated,
10417        overlayColor,
10418        url,
10419        minHeight: minHeightProp,
10420        minHeightUnit
10421      } = attributes;
10422      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10423  
10424      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
10425  
10426      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
10427      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
10428      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
10429      const style = isImageBackground ? backgroundImageStyles(url) : {};
10430      const videoStyle = {};
10431  
10432      if (!overlayColorClass) {
10433        style.backgroundColor = customOverlayColor;
10434      }
10435  
10436      if (customGradient && !url) {
10437        style.background = customGradient;
10438      }
10439  
10440      style.minHeight = minHeight || undefined;
10441      let positionValue;
10442  
10443      if (focalPoint) {
10444        positionValue = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`;
10445  
10446        if (isImageBackground && !hasParallax) {
10447          style.backgroundPosition = positionValue;
10448        }
10449  
10450        if (isVideoBackground) {
10451          videoStyle.objectPosition = positionValue;
10452        }
10453      }
10454  
10455      const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
10456        'has-background-dim': dimRatio !== 0,
10457        'has-parallax': hasParallax,
10458        'is-repeated': isRepeated,
10459        'has-background-gradient': gradient || customGradient,
10460        [gradientClass]: !url && gradientClass,
10461        'has-custom-content-position': !isContentPositionCenter(contentPosition)
10462      }, getPositionClassName(contentPosition));
10463      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
10464        className: classes,
10465        style
10466      }), url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
10467        "aria-hidden": "true",
10468        className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
10469        style: customGradient ? {
10470          background: customGradient
10471        } : undefined
10472      }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10473        className: "wp-block-cover__video-background",
10474        autoPlay: true,
10475        muted: true,
10476        loop: true,
10477        playsInline: true,
10478        src: url,
10479        style: videoStyle
10480      }), (0,external_wp_element_namespaceObject.createElement)("div", {
10481        className: "wp-block-cover__inner-container"
10482      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
10483    },
10484  
10485    migrate: migrateDimRatio
10486  };
10487  const v5 = {
10488    attributes: { ...deprecated_blockAttributes,
10489      minHeight: {
10490        type: 'number'
10491      },
10492      gradient: {
10493        type: 'string'
10494      },
10495      customGradient: {
10496        type: 'string'
10497      }
10498    },
10499    supports: {
10500      align: true
10501    },
10502  
10503    save(_ref5) {
10504      let {
10505        attributes
10506      } = _ref5;
10507      const {
10508        backgroundType,
10509        gradient,
10510        customGradient,
10511        customOverlayColor,
10512        dimRatio,
10513        focalPoint,
10514        hasParallax,
10515        overlayColor,
10516        url,
10517        minHeight
10518      } = attributes;
10519      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10520  
10521      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
10522  
10523      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
10524  
10525      if (!overlayColorClass) {
10526        style.backgroundColor = customOverlayColor;
10527      }
10528  
10529      if (focalPoint && !hasParallax) {
10530        style.backgroundPosition = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`;
10531      }
10532  
10533      if (customGradient && !url) {
10534        style.background = customGradient;
10535      }
10536  
10537      style.minHeight = minHeight || undefined;
10538      const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
10539        'has-background-dim': dimRatio !== 0,
10540        'has-parallax': hasParallax,
10541        'has-background-gradient': customGradient,
10542        [gradientClass]: !url && gradientClass
10543      });
10544      return (0,external_wp_element_namespaceObject.createElement)("div", {
10545        className: classes,
10546        style: style
10547      }, url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
10548        "aria-hidden": "true",
10549        className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
10550        style: customGradient ? {
10551          background: customGradient
10552        } : undefined
10553      }), VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10554        className: "wp-block-cover__video-background",
10555        autoPlay: true,
10556        muted: true,
10557        loop: true,
10558        src: url
10559      }), (0,external_wp_element_namespaceObject.createElement)("div", {
10560        className: "wp-block-cover__inner-container"
10561      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
10562    },
10563  
10564    migrate: migrateDimRatio
10565  };
10566  const v4 = {
10567    attributes: { ...deprecated_blockAttributes,
10568      minHeight: {
10569        type: 'number'
10570      },
10571      gradient: {
10572        type: 'string'
10573      },
10574      customGradient: {
10575        type: 'string'
10576      }
10577    },
10578    supports: {
10579      align: true
10580    },
10581  
10582    save(_ref6) {
10583      let {
10584        attributes
10585      } = _ref6;
10586      const {
10587        backgroundType,
10588        gradient,
10589        customGradient,
10590        customOverlayColor,
10591        dimRatio,
10592        focalPoint,
10593        hasParallax,
10594        overlayColor,
10595        url,
10596        minHeight
10597      } = attributes;
10598      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10599  
10600      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
10601  
10602      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
10603  
10604      if (!overlayColorClass) {
10605        style.backgroundColor = customOverlayColor;
10606      }
10607  
10608      if (focalPoint && !hasParallax) {
10609        style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`;
10610      }
10611  
10612      if (customGradient && !url) {
10613        style.background = customGradient;
10614      }
10615  
10616      style.minHeight = minHeight || undefined;
10617      const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
10618        'has-background-dim': dimRatio !== 0,
10619        'has-parallax': hasParallax,
10620        'has-background-gradient': customGradient,
10621        [gradientClass]: !url && gradientClass
10622      });
10623      return (0,external_wp_element_namespaceObject.createElement)("div", {
10624        className: classes,
10625        style: style
10626      }, url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", {
10627        "aria-hidden": "true",
10628        className: classnames_default()('wp-block-cover__gradient-background', gradientClass),
10629        style: customGradient ? {
10630          background: customGradient
10631        } : undefined
10632      }), VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10633        className: "wp-block-cover__video-background",
10634        autoPlay: true,
10635        muted: true,
10636        loop: true,
10637        src: url
10638      }), (0,external_wp_element_namespaceObject.createElement)("div", {
10639        className: "wp-block-cover__inner-container"
10640      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
10641    },
10642  
10643    migrate: migrateDimRatio
10644  };
10645  const v3 = {
10646    attributes: { ...deprecated_blockAttributes,
10647      title: {
10648        type: 'string',
10649        source: 'html',
10650        selector: 'p'
10651      },
10652      contentAlign: {
10653        type: 'string',
10654        default: 'center'
10655      }
10656    },
10657    supports: {
10658      align: true
10659    },
10660  
10661    save(_ref7) {
10662      let {
10663        attributes
10664      } = _ref7;
10665      const {
10666        backgroundType,
10667        contentAlign,
10668        customOverlayColor,
10669        dimRatio,
10670        focalPoint,
10671        hasParallax,
10672        overlayColor,
10673        title,
10674        url
10675      } = attributes;
10676      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10677      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
10678  
10679      if (!overlayColorClass) {
10680        style.backgroundColor = customOverlayColor;
10681      }
10682  
10683      if (focalPoint && !hasParallax) {
10684        style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`;
10685      }
10686  
10687      const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, {
10688        'has-background-dim': dimRatio !== 0,
10689        'has-parallax': hasParallax,
10690        [`has-$contentAlign}-content`]: contentAlign !== 'center'
10691      });
10692      return (0,external_wp_element_namespaceObject.createElement)("div", {
10693        className: classes,
10694        style: style
10695      }, VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", {
10696        className: "wp-block-cover__video-background",
10697        autoPlay: true,
10698        muted: true,
10699        loop: true,
10700        src: url
10701      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
10702        tagName: "p",
10703        className: "wp-block-cover-text",
10704        value: title
10705      }));
10706    },
10707  
10708    migrate(attributes) {
10709      const newAttribs = { ...attributes,
10710        dimRatio: !attributes.url ? 100 : attributes.dimRatio
10711      };
10712      return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
10713        content: attributes.title,
10714        align: attributes.contentAlign,
10715        fontSize: 'large',
10716        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
10717      })]];
10718    }
10719  
10720  };
10721  const v2 = {
10722    attributes: { ...deprecated_blockAttributes,
10723      title: {
10724        type: 'string',
10725        source: 'html',
10726        selector: 'p'
10727      },
10728      contentAlign: {
10729        type: 'string',
10730        default: 'center'
10731      },
10732      align: {
10733        type: 'string'
10734      }
10735    },
10736    supports: {
10737      className: false
10738    },
10739  
10740    save(_ref8) {
10741      let {
10742        attributes
10743      } = _ref8;
10744      const {
10745        url,
10746        title,
10747        hasParallax,
10748        dimRatio,
10749        align,
10750        contentAlign,
10751        overlayColor,
10752        customOverlayColor
10753      } = attributes;
10754      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
10755      const style = backgroundImageStyles(url);
10756  
10757      if (!overlayColorClass) {
10758        style.backgroundColor = customOverlayColor;
10759      }
10760  
10761      const classes = classnames_default()('wp-block-cover-image', dimRatioToClassV1(dimRatio), overlayColorClass, {
10762        'has-background-dim': dimRatio !== 0,
10763        'has-parallax': hasParallax,
10764        [`has-$contentAlign}-content`]: contentAlign !== 'center'
10765      }, align ? `align$align}` : null);
10766      return (0,external_wp_element_namespaceObject.createElement)("div", {
10767        className: classes,
10768        style: style
10769      }, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
10770        tagName: "p",
10771        className: "wp-block-cover-image-text",
10772        value: title
10773      }));
10774    },
10775  
10776    migrate(attributes) {
10777      const newAttribs = { ...attributes,
10778        dimRatio: !attributes.url ? 100 : attributes.dimRatio
10779      };
10780      return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign', 'align']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
10781        content: attributes.title,
10782        align: attributes.contentAlign,
10783        fontSize: 'large',
10784        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
10785      })]];
10786    }
10787  
10788  };
10789  const cover_deprecated_v1 = {
10790    attributes: { ...deprecated_blockAttributes,
10791      title: {
10792        type: 'string',
10793        source: 'html',
10794        selector: 'h2'
10795      },
10796      align: {
10797        type: 'string'
10798      },
10799      contentAlign: {
10800        type: 'string',
10801        default: 'center'
10802      }
10803    },
10804    supports: {
10805      className: false
10806    },
10807  
10808    save(_ref9) {
10809      let {
10810        attributes
10811      } = _ref9;
10812      const {
10813        url,
10814        title,
10815        hasParallax,
10816        dimRatio,
10817        align
10818      } = attributes;
10819      const style = backgroundImageStyles(url);
10820      const classes = classnames_default()('wp-block-cover-image', dimRatioToClassV1(dimRatio), {
10821        'has-background-dim': dimRatio !== 0,
10822        'has-parallax': hasParallax
10823      }, align ? `align$align}` : null);
10824      return (0,external_wp_element_namespaceObject.createElement)("section", {
10825        className: classes,
10826        style: style
10827      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
10828        tagName: "h2",
10829        value: title
10830      }));
10831    },
10832  
10833    migrate(attributes) {
10834      const newAttribs = { ...attributes,
10835        dimRatio: !attributes.url ? 100 : attributes.dimRatio
10836      };
10837      return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign', 'align']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
10838        content: attributes.title,
10839        align: attributes.contentAlign,
10840        fontSize: 'large',
10841        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
10842      })]];
10843    }
10844  
10845  };
10846  /* harmony default export */ var cover_deprecated = ([v9, v8, v7, v6, v5, v4, v3, v2, cover_deprecated_v1]);
10847  
10848  // EXTERNAL MODULE: ./node_modules/fast-average-color/dist/index.js
10849  var dist = __webpack_require__(5027);
10850  var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
10851  ;// CONCATENATED MODULE: ./node_modules/colord/index.mjs
10852  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()})};
10853  
10854  ;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs
10855  /* 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"])}
10856  
10857  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js
10858  
10859  
10860  /**
10861   * WordPress dependencies
10862   */
10863  
10864  const postFeaturedImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
10865    xmlns: "http://www.w3.org/2000/svg",
10866    viewBox: "0 0 24 24"
10867  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
10868    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"
10869  }));
10870  /* harmony default export */ var post_featured_image = (postFeaturedImage);
10871  
10872  ;// CONCATENATED MODULE: external ["wp","notices"]
10873  var external_wp_notices_namespaceObject = window["wp"]["notices"];
10874  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit.js
10875  
10876  
10877  
10878  /**
10879   * External dependencies
10880   */
10881  
10882  
10883  
10884  
10885  /**
10886   * WordPress dependencies
10887   */
10888  
10889  
10890  
10891  
10892  
10893  
10894  
10895  
10896  
10897  
10898  
10899  /**
10900   * Internal dependencies
10901   */
10902  
10903  
10904  k([names]);
10905  const {
10906    __Visualizer: BoxControlVisualizer
10907  } = external_wp_components_namespaceObject.__experimentalBoxControl;
10908  
10909  function getInnerBlocksTemplate(attributes) {
10910    return [['core/paragraph', {
10911      align: 'center',
10912      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…'),
10913      ...attributes
10914    }]];
10915  }
10916  
10917  function retrieveFastAverageColor() {
10918    if (!retrieveFastAverageColor.fastAverageColor) {
10919      retrieveFastAverageColor.fastAverageColor = new (dist_default())();
10920    }
10921  
10922    return retrieveFastAverageColor.fastAverageColor;
10923  }
10924  
10925  function CoverHeightInput(_ref) {
10926    let {
10927      onChange,
10928      onUnitChange,
10929      unit = 'px',
10930      value = ''
10931    } = _ref;
10932    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
10933    const inputId = `block-cover-height-input-$instanceId}`;
10934    const isPx = unit === 'px';
10935    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
10936      availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['px', 'em', 'rem', 'vw', 'vh'],
10937      defaultValues: {
10938        px: 430,
10939        '%': 20,
10940        em: 20,
10941        rem: 20,
10942        vw: 20,
10943        vh: 50
10944      }
10945    });
10946  
10947    const handleOnChange = unprocessedValue => {
10948      const inputValue = unprocessedValue !== '' ? parseFloat(unprocessedValue) : undefined;
10949  
10950      if (isNaN(inputValue) && inputValue !== undefined) {
10951        return;
10952      }
10953  
10954      onChange(inputValue);
10955    };
10956  
10957    const computedValue = (0,external_wp_element_namespaceObject.useMemo)(() => {
10958      const [parsedQuantity] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
10959      return [parsedQuantity, unit].join('');
10960    }, [unit, value]);
10961    const min = isPx ? COVER_MIN_HEIGHT : 0;
10962    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
10963      label: (0,external_wp_i18n_namespaceObject.__)('Minimum height of cover'),
10964      id: inputId
10965    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
10966      id: inputId,
10967      isResetValueOnUnitChange: true,
10968      min: min,
10969      onChange: handleOnChange,
10970      onUnitChange: onUnitChange,
10971      style: {
10972        maxWidth: 80
10973      },
10974      units: units,
10975      value: computedValue
10976    }));
10977  }
10978  
10979  const RESIZABLE_BOX_ENABLE_OPTION = {
10980    top: false,
10981    right: false,
10982    bottom: true,
10983    left: false,
10984    topRight: false,
10985    bottomRight: false,
10986    bottomLeft: false,
10987    topLeft: false
10988  };
10989  
10990  function ResizableCover(_ref2) {
10991    let {
10992      className,
10993      onResizeStart,
10994      onResize,
10995      onResizeStop,
10996      ...props
10997    } = _ref2;
10998    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
10999    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({
11000      className: classnames_default()(className, {
11001        'is-resizing': isResizing
11002      }),
11003      enable: RESIZABLE_BOX_ENABLE_OPTION,
11004      onResizeStart: (_event, _direction, elt) => {
11005        onResizeStart(elt.clientHeight);
11006        onResize(elt.clientHeight);
11007      },
11008      onResize: (_event, _direction, elt) => {
11009        onResize(elt.clientHeight);
11010  
11011        if (!isResizing) {
11012          setIsResizing(true);
11013        }
11014      },
11015      onResizeStop: (_event, _direction, elt) => {
11016        onResizeStop(elt.clientHeight);
11017        setIsResizing(false);
11018      }
11019    }, props));
11020  }
11021  /**
11022   * useCoverIsDark is a hook that returns a boolean variable specifying if the cover
11023   * background is dark or not.
11024   *
11025   * @param {?string} url          Url of the media background.
11026   * @param {?number} dimRatio     Transparency of the overlay color. If an image and
11027   *                               color are set, dimRatio is used to decide what is used
11028   *                               for background darkness checking purposes.
11029   * @param {?string} overlayColor String containing the overlay color value if one exists.
11030   * @param {?Object} elementRef   If a media background is set, elementRef should contain a reference to a
11031   *                               dom element that renders that media.
11032   *
11033   * @return {boolean} True if the cover background is considered "dark" and false otherwise.
11034   */
11035  
11036  
11037  function useCoverIsDark(url) {
11038    let dimRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;
11039    let overlayColor = arguments.length > 2 ? arguments[2] : undefined;
11040    let elementRef = arguments.length > 3 ? arguments[3] : undefined;
11041    const [isDark, setIsDark] = (0,external_wp_element_namespaceObject.useState)(false);
11042    (0,external_wp_element_namespaceObject.useEffect)(() => {
11043      // If opacity is lower than 50 the dominant color is the image or video color,
11044      // so use that color for the dark mode computation.
11045      if (url && dimRatio <= 50 && elementRef.current) {
11046        retrieveFastAverageColor().getColorAsync(elementRef.current, color => {
11047          setIsDark(color.isDark);
11048        });
11049      }
11050    }, [url, url && dimRatio <= 50 && elementRef.current, setIsDark]);
11051    (0,external_wp_element_namespaceObject.useEffect)(() => {
11052      // If opacity is greater than 50 the dominant color is the overlay color,
11053      // so use that color for the dark mode computation.
11054      if (dimRatio > 50 || !url) {
11055        if (!overlayColor) {
11056          // If no overlay color exists the overlay color is black (isDark )
11057          setIsDark(true);
11058          return;
11059        }
11060  
11061        setIsDark(w(overlayColor).isDark());
11062      }
11063    }, [overlayColor, dimRatio > 50 || !url, setIsDark]);
11064    (0,external_wp_element_namespaceObject.useEffect)(() => {
11065      if (!url && !overlayColor) {
11066        // Reset isDark.
11067        setIsDark(false);
11068      }
11069    }, [!url && !overlayColor, setIsDark]);
11070    return isDark;
11071  }
11072  
11073  function mediaPosition(_ref3) {
11074    let {
11075      x,
11076      y
11077    } = _ref3;
11078    return `$Math.round(x * 100)}% $Math.round(y * 100)}%`;
11079  }
11080  /**
11081   * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while
11082   * the media (image or video) is being uploaded and will not have an id allocated yet.
11083   *
11084   * @param {number} id  The id of the media.
11085   * @param {string} url The url of the media.
11086   *
11087   * @return {boolean} Is the URL a Blob URL.
11088   */
11089  
11090  
11091  const isTemporaryMedia = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);
11092  
11093  function CoverPlaceholder(_ref4) {
11094    let {
11095      disableMediaButtons = false,
11096      children,
11097      onSelectMedia,
11098      onError,
11099      style
11100    } = _ref4;
11101    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
11102      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
11103        icon: library_cover
11104      }),
11105      labels: {
11106        title: (0,external_wp_i18n_namespaceObject.__)('Cover'),
11107        instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop onto this block, upload, or select existing media from your library.')
11108      },
11109      onSelect: onSelectMedia,
11110      accept: "image/*,video/*",
11111      allowedTypes: shared_ALLOWED_MEDIA_TYPES,
11112      disableMediaButtons: disableMediaButtons,
11113      onError: onError,
11114      style: style
11115    }, children);
11116  }
11117  
11118  function CoverEdit(_ref5) {
11119    var _useSetting, _styleAttribute$spaci, _styleAttribute$visua;
11120  
11121    let {
11122      attributes,
11123      clientId,
11124      isSelected,
11125      overlayColor,
11126      setAttributes,
11127      setOverlayColor,
11128      toggleSelection,
11129      context: {
11130        postId,
11131        postType
11132      }
11133    } = _ref5;
11134    const {
11135      contentPosition,
11136      id,
11137      useFeaturedImage,
11138      dimRatio,
11139      focalPoint,
11140      hasParallax,
11141      isDark,
11142      isRepeated,
11143      minHeight,
11144      minHeightUnit,
11145      style: styleAttribute,
11146      alt,
11147      allowedBlocks,
11148      templateLock
11149    } = attributes;
11150    const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
11151    const media = (0,external_wp_data_namespaceObject.useSelect)(select => featuredImage && select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
11152      context: 'view'
11153    }), [featuredImage]);
11154    const mediaUrl = media === null || media === void 0 ? void 0 : media.source_url; // instead of destructuring the attributes
11155    // we define the url and background type
11156    // depending on the value of the useFeaturedImage flag
11157    // to preview in edit the dynamic featured image
11158  
11159    const url = useFeaturedImage ? mediaUrl : attributes.url;
11160    const backgroundType = useFeaturedImage ? IMAGE_BACKGROUND_TYPE : attributes.backgroundType;
11161    const {
11162      __unstableMarkNextChangeAsNotPersistent
11163    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
11164    const {
11165      createErrorNotice
11166    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
11167  
11168    const {
11169      gradientClass,
11170      gradientValue,
11171      setGradient
11172    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
11173  
11174    const onSelectMedia = attributesFromMedia(setAttributes, dimRatio);
11175    const isUploadingMedia = isTemporaryMedia(id, url);
11176    const [prevMinHeightValue, setPrevMinHeightValue] = (0,external_wp_element_namespaceObject.useState)(minHeight);
11177    const [prevMinHeightUnit, setPrevMinHeightUnit] = (0,external_wp_element_namespaceObject.useState)(minHeightUnit);
11178    const isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100;
11179  
11180    const toggleMinFullHeight = () => {
11181      if (isMinFullHeight) {
11182        // If there aren't previous values, take the default ones.
11183        if (prevMinHeightUnit === 'vh' && prevMinHeightValue === 100) {
11184          return setAttributes({
11185            minHeight: undefined,
11186            minHeightUnit: undefined
11187          });
11188        } // Set the previous values of height.
11189  
11190  
11191        return setAttributes({
11192          minHeight: prevMinHeightValue,
11193          minHeightUnit: prevMinHeightUnit
11194        });
11195      }
11196  
11197      setPrevMinHeightValue(minHeight);
11198      setPrevMinHeightUnit(minHeightUnit); // Set full height.
11199  
11200      return setAttributes({
11201        minHeight: 100,
11202        minHeightUnit: 'vh'
11203      });
11204    };
11205  
11206    const toggleParallax = () => {
11207      setAttributes({
11208        hasParallax: !hasParallax,
11209        ...(!hasParallax ? {
11210          focalPoint: undefined
11211        } : {})
11212      });
11213    };
11214  
11215    const toggleIsRepeated = () => {
11216      setAttributes({
11217        isRepeated: !isRepeated
11218      });
11219    };
11220  
11221    const toggleUseFeaturedImage = () => {
11222      setAttributes({
11223        useFeaturedImage: !useFeaturedImage,
11224        dimRatio: dimRatio === 100 ? 50 : dimRatio
11225      });
11226    };
11227  
11228    const onUploadError = message => {
11229      createErrorNotice(Array.isArray(message) ? message[2] : message, {
11230        type: 'snackbar'
11231      });
11232    };
11233  
11234    const isDarkElement = (0,external_wp_element_namespaceObject.useRef)();
11235    const isCoverDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement);
11236    (0,external_wp_element_namespaceObject.useEffect)(() => {
11237      // This side-effect should not create an undo level.
11238      __unstableMarkNextChangeAsNotPersistent();
11239  
11240      setAttributes({
11241        isDark: isCoverDark
11242      });
11243    }, [isCoverDark]);
11244    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
11245    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
11246    const minHeightWithUnit = minHeight && minHeightUnit ? `${minHeight}${minHeightUnit}` : minHeight;
11247    const isImgElement = !(hasParallax || isRepeated);
11248    const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : undefined),
11249      minHeight: minHeightWithUnit || undefined
11250    };
11251    const bgStyle = {
11252      backgroundColor: overlayColor.color
11253    };
11254    const mediaStyle = {
11255      objectPosition: focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined
11256    };
11257    const hasBackground = !!(url || overlayColor.color || gradientValue);
11258    const showFocalPointPicker = isVideoBackground || isImageBackground && (!hasParallax || isRepeated);
11259  
11260    const imperativeFocalPointPreview = value => {
11261      const [styleOfRef, property] = isDarkElement.current ? [isDarkElement.current.style, 'objectPosition'] : [ref.current.style, 'backgroundPosition'];
11262      styleOfRef[property] = mediaPosition(value);
11263    };
11264  
11265    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId).innerBlocks.length > 0, [clientId]);
11266    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, {
11267      group: "block"
11268    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockAlignmentMatrixControl, {
11269      label: (0,external_wp_i18n_namespaceObject.__)('Change content position'),
11270      value: contentPosition,
11271      onChange: nextPosition => setAttributes({
11272        contentPosition: nextPosition
11273      }),
11274      isDisabled: !hasInnerBlocks
11275    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockFullHeightAligmentControl, {
11276      isActive: isMinFullHeight,
11277      onToggle: toggleMinFullHeight,
11278      isDisabled: !hasInnerBlocks
11279    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
11280      group: "other"
11281    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
11282      icon: post_featured_image,
11283      label: (0,external_wp_i18n_namespaceObject.__)('Use featured image'),
11284      isPressed: useFeaturedImage,
11285      onClick: toggleUseFeaturedImage
11286    }), !useFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
11287      mediaId: id,
11288      mediaURL: url,
11289      allowedTypes: shared_ALLOWED_MEDIA_TYPES,
11290      accept: "image/*,video/*",
11291      onSelect: onSelectMedia,
11292      name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add Media') : (0,external_wp_i18n_namespaceObject.__)('Replace')
11293    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, !!url && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
11294      title: (0,external_wp_i18n_namespaceObject.__)('Media settings')
11295    }, isImageBackground && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
11296      label: (0,external_wp_i18n_namespaceObject.__)('Fixed background'),
11297      checked: hasParallax,
11298      onChange: toggleParallax
11299    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
11300      label: (0,external_wp_i18n_namespaceObject.__)('Repeated background'),
11301      checked: isRepeated,
11302      onChange: toggleIsRepeated
11303    })), showFocalPointPicker && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FocalPointPicker, {
11304      label: (0,external_wp_i18n_namespaceObject.__)('Focal point picker'),
11305      url: url,
11306      value: focalPoint,
11307      onDragStart: imperativeFocalPointPreview,
11308      onDrag: imperativeFocalPointPreview,
11309      onChange: newFocalPoint => setAttributes({
11310        focalPoint: newFocalPoint
11311      })
11312    }), !useFeaturedImage && url && isImageBackground && isImgElement && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
11313      label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'),
11314      value: alt,
11315      onChange: newAlt => setAttributes({
11316        alt: newAlt
11317      }),
11318      help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
11319        href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
11320      }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.'))
11321    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelRow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
11322      variant: "secondary",
11323      isSmall: true,
11324      className: "block-library-cover__reset-button",
11325      onClick: () => setAttributes({
11326        url: undefined,
11327        id: undefined,
11328        backgroundType: undefined,
11329        focalPoint: undefined,
11330        hasParallax: undefined,
11331        isRepeated: undefined,
11332        useFeaturedImage: false
11333      })
11334    }, (0,external_wp_i18n_namespaceObject.__)('Clear Media')))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalPanelColorGradientSettings, {
11335      __experimentalHasMultipleOrigins: true,
11336      __experimentalIsRenderedInSidebar: true,
11337      title: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
11338      initialOpen: true,
11339      settings: [{
11340        colorValue: overlayColor.color,
11341        gradientValue,
11342        onColorChange: setOverlayColor,
11343        onGradientChange: setGradient,
11344        label: (0,external_wp_i18n_namespaceObject.__)('Color')
11345      }]
11346    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
11347      label: (0,external_wp_i18n_namespaceObject.__)('Opacity'),
11348      value: dimRatio,
11349      onChange: newDimRation => setAttributes({
11350        dimRatio: newDimRation
11351      }),
11352      min: 0,
11353      max: 100,
11354      step: 10,
11355      required: true
11356    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
11357      __experimentalGroup: "dimensions"
11358    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
11359      hasValue: () => !!minHeight,
11360      label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'),
11361      onDeselect: () => setAttributes({
11362        minHeight: undefined,
11363        minHeightUnit: undefined
11364      }),
11365      resetAllFilter: () => ({
11366        minHeight: undefined,
11367        minHeightUnit: undefined
11368      }),
11369      isShownByDefault: true,
11370      panelId: clientId
11371    }, (0,external_wp_element_namespaceObject.createElement)(CoverHeightInput, {
11372      value: minHeight,
11373      unit: minHeightUnit,
11374      onChange: newMinHeight => setAttributes({
11375        minHeight: newMinHeight
11376      }),
11377      onUnitChange: nextUnit => setAttributes({
11378        minHeightUnit: nextUnit
11379      })
11380    }))));
11381    const ref = (0,external_wp_element_namespaceObject.useRef)();
11382    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
11383      ref
11384    }); // Check for fontSize support before we pass a fontSize attribute to the innerBlocks.
11385  
11386    const hasFontSizes = !!((_useSetting = (0,external_wp_blockEditor_namespaceObject.useSetting)('typography.fontSizes')) !== null && _useSetting !== void 0 && _useSetting.length);
11387    const innerBlocksTemplate = getInnerBlocksTemplate({
11388      fontSize: hasFontSizes ? 'large' : undefined
11389    });
11390    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
11391      className: 'wp-block-cover__inner-container'
11392    }, {
11393      template: innerBlocksTemplate,
11394      templateInsertUpdatesSelection: true,
11395      allowedBlocks,
11396      templateLock
11397    });
11398  
11399    if (!hasInnerBlocks && !hasBackground) {
11400      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
11401        className: classnames_default()('is-placeholder', blockProps.className)
11402      }), (0,external_wp_element_namespaceObject.createElement)(CoverPlaceholder, {
11403        onSelectMedia: onSelectMedia,
11404        onError: onUploadError,
11405        style: {
11406          minHeight: minHeightWithUnit || undefined
11407        }
11408      }, (0,external_wp_element_namespaceObject.createElement)("div", {
11409        className: "wp-block-cover__placeholder-background-options"
11410      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ColorPalette, {
11411        disableCustomColors: true,
11412        value: overlayColor.color,
11413        onChange: setOverlayColor,
11414        clearable: false
11415      }))), (0,external_wp_element_namespaceObject.createElement)(ResizableCover, {
11416        className: "block-library-cover__resize-container",
11417        onResizeStart: () => {
11418          setAttributes({
11419            minHeightUnit: 'px'
11420          });
11421          toggleSelection(false);
11422        },
11423        onResize: value => {
11424          setAttributes({
11425            minHeight: value
11426          });
11427        },
11428        onResizeStop: newMinHeight => {
11429          toggleSelection(true);
11430          setAttributes({
11431            minHeight: newMinHeight
11432          });
11433        },
11434        showHandle: isSelected
11435      })));
11436    }
11437  
11438    const classes = classnames_default()({
11439      'is-dark-theme': isDark,
11440      'is-light': !isDark,
11441      'is-transient': isUploadingMedia,
11442      'has-parallax': hasParallax,
11443      'is-repeated': isRepeated,
11444      'has-custom-content-position': !isContentPositionCenter(contentPosition)
11445    }, getPositionClassName(contentPosition));
11446    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, {
11447      className: classnames_default()(classes, blockProps.className),
11448      style: { ...style,
11449        ...blockProps.style
11450      },
11451      "data-url": url
11452    }), (0,external_wp_element_namespaceObject.createElement)(BoxControlVisualizer, {
11453      values: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$spaci = styleAttribute.spacing) === null || _styleAttribute$spaci === void 0 ? void 0 : _styleAttribute$spaci.padding,
11454      showValues: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$visua = styleAttribute.visualizers) === null || _styleAttribute$visua === void 0 ? void 0 : _styleAttribute$visua.padding,
11455      className: "block-library-cover__padding-visualizer"
11456    }), (0,external_wp_element_namespaceObject.createElement)(ResizableCover, {
11457      className: "block-library-cover__resize-container",
11458      onResizeStart: () => {
11459        setAttributes({
11460          minHeightUnit: 'px'
11461        });
11462        toggleSelection(false);
11463      },
11464      onResize: value => {
11465        setAttributes({
11466          minHeight: value
11467        });
11468      },
11469      onResizeStop: newMinHeight => {
11470        toggleSelection(true);
11471        setAttributes({
11472          minHeight: newMinHeight
11473        });
11474      },
11475      showHandle: isSelected
11476    }), (0,external_wp_element_namespaceObject.createElement)("span", {
11477      "aria-hidden": "true",
11478      className: classnames_default()('wp-block-cover__background', dimRatioToClass(dimRatio), {
11479        [overlayColor.class]: overlayColor.class,
11480        'has-background-dim': dimRatio !== undefined,
11481        // For backwards compatibility. Former versions of the Cover Block applied
11482        // `.wp-block-cover__gradient-background` in the presence of
11483        // media, a gradient and a dim.
11484        'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
11485        'has-background-gradient': gradientValue,
11486        [gradientClass]: gradientClass
11487      }),
11488      style: {
11489        backgroundImage: gradientValue,
11490        ...bgStyle
11491      }
11492    }), url && isImageBackground && isImgElement && (0,external_wp_element_namespaceObject.createElement)("img", {
11493      ref: isDarkElement,
11494      className: "wp-block-cover__image-background",
11495      alt: alt,
11496      src: url,
11497      style: mediaStyle
11498    }), url && isVideoBackground && (0,external_wp_element_namespaceObject.createElement)("video", {
11499      ref: isDarkElement,
11500      className: "wp-block-cover__video-background",
11501      autoPlay: true,
11502      muted: true,
11503      loop: true,
11504      src: url,
11505      style: mediaStyle
11506    }), isUploadingMedia && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(CoverPlaceholder, {
11507      disableMediaButtons: true,
11508      onSelectMedia: onSelectMedia,
11509      onError: onUploadError
11510    }), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
11511  }
11512  
11513  /* harmony default export */ var cover_edit = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
11514    overlayColor: 'background-color'
11515  })])(CoverEdit));
11516  
11517  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/save.js
11518  
11519  
11520  /**
11521   * External dependencies
11522   */
11523  
11524  /**
11525   * WordPress dependencies
11526   */
11527  
11528  
11529  /**
11530   * Internal dependencies
11531   */
11532  
11533  
11534  function cover_save_save(_ref) {
11535    let {
11536      attributes
11537    } = _ref;
11538    const {
11539      backgroundType,
11540      gradient,
11541      contentPosition,
11542      customGradient,
11543      customOverlayColor,
11544      dimRatio,
11545      focalPoint,
11546      useFeaturedImage,
11547      hasParallax,
11548      isDark,
11549      isRepeated,
11550      overlayColor,
11551      url,
11552      alt,
11553      id,
11554      minHeight: minHeightProp,
11555      minHeightUnit
11556    } = attributes;
11557    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
11558  
11559    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
11560  
11561    const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
11562    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
11563    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
11564    const isImgElement = !(hasParallax || isRepeated);
11565    const style = { ...(isImageBackground && !isImgElement && !useFeaturedImage ? backgroundImageStyles(url) : {}),
11566      minHeight: minHeight || undefined
11567    };
11568    const bgStyle = {
11569      backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
11570      background: customGradient ? customGradient : undefined
11571    };
11572    const objectPosition = // prettier-ignore
11573    focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
11574    const classes = classnames_default()({
11575      'is-light': !isDark,
11576      'has-parallax': hasParallax,
11577      'is-repeated': isRepeated,
11578      'has-custom-content-position': !isContentPositionCenter(contentPosition)
11579    }, getPositionClassName(contentPosition));
11580    const gradientValue = gradient || customGradient;
11581    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
11582      className: classes,
11583      style
11584    }), (0,external_wp_element_namespaceObject.createElement)("span", {
11585      "aria-hidden": "true",
11586      className: classnames_default()('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
11587        'has-background-dim': dimRatio !== undefined,
11588        // For backwards compatibility. Former versions of the Cover Block applied
11589        // `.wp-block-cover__gradient-background` in the presence of
11590        // media, a gradient and a dim.
11591        'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
11592        'has-background-gradient': gradientValue,
11593        [gradientClass]: gradientClass
11594      }),
11595      style: bgStyle
11596    }), !useFeaturedImage && isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", {
11597      className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
11598      alt: alt,
11599      src: url,
11600      style: {
11601        objectPosition
11602      },
11603      "data-object-fit": "cover",
11604      "data-object-position": objectPosition
11605    }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", {
11606      className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'),
11607      autoPlay: true,
11608      muted: true,
11609      loop: true,
11610      playsInline: true,
11611      src: url,
11612      style: {
11613        objectPosition
11614      },
11615      "data-object-fit": "cover",
11616      "data-object-position": objectPosition
11617    }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
11618      className: 'wp-block-cover__inner-container'
11619    })));
11620  }
11621  
11622  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/transforms.js
11623  /**
11624   * WordPress dependencies
11625   */
11626  
11627  /**
11628   * Internal dependencies
11629   */
11630  
11631  
11632  const cover_transforms_transforms = {
11633    from: [{
11634      type: 'block',
11635      blocks: ['core/image'],
11636      transform: _ref => {
11637        var _style$color;
11638  
11639        let {
11640          caption,
11641          url,
11642          alt,
11643          align,
11644          id,
11645          anchor,
11646          style
11647        } = _ref;
11648        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
11649          dimRatio: 50,
11650          url,
11651          alt,
11652          align,
11653          id,
11654          anchor,
11655          style: {
11656            color: {
11657              duotone: style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.duotone
11658            }
11659          }
11660        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
11661          content: caption,
11662          fontSize: 'large',
11663          align: 'center'
11664        })]);
11665      }
11666    }, {
11667      type: 'block',
11668      blocks: ['core/video'],
11669      transform: _ref2 => {
11670        let {
11671          caption,
11672          src,
11673          align,
11674          id,
11675          anchor
11676        } = _ref2;
11677        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
11678          dimRatio: 50,
11679          url: src,
11680          align,
11681          id,
11682          backgroundType: VIDEO_BACKGROUND_TYPE,
11683          anchor
11684        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
11685          content: caption,
11686          fontSize: 'large',
11687          align: 'center'
11688        })]);
11689      }
11690    }, {
11691      type: 'block',
11692      blocks: ['core/group'],
11693      transform: (attributes, innerBlocks) => {
11694        var _style$color2, _style$color3, _style$color4, _style$color5, _attributes$style;
11695  
11696        const {
11697          align,
11698          anchor,
11699          backgroundColor,
11700          gradient,
11701          style
11702        } = attributes; // If no background or gradient color is provided, default to 50% opacity.
11703        // This matches the styling of a Cover block with a background image,
11704        // in the state where a background image has been removed.
11705  
11706        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.
11707  
11708        const parentAttributes = {
11709          align,
11710          anchor,
11711          dimRatio,
11712          overlayColor: backgroundColor,
11713          customOverlayColor: style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background,
11714          gradient,
11715          customGradient: style === null || style === void 0 ? void 0 : (_style$color5 = style.color) === null || _style$color5 === void 0 ? void 0 : _style$color5.gradient
11716        };
11717        const attributesWithoutBackgroundColors = { ...attributes,
11718          backgroundColor: undefined,
11719          gradient: undefined,
11720          style: { ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
11721            color: { ...(attributes === null || attributes === void 0 ? void 0 : (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : _attributes$style.color),
11722              background: undefined,
11723              gradient: undefined
11724            }
11725          }
11726        }; // Preserve the block by nesting it within the Cover block,
11727        // instead of converting the Group block directly to the Cover block.
11728  
11729        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', parentAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/group', attributesWithoutBackgroundColors, innerBlocks)]);
11730      }
11731    }],
11732    to: [{
11733      type: 'block',
11734      blocks: ['core/image'],
11735      isMatch: _ref3 => {
11736        let {
11737          backgroundType,
11738          url,
11739          overlayColor,
11740          customOverlayColor,
11741          gradient,
11742          customGradient
11743        } = _ref3;
11744  
11745        if (url) {
11746          // If a url exists the transform could happen if that URL represents an image background.
11747          return backgroundType === IMAGE_BACKGROUND_TYPE;
11748        } // If a url is not set the transform could happen if the cover has no background color or gradient;
11749  
11750  
11751        return !overlayColor && !customOverlayColor && !gradient && !customGradient;
11752      },
11753      transform: _ref4 => {
11754        var _style$color6;
11755  
11756        let {
11757          title,
11758          url,
11759          alt,
11760          align,
11761          id,
11762          anchor,
11763          style
11764        } = _ref4;
11765        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
11766          caption: title,
11767          url,
11768          alt,
11769          align,
11770          id,
11771          anchor,
11772          style: {
11773            color: {
11774              duotone: style === null || style === void 0 ? void 0 : (_style$color6 = style.color) === null || _style$color6 === void 0 ? void 0 : _style$color6.duotone
11775            }
11776          }
11777        });
11778      }
11779    }, {
11780      type: 'block',
11781      blocks: ['core/video'],
11782      isMatch: _ref5 => {
11783        let {
11784          backgroundType,
11785          url,
11786          overlayColor,
11787          customOverlayColor,
11788          gradient,
11789          customGradient
11790        } = _ref5;
11791  
11792        if (url) {
11793          // If a url exists the transform could happen if that URL represents a video background.
11794          return backgroundType === VIDEO_BACKGROUND_TYPE;
11795        } // If a url is not set the transform could happen if the cover has no background color or gradient;
11796  
11797  
11798        return !overlayColor && !customOverlayColor && !gradient && !customGradient;
11799      },
11800      transform: _ref6 => {
11801        let {
11802          title,
11803          url,
11804          align,
11805          id,
11806          anchor
11807        } = _ref6;
11808        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
11809          caption: title,
11810          src: url,
11811          id,
11812          align,
11813          anchor
11814        });
11815      }
11816    }]
11817  };
11818  /* harmony default export */ var cover_transforms = (cover_transforms_transforms);
11819  
11820  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/index.js
11821  /**
11822   * WordPress dependencies
11823   */
11824  
11825  
11826  /**
11827   * Internal dependencies
11828   */
11829  
11830  
11831  
11832  const cover_metadata = {
11833    $schema: "https://schemas.wp.org/trunk/block.json",
11834    apiVersion: 2,
11835    name: "core/cover",
11836    title: "Cover",
11837    category: "media",
11838    description: "Add an image or video with a text overlay \u2014 great for headers.",
11839    textdomain: "default",
11840    attributes: {
11841      url: {
11842        type: "string"
11843      },
11844      useFeaturedImage: {
11845        type: "boolean",
11846        "default": false
11847      },
11848      id: {
11849        type: "number"
11850      },
11851      alt: {
11852        type: "string",
11853        source: "attribute",
11854        selector: "img",
11855        attribute: "alt",
11856        "default": ""
11857      },
11858      hasParallax: {
11859        type: "boolean",
11860        "default": false
11861      },
11862      isRepeated: {
11863        type: "boolean",
11864        "default": false
11865      },
11866      dimRatio: {
11867        type: "number",
11868        "default": 100
11869      },
11870      overlayColor: {
11871        type: "string"
11872      },
11873      customOverlayColor: {
11874        type: "string"
11875      },
11876      backgroundType: {
11877        type: "string",
11878        "default": "image"
11879      },
11880      focalPoint: {
11881        type: "object"
11882      },
11883      minHeight: {
11884        type: "number"
11885      },
11886      minHeightUnit: {
11887        type: "string"
11888      },
11889      gradient: {
11890        type: "string"
11891      },
11892      customGradient: {
11893        type: "string"
11894      },
11895      contentPosition: {
11896        type: "string"
11897      },
11898      isDark: {
11899        type: "boolean",
11900        "default": true
11901      },
11902      allowedBlocks: {
11903        type: "array"
11904      },
11905      templateLock: {
11906        type: ["string", "boolean"],
11907        "enum": ["all", "insert", false]
11908      }
11909    },
11910    usesContext: ["postId", "postType"],
11911    supports: {
11912      anchor: true,
11913      align: true,
11914      html: false,
11915      spacing: {
11916        padding: true,
11917        __experimentalDefaultControls: {
11918          padding: true
11919        }
11920      },
11921      color: {
11922        __experimentalDuotone: "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
11923        text: false,
11924        background: false
11925      }
11926    },
11927    editorStyle: "wp-block-cover-editor",
11928    style: "wp-block-cover"
11929  };
11930  
11931  
11932  const {
11933    name: cover_name
11934  } = cover_metadata;
11935  
11936  const cover_settings = {
11937    icon: library_cover,
11938    example: {
11939      attributes: {
11940        customOverlayColor: '#065174',
11941        dimRatio: 40,
11942        url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
11943      },
11944      innerBlocks: [{
11945        name: 'core/paragraph',
11946        attributes: {
11947          customFontSize: 48,
11948          content: (0,external_wp_i18n_namespaceObject.__)('<strong>Snow Patrol</strong>'),
11949          align: 'center'
11950        }
11951      }]
11952    },
11953    transforms: cover_transforms,
11954    save: cover_save_save,
11955    edit: cover_edit,
11956    deprecated: cover_deprecated
11957  };
11958  
11959  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js
11960  
11961  
11962  /**
11963   * WordPress dependencies
11964   */
11965  
11966  const pencil = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
11967    xmlns: "http://www.w3.org/2000/svg",
11968    viewBox: "0 0 24 24"
11969  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
11970    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"
11971  }));
11972  /* harmony default export */ var library_pencil = (pencil);
11973  
11974  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js
11975  /**
11976   * Internal dependencies
11977   */
11978  
11979  /* harmony default export */ var library_edit = (library_pencil);
11980  
11981  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js
11982  
11983  
11984  /**
11985   * WordPress dependencies
11986   */
11987  
11988  
11989  
11990  
11991  
11992  function getResponsiveHelp(checked) {
11993    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.');
11994  }
11995  
11996  const EmbedControls = _ref => {
11997    let {
11998      blockSupportsResponsive,
11999      showEditButton,
12000      themeSupportsResponsive,
12001      allowResponsive,
12002      toggleResponsive,
12003      switchBackToURLInput
12004    } = _ref;
12005    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, {
12006      className: "components-toolbar__control",
12007      label: (0,external_wp_i18n_namespaceObject.__)('Edit URL'),
12008      icon: library_edit,
12009      onClick: switchBackToURLInput
12010    }))), 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, {
12011      title: (0,external_wp_i18n_namespaceObject.__)('Media settings'),
12012      className: "blocks-responsive"
12013    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
12014      label: (0,external_wp_i18n_namespaceObject.__)('Resize for smaller devices'),
12015      checked: allowResponsive,
12016      help: getResponsiveHelp,
12017      onChange: toggleResponsive
12018    }))));
12019  };
12020  
12021  /* harmony default export */ var embed_controls = (EmbedControls);
12022  
12023  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/icons.js
12024  
12025  
12026  /**
12027   * WordPress dependencies
12028   */
12029  
12030  const embedContentIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12031    viewBox: "0 0 24 24",
12032    xmlns: "http://www.w3.org/2000/svg"
12033  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12034    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"
12035  }));
12036  const embedAudioIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12037    viewBox: "0 0 24 24",
12038    xmlns: "http://www.w3.org/2000/svg"
12039  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12040    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"
12041  }));
12042  const embedPhotoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12043    viewBox: "0 0 24 24",
12044    xmlns: "http://www.w3.org/2000/svg"
12045  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12046    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"
12047  }));
12048  const embedVideoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12049    viewBox: "0 0 24 24",
12050    xmlns: "http://www.w3.org/2000/svg"
12051  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12052    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"
12053  }));
12054  const embedTwitterIcon = {
12055    foreground: '#1da1f2',
12056    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12057      xmlns: "http://www.w3.org/2000/svg",
12058      viewBox: "0 0 24 24"
12059    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12060      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"
12061    })))
12062  };
12063  const embedYouTubeIcon = {
12064    foreground: '#ff0000',
12065    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12066      viewBox: "0 0 24 24"
12067    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12068      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"
12069    }))
12070  };
12071  const embedFacebookIcon = {
12072    foreground: '#3b5998',
12073    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12074      viewBox: "0 0 24 24"
12075    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12076      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"
12077    }))
12078  };
12079  const embedInstagramIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12080    viewBox: "0 0 24 24"
12081  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12082    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"
12083  })));
12084  const embedWordPressIcon = {
12085    foreground: '#0073AA',
12086    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12087      viewBox: "0 0 24 24"
12088    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12089      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"
12090    })))
12091  };
12092  const embedSpotifyIcon = {
12093    foreground: '#1db954',
12094    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12095      viewBox: "0 0 24 24"
12096    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12097      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"
12098    }))
12099  };
12100  const embedFlickrIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12101    viewBox: "0 0 24 24"
12102  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12103    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"
12104  }));
12105  const embedVimeoIcon = {
12106    foreground: '#1ab7ea',
12107    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12108      xmlns: "http://www.w3.org/2000/svg",
12109      viewBox: "0 0 24 24"
12110    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12111      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"
12112    })))
12113  };
12114  const embedRedditIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12115    viewBox: "0 0 24 24"
12116  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12117    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"
12118  }));
12119  const embedTumblrIcon = {
12120    foreground: '#35465c',
12121    src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12122      viewBox: "0 0 24 24"
12123    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12124      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"
12125    }))
12126  };
12127  const embedAmazonIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12128    viewBox: "0 0 24 24"
12129  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12130    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"
12131  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12132    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"
12133  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12134    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"
12135  }));
12136  const embedAnimotoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12137    viewBox: "0 0 24 24"
12138  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12139    d: "m.0206909 21 19.8160091-13.07806 3.5831 6.20826z",
12140    fill: "#4bc7ee"
12141  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12142    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",
12143    fill: "#d4cdcb"
12144  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12145    d: "m.0206909 21 15.2439091-16.38571 4.3029 7.32271z",
12146    fill: "#c3d82e"
12147  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12148    d: "m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z",
12149    fill: "#e4ecb0"
12150  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12151    d: "m.0206909 21 19.5468091-9.063 1.6621 2.8344z",
12152    fill: "#209dbd"
12153  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12154    d: "m.0206909 21 17.9209091-11.82623 1.6259 2.76323z",
12155    fill: "#7cb3c9"
12156  }));
12157  const embedDailymotionIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12158    viewBox: "0 0 24 24"
12159  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12160    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",
12161    fill: "#333436"
12162  }));
12163  const embedPinterestIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12164    width: "24",
12165    height: "24",
12166    viewBox: "0 0 24 24",
12167    version: "1.1"
12168  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12169    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"
12170  }));
12171  const embedWolframIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
12172    viewBox: "0 0 44 44"
12173  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
12174    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"
12175  }));
12176  
12177  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js
12178  
12179  
12180  /**
12181   * WordPress dependencies
12182   */
12183  
12184  
12185  const EmbedLoading = () => (0,external_wp_element_namespaceObject.createElement)("div", {
12186    className: "wp-block-embed is-loading"
12187  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
12188  
12189  /* harmony default export */ var embed_loading = (EmbedLoading);
12190  
12191  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js
12192  
12193  
12194  /**
12195   * WordPress dependencies
12196   */
12197  
12198  
12199  
12200  
12201  const EmbedPlaceholder = _ref => {
12202    let {
12203      icon,
12204      label,
12205      value,
12206      onSubmit,
12207      onChange,
12208      cannotEmbed,
12209      fallback,
12210      tryAgain
12211    } = _ref;
12212    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
12213      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
12214        icon: icon,
12215        showColors: true
12216      }),
12217      label: label,
12218      className: "wp-block-embed",
12219      instructions: (0,external_wp_i18n_namespaceObject.__)('Paste a link to the content you want to display on your site.')
12220    }, (0,external_wp_element_namespaceObject.createElement)("form", {
12221      onSubmit: onSubmit
12222    }, (0,external_wp_element_namespaceObject.createElement)("input", {
12223      type: "url",
12224      value: value || '',
12225      className: "components-placeholder__input",
12226      "aria-label": label,
12227      placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL to embed here…'),
12228      onChange: onChange
12229    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
12230      variant: "primary",
12231      type: "submit"
12232    }, (0,external_wp_i18n_namespaceObject._x)('Embed', 'button label'))), (0,external_wp_element_namespaceObject.createElement)("div", {
12233      className: "components-placeholder__learn-more"
12234    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
12235      href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/embeds/')
12236    }, (0,external_wp_i18n_namespaceObject.__)('Learn more about embeds'))), cannotEmbed && (0,external_wp_element_namespaceObject.createElement)("div", {
12237      className: "components-placeholder__error"
12238    }, (0,external_wp_element_namespaceObject.createElement)("div", {
12239      className: "components-placeholder__instructions"
12240    }, (0,external_wp_i18n_namespaceObject.__)('Sorry, this content could not be embedded.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
12241      variant: "secondary",
12242      onClick: tryAgain
12243    }, (0,external_wp_i18n_namespaceObject._x)('Try again', 'button label')), ' ', (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
12244      variant: "secondary",
12245      onClick: fallback
12246    }, (0,external_wp_i18n_namespaceObject._x)('Convert to link', 'button label'))));
12247  };
12248  
12249  /* harmony default export */ var embed_placeholder = (EmbedPlaceholder);
12250  
12251  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js
12252  
12253  
12254  
12255  /**
12256   * WordPress dependencies
12257   */
12258  
12259  
12260  /** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */
12261  
12262  const attributeMap = {
12263    class: 'className',
12264    frameborder: 'frameBorder',
12265    marginheight: 'marginHeight',
12266    marginwidth: 'marginWidth'
12267  };
12268  function WpEmbedPreview(_ref) {
12269    let {
12270      html
12271    } = _ref;
12272    const ref = (0,external_wp_element_namespaceObject.useRef)();
12273    const props = (0,external_wp_element_namespaceObject.useMemo)(() => {
12274      const doc = new window.DOMParser().parseFromString(html, 'text/html');
12275      const iframe = doc.querySelector('iframe');
12276      const iframeProps = {};
12277      if (!iframe) return iframeProps;
12278      Array.from(iframe.attributes).forEach(_ref2 => {
12279        let {
12280          name,
12281          value
12282        } = _ref2;
12283        if (name === 'style') return;
12284        iframeProps[attributeMap[name] || name] = value;
12285      });
12286      return iframeProps;
12287    }, [html]);
12288    (0,external_wp_element_namespaceObject.useEffect)(() => {
12289      const {
12290        ownerDocument
12291      } = ref.current;
12292      const {
12293        defaultView
12294      } = ownerDocument;
12295      /**
12296       * Checks for WordPress embed events signaling the height change when
12297       * iframe content loads or iframe's window is resized.  The event is
12298       * sent from WordPress core via the window.postMessage API.
12299       *
12300       * References:
12301       * window.postMessage:
12302       * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
12303       * WordPress core embed-template on load:
12304       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143
12305       * WordPress core embed-template on resize:
12306       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187
12307       *
12308       * @param {MessageEvent} event Message event.
12309       */
12310  
12311      function resizeWPembeds(_ref3) {
12312        let {
12313          data: {
12314            secret,
12315            message,
12316            value
12317          } = {}
12318        } = _ref3;
12319  
12320        if (message !== 'height' || secret !== props['data-secret']) {
12321          return;
12322        }
12323  
12324        ref.current.height = value;
12325      }
12326  
12327      defaultView.addEventListener('message', resizeWPembeds);
12328      return () => {
12329        defaultView.removeEventListener('message', resizeWPembeds);
12330      };
12331    }, []);
12332    return (0,external_wp_element_namespaceObject.createElement)("div", {
12333      className: "wp-block-embed__wrapper"
12334    }, (0,external_wp_element_namespaceObject.createElement)("iframe", _extends({
12335      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]),
12336      title: props.title
12337    }, props)));
12338  }
12339  
12340  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js
12341  
12342  
12343  /**
12344   * Internal dependencies
12345   */
12346  
12347  /**
12348   * External dependencies
12349   */
12350  
12351  
12352  /**
12353   * WordPress dependencies
12354   */
12355  
12356  
12357  
12358  
12359  
12360  
12361  /**
12362   * Internal dependencies
12363   */
12364  
12365  
12366  
12367  class EmbedPreview extends external_wp_element_namespaceObject.Component {
12368    constructor() {
12369      super(...arguments);
12370      this.hideOverlay = this.hideOverlay.bind(this);
12371      this.state = {
12372        interactive: false
12373      };
12374    }
12375  
12376    static getDerivedStateFromProps(nextProps, state) {
12377      if (!nextProps.isSelected && state.interactive) {
12378        // We only want to change this when the block is not selected, because changing it when
12379        // the block becomes selected makes the overlap disappear too early. Hiding the overlay
12380        // happens on mouseup when the overlay is clicked.
12381        return {
12382          interactive: false
12383        };
12384      }
12385  
12386      return null;
12387    }
12388  
12389    hideOverlay() {
12390      // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop
12391      // changing, because that happens on mouse down, and the overlay immediately disappears,
12392      // and the mouse event can end up in the preview content. We can't use onClick on
12393      // the overlay to hide it either, because then the editor misses the mouseup event, and
12394      // thinks we're multi-selecting blocks.
12395      this.setState({
12396        interactive: true
12397      });
12398    }
12399  
12400    render() {
12401      const {
12402        preview,
12403        previewable,
12404        url,
12405        type,
12406        caption,
12407        onCaptionChange,
12408        isSelected,
12409        className,
12410        icon,
12411        label,
12412        insertBlocksAfter
12413      } = this.props;
12414      const {
12415        scripts
12416      } = preview;
12417      const {
12418        interactive
12419      } = this.state;
12420      const html = 'photo' === type ? getPhotoHtml(preview) : preview.html;
12421      const parsedHost = new URL(url).host.split('.');
12422      const parsedHostBaseUrl = parsedHost.splice(parsedHost.length - 2, parsedHost.length - 1).join('.');
12423      const iframeTitle = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: host providing embed content e.g: www.youtube.com
12424      (0,external_wp_i18n_namespaceObject.__)('Embedded content from %s'), parsedHostBaseUrl);
12425      const sandboxClassnames = dedupe_default()(type, className, 'wp-block-embed__wrapper'); // Disabled because the overlay div doesn't actually have a role or functionality
12426      // as far as the user is concerned. We're just catching the first click so that
12427      // the block can be selected without interacting with the embed preview that the overlay covers.
12428  
12429      /* eslint-disable jsx-a11y/no-static-element-interactions */
12430  
12431      const embedWrapper = 'wp-embed' === type ? (0,external_wp_element_namespaceObject.createElement)(WpEmbedPreview, {
12432        html: html
12433      }) : (0,external_wp_element_namespaceObject.createElement)("div", {
12434        className: "wp-block-embed__wrapper"
12435      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SandBox, {
12436        html: html,
12437        scripts: scripts,
12438        title: iframeTitle,
12439        type: sandboxClassnames,
12440        onFocus: this.hideOverlay
12441      }), !interactive && (0,external_wp_element_namespaceObject.createElement)("div", {
12442        className: "block-library-embed__interactive-overlay",
12443        onMouseUp: this.hideOverlay
12444      }));
12445      /* eslint-enable jsx-a11y/no-static-element-interactions */
12446  
12447      return (0,external_wp_element_namespaceObject.createElement)("figure", {
12448        className: dedupe_default()(className, 'wp-block-embed', {
12449          'is-type-video': 'video' === type
12450        })
12451      }, previewable ? embedWrapper : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
12452        icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
12453          icon: icon,
12454          showColors: true
12455        }),
12456        label: label
12457      }, (0,external_wp_element_namespaceObject.createElement)("p", {
12458        className: "components-placeholder__error"
12459      }, (0,external_wp_element_namespaceObject.createElement)("a", {
12460        href: url
12461      }, url)), (0,external_wp_element_namespaceObject.createElement)("p", {
12462        className: "components-placeholder__error"
12463      }, (0,external_wp_i18n_namespaceObject.sprintf)(
12464      /* translators: %s: host providing embed content e.g: www.youtube.com */
12465      (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, {
12466        tagName: "figcaption",
12467        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
12468        value: caption,
12469        onChange: onCaptionChange,
12470        inlineToolbar: true,
12471        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
12472      }));
12473    }
12474  
12475  }
12476  
12477  /* harmony default export */ var embed_preview = (EmbedPreview);
12478  
12479  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/edit.js
12480  
12481  
12482  /**
12483   * Internal dependencies
12484   */
12485  
12486  
12487  
12488  
12489  
12490  
12491  /**
12492   * External dependencies
12493   */
12494  
12495  
12496  /**
12497   * WordPress dependencies
12498   */
12499  
12500  
12501  
12502  
12503  
12504  
12505  
12506  
12507  const EmbedEdit = props => {
12508    const {
12509      attributes: {
12510        providerNameSlug,
12511        previewable,
12512        responsive,
12513        url: attributesUrl
12514      },
12515      attributes,
12516      isSelected,
12517      onReplace,
12518      setAttributes,
12519      insertBlocksAfter,
12520      onFocus
12521    } = props;
12522    const defaultEmbedInfo = {
12523      title: (0,external_wp_i18n_namespaceObject._x)('Embed', 'block title'),
12524      icon: embedContentIcon
12525    };
12526    const {
12527      icon,
12528      title
12529    } = getEmbedInfoByProvider(providerNameSlug) || defaultEmbedInfo;
12530    const [url, setURL] = (0,external_wp_element_namespaceObject.useState)(attributesUrl);
12531    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
12532    const {
12533      invalidateResolution
12534    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
12535    const {
12536      preview,
12537      fetching,
12538      themeSupportsResponsive,
12539      cannotEmbed
12540    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
12541      var _embedPreview$data;
12542  
12543      const {
12544        getEmbedPreview,
12545        isPreviewEmbedFallback,
12546        isRequestingEmbedPreview,
12547        getThemeSupports
12548      } = select(external_wp_coreData_namespaceObject.store);
12549  
12550      if (!attributesUrl) {
12551        return {
12552          fetching: false,
12553          cannotEmbed: false
12554        };
12555      }
12556  
12557      const embedPreview = getEmbedPreview(attributesUrl);
12558      const previewIsFallback = isPreviewEmbedFallback(attributesUrl); // The external oEmbed provider does not exist. We got no type info and no html.
12559  
12560      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
12561      // a valid JSON response with no HTML and `data.status` set to 404, rather
12562      // than generating a fallback response as other embeds do.
12563  
12564      const wordpressCantEmbed = (embedPreview === null || embedPreview === void 0 ? void 0 : (_embedPreview$data = embedPreview.data) === null || _embedPreview$data === void 0 ? void 0 : _embedPreview$data.status) === 404;
12565      const validPreview = !!embedPreview && !badEmbedProvider && !wordpressCantEmbed;
12566      return {
12567        preview: validPreview ? embedPreview : undefined,
12568        fetching: isRequestingEmbedPreview(attributesUrl),
12569        themeSupportsResponsive: getThemeSupports()['responsive-embeds'],
12570        cannotEmbed: !validPreview || previewIsFallback
12571      };
12572    }, [attributesUrl]);
12573    /**
12574     * @return {Object} Attributes derived from the preview, merged with the current attributes.
12575     */
12576  
12577    const getMergedAttributes = () => {
12578      const {
12579        allowResponsive,
12580        className
12581      } = attributes;
12582      return { ...attributes,
12583        ...getAttributesFromPreview(preview, title, className, responsive, allowResponsive)
12584      };
12585    };
12586  
12587    const toggleResponsive = () => {
12588      const {
12589        allowResponsive,
12590        className
12591      } = attributes;
12592      const {
12593        html
12594      } = preview;
12595      const newAllowResponsive = !allowResponsive;
12596      setAttributes({
12597        allowResponsive: newAllowResponsive,
12598        className: getClassNames(html, className, responsive && newAllowResponsive)
12599      });
12600    };
12601  
12602    (0,external_wp_element_namespaceObject.useEffect)(() => {
12603      if (!(preview !== null && preview !== void 0 && preview.html) || !cannotEmbed || fetching) {
12604        return;
12605      } // At this stage, we're not fetching the preview and know it can't be embedded,
12606      // so try removing any trailing slash, and resubmit.
12607  
12608  
12609      const newURL = attributesUrl.replace(/\/$/, '');
12610      setURL(newURL);
12611      setIsEditingURL(false);
12612      setAttributes({
12613        url: newURL
12614      });
12615    }, [preview === null || preview === void 0 ? void 0 : preview.html, attributesUrl]); // Handle incoming preview.
12616  
12617    (0,external_wp_element_namespaceObject.useEffect)(() => {
12618      if (preview && !isEditingURL) {
12619        // Even though we set attributes that get derived from the preview,
12620        // we don't access them directly because for the initial render,
12621        // the `setAttributes` call will not have taken effect. If we're
12622        // rendering responsive content, setting the responsive classes
12623        // after the preview has been rendered can result in unwanted
12624        // clipping or scrollbars. The `getAttributesFromPreview` function
12625        // that `getMergedAttributes` uses is memoized so that we're not
12626        // calculating them on every render.
12627        setAttributes(getMergedAttributes());
12628  
12629        if (onReplace) {
12630          const upgradedBlock = createUpgradedEmbedBlock(props, getMergedAttributes());
12631  
12632          if (upgradedBlock) {
12633            onReplace(upgradedBlock);
12634          }
12635        }
12636      }
12637    }, [preview, isEditingURL]);
12638    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
12639  
12640    if (fetching) {
12641      return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_loading, null));
12642    } // translators: %s: type of embed e.g: "YouTube", "Twitter", etc. "Embed" is used when no specific type exists
12643  
12644  
12645    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.
12646  
12647    const showEmbedPlaceholder = !preview || cannotEmbed || isEditingURL;
12648  
12649    if (showEmbedPlaceholder) {
12650      return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_placeholder, {
12651        icon: icon,
12652        label: label,
12653        onFocus: onFocus,
12654        onSubmit: event => {
12655          if (event) {
12656            event.preventDefault();
12657          }
12658  
12659          setIsEditingURL(false);
12660          setAttributes({
12661            url
12662          });
12663        },
12664        value: url,
12665        cannotEmbed: cannotEmbed,
12666        onChange: event => setURL(event.target.value),
12667        fallback: () => fallback(url, onReplace),
12668        tryAgain: () => {
12669          invalidateResolution('getEmbedPreview', [url]);
12670        }
12671      }));
12672    } // Even though we set attributes that get derived from the preview,
12673    // we don't access them directly because for the initial render,
12674    // the `setAttributes` call will not have taken effect. If we're
12675    // rendering responsive content, setting the responsive classes
12676    // after the preview has been rendered can result in unwanted
12677    // clipping or scrollbars. The `getAttributesFromPreview` function
12678    // that `getMergedAttributes` uses is memoized so that we're not
12679    // calculating them on every render.
12680  
12681  
12682    const {
12683      caption,
12684      type,
12685      allowResponsive,
12686      className: classFromPreview
12687    } = getMergedAttributes();
12688    const className = classnames_default()(classFromPreview, props.className);
12689    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(embed_controls, {
12690      showEditButton: preview && !cannotEmbed,
12691      themeSupportsResponsive: themeSupportsResponsive,
12692      blockSupportsResponsive: responsive,
12693      allowResponsive: allowResponsive,
12694      toggleResponsive: toggleResponsive,
12695      switchBackToURLInput: () => setIsEditingURL(true)
12696    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_preview, {
12697      preview: preview,
12698      previewable: previewable,
12699      className: className,
12700      url: url,
12701      type: type,
12702      caption: caption,
12703      onCaptionChange: value => setAttributes({
12704        caption: value
12705      }),
12706      isSelected: isSelected,
12707      icon: icon,
12708      label: label,
12709      insertBlocksAfter: insertBlocksAfter
12710    })));
12711  };
12712  
12713  /* harmony default export */ var embed_edit = (EmbedEdit);
12714  
12715  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/save.js
12716  
12717  
12718  /**
12719   * External dependencies
12720   */
12721  
12722  /**
12723   * WordPress dependencies
12724   */
12725  
12726  
12727  function embed_save_save(_ref) {
12728    let {
12729      attributes
12730    } = _ref;
12731    const {
12732      url,
12733      caption,
12734      type,
12735      providerNameSlug
12736    } = attributes;
12737  
12738    if (!url) {
12739      return null;
12740    }
12741  
12742    const className = dedupe_default()('wp-block-embed', {
12743      [`is-type-$type}`]: type,
12744      [`is-provider-$providerNameSlug}`]: providerNameSlug,
12745      [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
12746    });
12747    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
12748      className
12749    }), (0,external_wp_element_namespaceObject.createElement)("div", {
12750      className: "wp-block-embed__wrapper"
12751    }, `\n$url}\n`
12752    /* URL needs to be on its own line. */
12753    ), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
12754      tagName: "figcaption",
12755      value: caption
12756    }));
12757  }
12758  
12759  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/transforms.js
12760  /**
12761   * WordPress dependencies
12762   */
12763  
12764  /**
12765   * Internal dependencies
12766   */
12767  
12768  const transforms_metadata = {
12769    $schema: "https://schemas.wp.org/trunk/block.json",
12770    apiVersion: 2,
12771    name: "core/embed",
12772    title: "Embed",
12773    category: "embed",
12774    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
12775    textdomain: "default",
12776    attributes: {
12777      url: {
12778        type: "string"
12779      },
12780      caption: {
12781        type: "string",
12782        source: "html",
12783        selector: "figcaption"
12784      },
12785      type: {
12786        type: "string"
12787      },
12788      providerNameSlug: {
12789        type: "string"
12790      },
12791      allowResponsive: {
12792        type: "boolean",
12793        "default": true
12794      },
12795      responsive: {
12796        type: "boolean",
12797        "default": false
12798      },
12799      previewable: {
12800        type: "boolean",
12801        "default": true
12802      }
12803    },
12804    supports: {
12805      align: true
12806    },
12807    editorStyle: "wp-block-embed-editor",
12808    style: "wp-block-embed"
12809  };
12810  const {
12811    name: EMBED_BLOCK
12812  } = transforms_metadata;
12813  /**
12814   * Default transforms for generic embeds.
12815   */
12816  
12817  const embed_transforms_transforms = {
12818    from: [{
12819      type: 'raw',
12820      isMatch: node => {
12821        var _node$textContent, _node$textContent$mat;
12822  
12823        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;
12824      },
12825      transform: node => {
12826        return (0,external_wp_blocks_namespaceObject.createBlock)(EMBED_BLOCK, {
12827          url: node.textContent.trim()
12828        });
12829      }
12830    }],
12831    to: [{
12832      type: 'block',
12833      blocks: ['core/paragraph'],
12834      isMatch: _ref => {
12835        let {
12836          url
12837        } = _ref;
12838        return !!url;
12839      },
12840      transform: _ref2 => {
12841        let {
12842          url,
12843          caption
12844        } = _ref2;
12845        let value = `<a href="$url}">$url}</a>`;
12846  
12847        if (caption !== null && caption !== void 0 && caption.trim()) {
12848          value += `<br />$caption}`;
12849        }
12850  
12851        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
12852          content: value
12853        });
12854      }
12855    }]
12856  };
12857  /* harmony default export */ var embed_transforms = (embed_transforms_transforms);
12858  
12859  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/variations.js
12860  /**
12861   * WordPress dependencies
12862   */
12863  
12864  /**
12865   * Internal dependencies
12866   */
12867  
12868  
12869  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
12870  
12871  /**
12872   * Template option choices for predefined columns layouts.
12873   *
12874   * @type {WPBlockVariation[]}
12875   */
12876  
12877  const variations_variations = [{
12878    name: 'twitter',
12879    title: 'Twitter',
12880    icon: embedTwitterIcon,
12881    keywords: ['tweet', (0,external_wp_i18n_namespaceObject.__)('social')],
12882    description: (0,external_wp_i18n_namespaceObject.__)('Embed a tweet.'),
12883    patterns: [/^https?:\/\/(www\.)?twitter\.com\/.+/i],
12884    attributes: {
12885      providerNameSlug: 'twitter',
12886      responsive: true
12887    }
12888  }, {
12889    name: 'youtube',
12890    title: 'YouTube',
12891    icon: embedYouTubeIcon,
12892    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('video')],
12893    description: (0,external_wp_i18n_namespaceObject.__)('Embed a YouTube video.'),
12894    patterns: [/^https?:\/\/((m|www)\.)?youtube\.com\/.+/i, /^https?:\/\/youtu\.be\/.+/i],
12895    attributes: {
12896      providerNameSlug: 'youtube',
12897      responsive: true
12898    }
12899  }, {
12900    // Deprecate Facebook Embed per FB policy
12901    // See: https://developers.facebook.com/docs/plugins/oembed-legacy
12902    name: 'facebook',
12903    title: 'Facebook',
12904    icon: embedFacebookIcon,
12905    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
12906    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Facebook post.'),
12907    scope: ['block'],
12908    patterns: [],
12909    attributes: {
12910      providerNameSlug: 'facebook',
12911      previewable: false,
12912      responsive: true
12913    }
12914  }, {
12915    // Deprecate Instagram per FB policy
12916    // See: https://developers.facebook.com/docs/instagram/oembed-legacy
12917    name: 'instagram',
12918    title: 'Instagram',
12919    icon: embedInstagramIcon,
12920    keywords: [(0,external_wp_i18n_namespaceObject.__)('image'), (0,external_wp_i18n_namespaceObject.__)('social')],
12921    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Instagram post.'),
12922    scope: ['block'],
12923    patterns: [],
12924    attributes: {
12925      providerNameSlug: 'instagram',
12926      responsive: true
12927    }
12928  }, {
12929    name: 'wordpress',
12930    title: 'WordPress',
12931    icon: embedWordPressIcon,
12932    keywords: [(0,external_wp_i18n_namespaceObject.__)('post'), (0,external_wp_i18n_namespaceObject.__)('blog')],
12933    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress post.'),
12934    attributes: {
12935      providerNameSlug: 'wordpress'
12936    }
12937  }, {
12938    name: 'soundcloud',
12939    title: 'SoundCloud',
12940    icon: embedAudioIcon,
12941    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
12942    description: (0,external_wp_i18n_namespaceObject.__)('Embed SoundCloud content.'),
12943    patterns: [/^https?:\/\/(www\.)?soundcloud\.com\/.+/i],
12944    attributes: {
12945      providerNameSlug: 'soundcloud',
12946      responsive: true
12947    }
12948  }, {
12949    name: 'spotify',
12950    title: 'Spotify',
12951    icon: embedSpotifyIcon,
12952    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
12953    description: (0,external_wp_i18n_namespaceObject.__)('Embed Spotify content.'),
12954    patterns: [/^https?:\/\/(open|play)\.spotify\.com\/.+/i],
12955    attributes: {
12956      providerNameSlug: 'spotify',
12957      responsive: true
12958    }
12959  }, {
12960    name: 'flickr',
12961    title: 'Flickr',
12962    icon: embedFlickrIcon,
12963    keywords: [(0,external_wp_i18n_namespaceObject.__)('image')],
12964    description: (0,external_wp_i18n_namespaceObject.__)('Embed Flickr content.'),
12965    patterns: [/^https?:\/\/(www\.)?flickr\.com\/.+/i, /^https?:\/\/flic\.kr\/.+/i],
12966    attributes: {
12967      providerNameSlug: 'flickr',
12968      responsive: true
12969    }
12970  }, {
12971    name: 'vimeo',
12972    title: 'Vimeo',
12973    icon: embedVimeoIcon,
12974    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
12975    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Vimeo video.'),
12976    patterns: [/^https?:\/\/(www\.)?vimeo\.com\/.+/i],
12977    attributes: {
12978      providerNameSlug: 'vimeo',
12979      responsive: true
12980    }
12981  }, {
12982    name: 'animoto',
12983    title: 'Animoto',
12984    icon: embedAnimotoIcon,
12985    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Animoto video.'),
12986    patterns: [/^https?:\/\/(www\.)?(animoto|video214)\.com\/.+/i],
12987    attributes: {
12988      providerNameSlug: 'animoto',
12989      responsive: true
12990    }
12991  }, {
12992    name: 'cloudup',
12993    title: 'Cloudup',
12994    icon: embedContentIcon,
12995    description: (0,external_wp_i18n_namespaceObject.__)('Embed Cloudup content.'),
12996    patterns: [/^https?:\/\/cloudup\.com\/.+/i],
12997    attributes: {
12998      providerNameSlug: 'cloudup',
12999      responsive: true
13000    }
13001  }, {
13002    // Deprecated since CollegeHumor content is now powered by YouTube.
13003    name: 'collegehumor',
13004    title: 'CollegeHumor',
13005    icon: embedVideoIcon,
13006    description: (0,external_wp_i18n_namespaceObject.__)('Embed CollegeHumor content.'),
13007    scope: ['block'],
13008    patterns: [],
13009    attributes: {
13010      providerNameSlug: 'collegehumor',
13011      responsive: true
13012    }
13013  }, {
13014    name: 'crowdsignal',
13015    title: 'Crowdsignal',
13016    icon: embedContentIcon,
13017    keywords: ['polldaddy', (0,external_wp_i18n_namespaceObject.__)('survey')],
13018    description: (0,external_wp_i18n_namespaceObject.__)('Embed Crowdsignal (formerly Polldaddy) content.'),
13019    patterns: [/^https?:\/\/((.+\.)?polldaddy\.com|poll\.fm|.+\.survey\.fm)\/.+/i],
13020    attributes: {
13021      providerNameSlug: 'crowdsignal',
13022      responsive: true
13023    }
13024  }, {
13025    name: 'dailymotion',
13026    title: 'Dailymotion',
13027    icon: embedDailymotionIcon,
13028    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
13029    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Dailymotion video.'),
13030    patterns: [/^https?:\/\/(www\.)?dailymotion\.com\/.+/i],
13031    attributes: {
13032      providerNameSlug: 'dailymotion',
13033      responsive: true
13034    }
13035  }, {
13036    name: 'imgur',
13037    title: 'Imgur',
13038    icon: embedPhotoIcon,
13039    description: (0,external_wp_i18n_namespaceObject.__)('Embed Imgur content.'),
13040    patterns: [/^https?:\/\/(.+\.)?imgur\.com\/.+/i],
13041    attributes: {
13042      providerNameSlug: 'imgur',
13043      responsive: true
13044    }
13045  }, {
13046    name: 'issuu',
13047    title: 'Issuu',
13048    icon: embedContentIcon,
13049    description: (0,external_wp_i18n_namespaceObject.__)('Embed Issuu content.'),
13050    patterns: [/^https?:\/\/(www\.)?issuu\.com\/.+/i],
13051    attributes: {
13052      providerNameSlug: 'issuu',
13053      responsive: true
13054    }
13055  }, {
13056    name: 'kickstarter',
13057    title: 'Kickstarter',
13058    icon: embedContentIcon,
13059    description: (0,external_wp_i18n_namespaceObject.__)('Embed Kickstarter content.'),
13060    patterns: [/^https?:\/\/(www\.)?kickstarter\.com\/.+/i, /^https?:\/\/kck\.st\/.+/i],
13061    attributes: {
13062      providerNameSlug: 'kickstarter',
13063      responsive: true
13064    }
13065  }, {
13066    name: 'mixcloud',
13067    title: 'Mixcloud',
13068    icon: embedAudioIcon,
13069    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
13070    description: (0,external_wp_i18n_namespaceObject.__)('Embed Mixcloud content.'),
13071    patterns: [/^https?:\/\/(www\.)?mixcloud\.com\/.+/i],
13072    attributes: {
13073      providerNameSlug: 'mixcloud',
13074      responsive: true
13075    }
13076  }, {
13077    name: 'reddit',
13078    title: 'Reddit',
13079    icon: embedRedditIcon,
13080    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Reddit thread.'),
13081    patterns: [/^https?:\/\/(www\.)?reddit\.com\/.+/i],
13082    attributes: {
13083      providerNameSlug: 'reddit',
13084      responsive: true
13085    }
13086  }, {
13087    name: 'reverbnation',
13088    title: 'ReverbNation',
13089    icon: embedAudioIcon,
13090    description: (0,external_wp_i18n_namespaceObject.__)('Embed ReverbNation content.'),
13091    patterns: [/^https?:\/\/(www\.)?reverbnation\.com\/.+/i],
13092    attributes: {
13093      providerNameSlug: 'reverbnation',
13094      responsive: true
13095    }
13096  }, {
13097    name: 'screencast',
13098    title: 'Screencast',
13099    icon: embedVideoIcon,
13100    description: (0,external_wp_i18n_namespaceObject.__)('Embed Screencast content.'),
13101    patterns: [/^https?:\/\/(www\.)?screencast\.com\/.+/i],
13102    attributes: {
13103      providerNameSlug: 'screencast',
13104      responsive: true
13105    }
13106  }, {
13107    name: 'scribd',
13108    title: 'Scribd',
13109    icon: embedContentIcon,
13110    description: (0,external_wp_i18n_namespaceObject.__)('Embed Scribd content.'),
13111    patterns: [/^https?:\/\/(www\.)?scribd\.com\/.+/i],
13112    attributes: {
13113      providerNameSlug: 'scribd',
13114      responsive: true
13115    }
13116  }, {
13117    name: 'slideshare',
13118    title: 'Slideshare',
13119    icon: embedContentIcon,
13120    description: (0,external_wp_i18n_namespaceObject.__)('Embed Slideshare content.'),
13121    patterns: [/^https?:\/\/(.+?\.)?slideshare\.net\/.+/i],
13122    attributes: {
13123      providerNameSlug: 'slideshare',
13124      responsive: true
13125    }
13126  }, {
13127    name: 'smugmug',
13128    title: 'SmugMug',
13129    icon: embedPhotoIcon,
13130    description: (0,external_wp_i18n_namespaceObject.__)('Embed SmugMug content.'),
13131    patterns: [/^https?:\/\/(.+\.)?smugmug\.com\/.*/i],
13132    attributes: {
13133      providerNameSlug: 'smugmug',
13134      previewable: false,
13135      responsive: true
13136    }
13137  }, {
13138    name: 'speaker-deck',
13139    title: 'Speaker Deck',
13140    icon: embedContentIcon,
13141    description: (0,external_wp_i18n_namespaceObject.__)('Embed Speaker Deck content.'),
13142    patterns: [/^https?:\/\/(www\.)?speakerdeck\.com\/.+/i],
13143    attributes: {
13144      providerNameSlug: 'speaker-deck',
13145      responsive: true
13146    }
13147  }, {
13148    name: 'tiktok',
13149    title: 'TikTok',
13150    icon: embedVideoIcon,
13151    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
13152    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TikTok video.'),
13153    patterns: [/^https?:\/\/(www\.)?tiktok\.com\/.+/i],
13154    attributes: {
13155      providerNameSlug: 'tiktok',
13156      responsive: true
13157    }
13158  }, {
13159    name: 'ted',
13160    title: 'TED',
13161    icon: embedVideoIcon,
13162    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TED video.'),
13163    patterns: [/^https?:\/\/(www\.|embed\.)?ted\.com\/.+/i],
13164    attributes: {
13165      providerNameSlug: 'ted',
13166      responsive: true
13167    }
13168  }, {
13169    name: 'tumblr',
13170    title: 'Tumblr',
13171    icon: embedTumblrIcon,
13172    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
13173    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Tumblr post.'),
13174    patterns: [/^https?:\/\/(www\.)?tumblr\.com\/.+/i],
13175    attributes: {
13176      providerNameSlug: 'tumblr',
13177      responsive: true
13178    }
13179  }, {
13180    name: 'videopress',
13181    title: 'VideoPress',
13182    icon: embedVideoIcon,
13183    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
13184    description: (0,external_wp_i18n_namespaceObject.__)('Embed a VideoPress video.'),
13185    patterns: [/^https?:\/\/videopress\.com\/.+/i],
13186    attributes: {
13187      providerNameSlug: 'videopress',
13188      responsive: true
13189    }
13190  }, {
13191    name: 'wordpress-tv',
13192    title: 'WordPress.tv',
13193    icon: embedVideoIcon,
13194    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress.tv video.'),
13195    patterns: [/^https?:\/\/wordpress\.tv\/.+/i],
13196    attributes: {
13197      providerNameSlug: 'wordpress-tv',
13198      responsive: true
13199    }
13200  }, {
13201    name: 'amazon-kindle',
13202    title: 'Amazon Kindle',
13203    icon: embedAmazonIcon,
13204    keywords: [(0,external_wp_i18n_namespaceObject.__)('ebook')],
13205    description: (0,external_wp_i18n_namespaceObject.__)('Embed Amazon Kindle content.'),
13206    patterns: [/^https?:\/\/([a-z0-9-]+\.)?(amazon|amzn)(\.[a-z]{2,4})+\/.+/i, /^https?:\/\/(www\.)?(a\.co|z\.cn)\/.+/i],
13207    attributes: {
13208      providerNameSlug: 'amazon-kindle'
13209    }
13210  }, {
13211    name: 'pinterest',
13212    title: 'Pinterest',
13213    icon: embedPinterestIcon,
13214    keywords: [(0,external_wp_i18n_namespaceObject.__)('social'), (0,external_wp_i18n_namespaceObject.__)('bookmark')],
13215    description: (0,external_wp_i18n_namespaceObject.__)('Embed Pinterest pins, boards, and profiles.'),
13216    patterns: [/^https?:\/\/([a-z]{2}|www)\.pinterest\.com(\.(au|mx))?\/.*/i],
13217    attributes: {
13218      providerNameSlug: 'pinterest'
13219    }
13220  }, {
13221    name: 'wolfram-cloud',
13222    title: 'Wolfram',
13223    icon: embedWolframIcon,
13224    description: (0,external_wp_i18n_namespaceObject.__)('Embed Wolfram notebook content.'),
13225    patterns: [/^https?:\/\/(www\.)?wolframcloud\.com\/obj\/.+/i],
13226    attributes: {
13227      providerNameSlug: 'wolfram-cloud',
13228      responsive: true
13229    }
13230  }];
13231  /**
13232   * Add `isActive` function to all `embed` variations, if not defined.
13233   * `isActive` function is used to find a variation match from a created
13234   *  Block by providing its attributes.
13235   */
13236  
13237  variations_variations.forEach(variation => {
13238    if (variation.isActive) return;
13239  
13240    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.providerNameSlug === variationAttributes.providerNameSlug;
13241  });
13242  /* harmony default export */ var embed_variations = (variations_variations);
13243  
13244  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/deprecated.js
13245  
13246  
13247  /**
13248   * External dependencies
13249   */
13250  
13251  /**
13252   * Internal dependencies
13253   */
13254  
13255  const deprecated_metadata = {
13256    $schema: "https://schemas.wp.org/trunk/block.json",
13257    apiVersion: 2,
13258    name: "core/embed",
13259    title: "Embed",
13260    category: "embed",
13261    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
13262    textdomain: "default",
13263    attributes: {
13264      url: {
13265        type: "string"
13266      },
13267      caption: {
13268        type: "string",
13269        source: "html",
13270        selector: "figcaption"
13271      },
13272      type: {
13273        type: "string"
13274      },
13275      providerNameSlug: {
13276        type: "string"
13277      },
13278      allowResponsive: {
13279        type: "boolean",
13280        "default": true
13281      },
13282      responsive: {
13283        type: "boolean",
13284        "default": false
13285      },
13286      previewable: {
13287        type: "boolean",
13288        "default": true
13289      }
13290    },
13291    supports: {
13292      align: true
13293    },
13294    editorStyle: "wp-block-embed-editor",
13295    style: "wp-block-embed"
13296  };
13297  /**
13298   * WordPress dependencies
13299   */
13300  
13301  
13302  const {
13303    attributes: embed_deprecated_blockAttributes
13304  } = deprecated_metadata;
13305  const embed_deprecated_deprecated = [{
13306    attributes: embed_deprecated_blockAttributes,
13307  
13308    save(_ref) {
13309      let {
13310        attributes: {
13311          url,
13312          caption,
13313          type,
13314          providerNameSlug
13315        }
13316      } = _ref;
13317  
13318      if (!url) {
13319        return null;
13320      }
13321  
13322      const embedClassName = classnames_default()('wp-block-embed', {
13323        [`is-type-$type}`]: type,
13324        [`is-provider-$providerNameSlug}`]: providerNameSlug
13325      });
13326      return (0,external_wp_element_namespaceObject.createElement)("figure", {
13327        className: embedClassName
13328      }, `\n$url}\n`
13329      /* URL needs to be on its own line. */
13330      , !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13331        tagName: "figcaption",
13332        value: caption
13333      }));
13334    }
13335  
13336  }];
13337  /* harmony default export */ var embed_deprecated = (embed_deprecated_deprecated);
13338  
13339  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/index.js
13340  /**
13341   * Internal dependencies
13342   */
13343  
13344  
13345  const embed_metadata = {
13346    $schema: "https://schemas.wp.org/trunk/block.json",
13347    apiVersion: 2,
13348    name: "core/embed",
13349    title: "Embed",
13350    category: "embed",
13351    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
13352    textdomain: "default",
13353    attributes: {
13354      url: {
13355        type: "string"
13356      },
13357      caption: {
13358        type: "string",
13359        source: "html",
13360        selector: "figcaption"
13361      },
13362      type: {
13363        type: "string"
13364      },
13365      providerNameSlug: {
13366        type: "string"
13367      },
13368      allowResponsive: {
13369        type: "boolean",
13370        "default": true
13371      },
13372      responsive: {
13373        type: "boolean",
13374        "default": false
13375      },
13376      previewable: {
13377        type: "boolean",
13378        "default": true
13379      }
13380    },
13381    supports: {
13382      align: true
13383    },
13384    editorStyle: "wp-block-embed-editor",
13385    style: "wp-block-embed"
13386  };
13387  
13388  
13389  
13390  
13391  const {
13392    name: embed_name
13393  } = embed_metadata;
13394  
13395  const embed_settings = {
13396    icon: embedContentIcon,
13397    edit: embed_edit,
13398    save: embed_save_save,
13399    transforms: embed_transforms,
13400    variations: embed_variations,
13401    deprecated: embed_deprecated
13402  };
13403  
13404  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js
13405  
13406  
13407  /**
13408   * WordPress dependencies
13409   */
13410  
13411  const file = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
13412    viewBox: "0 0 24 24",
13413    xmlns: "http://www.w3.org/2000/svg"
13414  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
13415    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"
13416  }));
13417  /* harmony default export */ var library_file = (file);
13418  
13419  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/deprecated.js
13420  
13421  
13422  /**
13423   * WordPress dependencies
13424   */
13425  
13426   // Version of the file block without PR#28062 accessibility fix.
13427  
13428  const file_deprecated_deprecated = [{
13429    attributes: {
13430      id: {
13431        type: 'number'
13432      },
13433      href: {
13434        type: 'string'
13435      },
13436      fileName: {
13437        type: 'string',
13438        source: 'html',
13439        selector: 'a:not([download])'
13440      },
13441      textLinkHref: {
13442        type: 'string',
13443        source: 'attribute',
13444        selector: 'a:not([download])',
13445        attribute: 'href'
13446      },
13447      textLinkTarget: {
13448        type: 'string',
13449        source: 'attribute',
13450        selector: 'a:not([download])',
13451        attribute: 'target'
13452      },
13453      showDownloadButton: {
13454        type: 'boolean',
13455        default: true
13456      },
13457      downloadButtonText: {
13458        type: 'string',
13459        source: 'html',
13460        selector: 'a[download]'
13461      },
13462      displayPreview: {
13463        type: 'boolean'
13464      },
13465      previewHeight: {
13466        type: 'number',
13467        default: 600
13468      }
13469    },
13470    supports: {
13471      anchor: true,
13472      align: true
13473    },
13474  
13475    save(_ref) {
13476      let {
13477        attributes
13478      } = _ref;
13479      const {
13480        href,
13481        fileName,
13482        textLinkHref,
13483        textLinkTarget,
13484        showDownloadButton,
13485        downloadButtonText,
13486        displayPreview,
13487        previewHeight
13488      } = attributes;
13489      const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)(
13490      /* translators: %s: filename. */
13491      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
13492      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", {
13493        className: "wp-block-file__embed",
13494        data: href,
13495        type: "application/pdf",
13496        style: {
13497          width: '100%',
13498          height: `$previewHeight}px`
13499        },
13500        "aria-label": pdfEmbedLabel
13501      })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) && (0,external_wp_element_namespaceObject.createElement)("a", {
13502        href: textLinkHref,
13503        target: textLinkTarget,
13504        rel: textLinkTarget ? 'noreferrer noopener' : undefined
13505      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13506        value: fileName
13507      })), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("a", {
13508        href: href,
13509        className: "wp-block-file__button",
13510        download: true
13511      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13512        value: downloadButtonText
13513      })));
13514    }
13515  
13516  }];
13517  /* harmony default export */ var file_deprecated = (file_deprecated_deprecated);
13518  
13519  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/inspector.js
13520  
13521  
13522  /**
13523   * WordPress dependencies
13524   */
13525  
13526  
13527  
13528  /**
13529   * Internal dependencies
13530   */
13531  
13532  
13533  function FileBlockInspector(_ref) {
13534    let {
13535      hrefs,
13536      openInNewWindow,
13537      showDownloadButton,
13538      changeLinkDestinationOption,
13539      changeOpenInNewWindow,
13540      changeShowDownloadButton,
13541      displayPreview,
13542      changeDisplayPreview,
13543      previewHeight,
13544      changePreviewHeight
13545    } = _ref;
13546    const {
13547      href,
13548      textLinkHref,
13549      attachmentPage
13550    } = hrefs;
13551    let linkDestinationOptions = [{
13552      value: href,
13553      label: (0,external_wp_i18n_namespaceObject.__)('URL')
13554    }];
13555  
13556    if (attachmentPage) {
13557      linkDestinationOptions = [{
13558        value: href,
13559        label: (0,external_wp_i18n_namespaceObject.__)('Media file')
13560      }, {
13561        value: attachmentPage,
13562        label: (0,external_wp_i18n_namespaceObject.__)('Attachment page')
13563      }];
13564    }
13565  
13566    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, {
13567      title: (0,external_wp_i18n_namespaceObject.__)('PDF settings')
13568    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
13569      label: (0,external_wp_i18n_namespaceObject.__)('Show inline embed'),
13570      help: displayPreview ? (0,external_wp_i18n_namespaceObject.__)("Note: Most phone and tablet browsers won't display embedded PDFs.") : null,
13571      checked: !!displayPreview,
13572      onChange: changeDisplayPreview
13573    }), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
13574      label: (0,external_wp_i18n_namespaceObject.__)('Height in pixels'),
13575      min: MIN_PREVIEW_HEIGHT,
13576      max: Math.max(MAX_PREVIEW_HEIGHT, previewHeight),
13577      value: previewHeight,
13578      onChange: changePreviewHeight
13579    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
13580      title: (0,external_wp_i18n_namespaceObject.__)('Text link settings')
13581    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
13582      label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
13583      value: textLinkHref,
13584      options: linkDestinationOptions,
13585      onChange: changeLinkDestinationOption
13586    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
13587      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
13588      checked: openInNewWindow,
13589      onChange: changeOpenInNewWindow
13590    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
13591      title: (0,external_wp_i18n_namespaceObject.__)('Download button settings')
13592    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
13593      label: (0,external_wp_i18n_namespaceObject.__)('Show download button'),
13594      checked: showDownloadButton,
13595      onChange: changeShowDownloadButton
13596    }))));
13597  }
13598  
13599  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/utils.js
13600  /**
13601   * Uses a combination of user agent matching and feature detection to determine whether
13602   * the current browser supports rendering PDFs inline.
13603   *
13604   * @return {boolean} Whether or not the browser supports inline PDFs.
13605   */
13606  const browserSupportsPdfs = () => {
13607    // Most mobile devices include "Mobi" in their UA.
13608    if (window.navigator.userAgent.indexOf('Mobi') > -1) {
13609      return false;
13610    } // Android tablets are the noteable exception.
13611  
13612  
13613    if (window.navigator.userAgent.indexOf('Android') > -1) {
13614      return false;
13615    } // iPad pretends to be a Mac.
13616  
13617  
13618    if (window.navigator.userAgent.indexOf('Macintosh') > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) {
13619      return false;
13620    } // IE only supports PDFs when there's an ActiveX object available for it.
13621  
13622  
13623    if (!!(window.ActiveXObject || 'ActiveXObject' in window) && !(createActiveXObject('AcroPDF.PDF') || createActiveXObject('PDF.PdfCtrl'))) {
13624      return false;
13625    }
13626  
13627    return true;
13628  };
13629  /**
13630   * Helper function for creating ActiveX objects, catching any errors that are thrown
13631   * when it's generated.
13632   *
13633   * @param {string} type The name of the ActiveX object to create.
13634   * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.
13635   */
13636  
13637  const createActiveXObject = type => {
13638    let ax;
13639  
13640    try {
13641      ax = new window.ActiveXObject(type);
13642    } catch (e) {
13643      ax = undefined;
13644    }
13645  
13646    return ax;
13647  };
13648  /**
13649   * Hides all .wp-block-file__embed elements on the document. This function is only intended
13650   * to be run on the front-end, it may have weird side effects running in the block editor.
13651   */
13652  
13653  
13654  const hidePdfEmbedsOnUnsupportedBrowsers = () => {
13655    if (!browserSupportsPdfs()) {
13656      const embeds = document.getElementsByClassName('wp-block-file__embed');
13657      Array.from(embeds).forEach(embed => {
13658        embed.style.display = 'none';
13659      });
13660    }
13661  };
13662  
13663  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/edit.js
13664  
13665  
13666  /**
13667   * External dependencies
13668   */
13669  
13670  /**
13671   * WordPress dependencies
13672   */
13673  
13674  
13675  
13676  
13677  
13678  
13679  
13680  
13681  
13682  
13683  
13684  /**
13685   * Internal dependencies
13686   */
13687  
13688  
13689  
13690  const MIN_PREVIEW_HEIGHT = 200;
13691  const MAX_PREVIEW_HEIGHT = 2000;
13692  
13693  function ClipboardToolbarButton(_ref) {
13694    let {
13695      text,
13696      disabled
13697    } = _ref;
13698    const {
13699      createNotice
13700    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
13701    const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
13702      createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), {
13703        isDismissible: true,
13704        type: 'snackbar'
13705      });
13706    });
13707    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
13708      className: "components-clipboard-toolbar-button",
13709      ref: ref,
13710      disabled: disabled
13711    }, (0,external_wp_i18n_namespaceObject.__)('Copy URL'));
13712  }
13713  
13714  function FileEdit(_ref2) {
13715    let {
13716      attributes,
13717      isSelected,
13718      setAttributes,
13719      noticeUI,
13720      noticeOperations,
13721      clientId
13722    } = _ref2;
13723    const {
13724      id,
13725      fileId,
13726      fileName,
13727      href,
13728      textLinkHref,
13729      textLinkTarget,
13730      showDownloadButton,
13731      downloadButtonText,
13732      displayPreview,
13733      previewHeight
13734    } = attributes;
13735    const {
13736      media,
13737      mediaUpload
13738    } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
13739      media: id === undefined ? undefined : select(external_wp_coreData_namespaceObject.store).getMedia(id),
13740      mediaUpload: select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload
13741    }), [id]);
13742    const {
13743      toggleSelection,
13744      __unstableMarkNextChangeAsNotPersistent
13745    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
13746    (0,external_wp_element_namespaceObject.useEffect)(() => {
13747      // Upload a file drag-and-dropped into the editor.
13748      if ((0,external_wp_blob_namespaceObject.isBlobURL)(href)) {
13749        const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(href);
13750        mediaUpload({
13751          filesList: [file],
13752          onFileChange: _ref3 => {
13753            let [newMedia] = _ref3;
13754            return onSelectFile(newMedia);
13755          },
13756          onError: onUploadError
13757        });
13758        (0,external_wp_blob_namespaceObject.revokeBlobURL)(href);
13759      }
13760  
13761      if (downloadButtonText === undefined) {
13762        changeDownloadButtonText((0,external_wp_i18n_namespaceObject._x)('Download', 'button label'));
13763      }
13764    }, []);
13765    (0,external_wp_element_namespaceObject.useEffect)(() => {
13766      if (!fileId && href) {
13767        // Add a unique fileId to each file block.
13768        __unstableMarkNextChangeAsNotPersistent();
13769  
13770        setAttributes({
13771          fileId: `wp-block-file--media-$clientId}`
13772        });
13773      }
13774    }, [href, fileId, clientId]);
13775  
13776    function onSelectFile(newMedia) {
13777      if (newMedia && newMedia.url) {
13778        const isPdf = newMedia.url.endsWith('.pdf');
13779        setAttributes({
13780          href: newMedia.url,
13781          fileName: newMedia.title,
13782          textLinkHref: newMedia.url,
13783          id: newMedia.id,
13784          displayPreview: isPdf ? true : undefined,
13785          previewHeight: isPdf ? 600 : undefined
13786        });
13787      }
13788    }
13789  
13790    function onUploadError(message) {
13791      setAttributes({
13792        href: undefined
13793      });
13794      noticeOperations.removeAllNotices();
13795      noticeOperations.createErrorNotice(message);
13796    }
13797  
13798    function changeLinkDestinationOption(newHref) {
13799      // Choose Media File or Attachment Page (when file is in Media Library).
13800      setAttributes({
13801        textLinkHref: newHref
13802      });
13803    }
13804  
13805    function changeOpenInNewWindow(newValue) {
13806      setAttributes({
13807        textLinkTarget: newValue ? '_blank' : false
13808      });
13809    }
13810  
13811    function changeShowDownloadButton(newValue) {
13812      setAttributes({
13813        showDownloadButton: newValue
13814      });
13815    }
13816  
13817    function changeDownloadButtonText(newValue) {
13818      // Remove anchor tags from button text content.
13819      setAttributes({
13820        downloadButtonText: newValue.replace(/<\/?a[^>]*>/g, '')
13821      });
13822    }
13823  
13824    function changeDisplayPreview(newValue) {
13825      setAttributes({
13826        displayPreview: newValue
13827      });
13828    }
13829  
13830    function handleOnResizeStop(event, direction, elt, delta) {
13831      toggleSelection(true);
13832      const newHeight = parseInt(previewHeight + delta.height, 10);
13833      setAttributes({
13834        previewHeight: newHeight
13835      });
13836    }
13837  
13838    function changePreviewHeight(newValue) {
13839      const newHeight = Math.max(parseInt(newValue, 10), MIN_PREVIEW_HEIGHT);
13840      setAttributes({
13841        previewHeight: newHeight
13842      });
13843    }
13844  
13845    const attachmentPage = media && media.link;
13846    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
13847      className: classnames_default()((0,external_wp_blob_namespaceObject.isBlobURL)(href) && (0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({
13848        type: 'loading'
13849      }), {
13850        'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(href)
13851      })
13852    });
13853    const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;
13854  
13855    if (!href) {
13856      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
13857        icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
13858          icon: library_file
13859        }),
13860        labels: {
13861          title: (0,external_wp_i18n_namespaceObject.__)('File'),
13862          instructions: (0,external_wp_i18n_namespaceObject.__)('Upload a file or pick one from your media library.')
13863        },
13864        onSelect: onSelectFile,
13865        notices: noticeUI,
13866        onError: onUploadError,
13867        accept: "*"
13868      }));
13869    }
13870  
13871    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(FileBlockInspector, {
13872      hrefs: {
13873        href,
13874        textLinkHref,
13875        attachmentPage
13876      },
13877      openInNewWindow: !!textLinkTarget,
13878      showDownloadButton,
13879      changeLinkDestinationOption,
13880      changeOpenInNewWindow,
13881      changeShowDownloadButton,
13882      displayPreview,
13883      changeDisplayPreview,
13884      previewHeight,
13885      changePreviewHeight
13886    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
13887      group: "other"
13888    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
13889      mediaId: id,
13890      mediaURL: href,
13891      accept: "*",
13892      onSelect: onSelectFile,
13893      onError: onUploadError
13894    }), (0,external_wp_element_namespaceObject.createElement)(ClipboardToolbarButton, {
13895      text: href,
13896      disabled: (0,external_wp_blob_namespaceObject.isBlobURL)(href)
13897    })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, displayPreviewInEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
13898      size: {
13899        height: previewHeight
13900      },
13901      minHeight: MIN_PREVIEW_HEIGHT,
13902      maxHeight: MAX_PREVIEW_HEIGHT,
13903      minWidth: "100%",
13904      grid: [10, 10],
13905      enable: {
13906        top: false,
13907        right: false,
13908        bottom: true,
13909        left: false,
13910        topRight: false,
13911        bottomRight: false,
13912        bottomLeft: false,
13913        topLeft: false
13914      },
13915      onResizeStart: () => toggleSelection(false),
13916      onResizeStop: handleOnResizeStop,
13917      showHandle: isSelected
13918    }, (0,external_wp_element_namespaceObject.createElement)("object", {
13919      className: "wp-block-file__preview",
13920      data: href,
13921      type: "application/pdf",
13922      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Embed of the selected PDF file.')
13923    }), !isSelected && (0,external_wp_element_namespaceObject.createElement)("div", {
13924      className: "wp-block-file__preview-overlay"
13925    })), (0,external_wp_element_namespaceObject.createElement)("div", {
13926      className: 'wp-block-file__content-wrapper'
13927    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
13928      tagName: "a",
13929      value: fileName,
13930      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write file name…'),
13931      withoutInteractiveFormatting: true,
13932      onChange: text => setAttributes({
13933        fileName: text
13934      }),
13935      href: textLinkHref
13936    }), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("div", {
13937      className: 'wp-block-file__button-richtext-wrapper'
13938    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
13939      tagName: "div" // Must be block-level or else cursor disappears.
13940      ,
13941      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Download button text'),
13942      className: 'wp-block-file__button',
13943      value: downloadButtonText,
13944      withoutInteractiveFormatting: true,
13945      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text…'),
13946      onChange: text => changeDownloadButtonText(text)
13947    })))));
13948  }
13949  
13950  /* harmony default export */ var file_edit = ((0,external_wp_components_namespaceObject.withNotices)(FileEdit));
13951  
13952  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/save.js
13953  
13954  
13955  /**
13956   * WordPress dependencies
13957   */
13958  
13959  
13960  function file_save_save(_ref) {
13961    let {
13962      attributes
13963    } = _ref;
13964    const {
13965      href,
13966      fileId,
13967      fileName,
13968      textLinkHref,
13969      textLinkTarget,
13970      showDownloadButton,
13971      downloadButtonText,
13972      displayPreview,
13973      previewHeight
13974    } = attributes;
13975    const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)(
13976    /* translators: %s: filename. */
13977    (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
13978    const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName); // Only output an `aria-describedby` when the element it's referring to is
13979    // actually rendered.
13980  
13981    const describedById = hasFilename ? fileId : undefined;
13982    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", {
13983      className: "wp-block-file__embed",
13984      data: href,
13985      type: "application/pdf",
13986      style: {
13987        width: '100%',
13988        height: `$previewHeight}px`
13989      },
13990      "aria-label": pdfEmbedLabel
13991    })), hasFilename && (0,external_wp_element_namespaceObject.createElement)("a", {
13992      id: describedById,
13993      href: textLinkHref,
13994      target: textLinkTarget,
13995      rel: textLinkTarget ? 'noreferrer noopener' : undefined
13996    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13997      value: fileName
13998    })), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("a", {
13999      href: href,
14000      className: "wp-block-file__button",
14001      download: true,
14002      "aria-describedby": describedById
14003    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14004      value: downloadButtonText
14005    })));
14006  }
14007  
14008  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/transforms.js
14009  /**
14010   * External dependencies
14011   */
14012  
14013  /**
14014   * WordPress dependencies
14015   */
14016  
14017  
14018  
14019  
14020  
14021  
14022  const file_transforms_transforms = {
14023    from: [{
14024      type: 'files',
14025  
14026      isMatch(files) {
14027        return files.length > 0;
14028      },
14029  
14030      // We define a lower priorty (higher number) than the default of 10. This
14031      // ensures that the File block is only created as a fallback.
14032      priority: 15,
14033      transform: files => {
14034        const blocks = [];
14035        files.forEach(file => {
14036          const blobURL = (0,external_wp_blob_namespaceObject.createBlobURL)(file); // File will be uploaded in componentDidMount()
14037  
14038          blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
14039            href: blobURL,
14040            fileName: file.name,
14041            textLinkHref: blobURL
14042          }));
14043        });
14044        return blocks;
14045      }
14046    }, {
14047      type: 'block',
14048      blocks: ['core/audio'],
14049      transform: attributes => {
14050        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
14051          href: attributes.src,
14052          fileName: attributes.caption,
14053          textLinkHref: attributes.src,
14054          id: attributes.id,
14055          anchor: attributes.anchor
14056        });
14057      }
14058    }, {
14059      type: 'block',
14060      blocks: ['core/video'],
14061      transform: attributes => {
14062        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
14063          href: attributes.src,
14064          fileName: attributes.caption,
14065          textLinkHref: attributes.src,
14066          id: attributes.id,
14067          anchor: attributes.anchor
14068        });
14069      }
14070    }, {
14071      type: 'block',
14072      blocks: ['core/image'],
14073      transform: attributes => {
14074        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
14075          href: attributes.url,
14076          fileName: attributes.caption || (0,external_wp_url_namespaceObject.getFilename)(attributes.url),
14077          textLinkHref: attributes.url,
14078          id: attributes.id,
14079          anchor: attributes.anchor
14080        });
14081      }
14082    }],
14083    to: [{
14084      type: 'block',
14085      blocks: ['core/audio'],
14086      isMatch: _ref => {
14087        let {
14088          id
14089        } = _ref;
14090  
14091        if (!id) {
14092          return false;
14093        }
14094  
14095        const {
14096          getMedia
14097        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
14098        const media = getMedia(id);
14099        return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'audio');
14100      },
14101      transform: attributes => {
14102        return (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
14103          src: attributes.href,
14104          caption: attributes.fileName,
14105          id: attributes.id,
14106          anchor: attributes.anchor
14107        });
14108      }
14109    }, {
14110      type: 'block',
14111      blocks: ['core/video'],
14112      isMatch: _ref2 => {
14113        let {
14114          id
14115        } = _ref2;
14116  
14117        if (!id) {
14118          return false;
14119        }
14120  
14121        const {
14122          getMedia
14123        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
14124        const media = getMedia(id);
14125        return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'video');
14126      },
14127      transform: attributes => {
14128        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
14129          src: attributes.href,
14130          caption: attributes.fileName,
14131          id: attributes.id,
14132          anchor: attributes.anchor
14133        });
14134      }
14135    }, {
14136      type: 'block',
14137      blocks: ['core/image'],
14138      isMatch: _ref3 => {
14139        let {
14140          id
14141        } = _ref3;
14142  
14143        if (!id) {
14144          return false;
14145        }
14146  
14147        const {
14148          getMedia
14149        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
14150        const media = getMedia(id);
14151        return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'image');
14152      },
14153      transform: attributes => {
14154        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
14155          url: attributes.href,
14156          caption: attributes.fileName,
14157          id: attributes.id,
14158          anchor: attributes.anchor
14159        });
14160      }
14161    }]
14162  };
14163  /* harmony default export */ var file_transforms = (file_transforms_transforms);
14164  
14165  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/index.js
14166  /**
14167   * WordPress dependencies
14168   */
14169  
14170  
14171  /**
14172   * Internal dependencies
14173   */
14174  
14175  
14176  
14177  const file_metadata = {
14178    $schema: "https://schemas.wp.org/trunk/block.json",
14179    apiVersion: 2,
14180    name: "core/file",
14181    title: "File",
14182    category: "media",
14183    description: "Add a link to a downloadable file.",
14184    keywords: ["document", "pdf", "download"],
14185    textdomain: "default",
14186    attributes: {
14187      id: {
14188        type: "number"
14189      },
14190      href: {
14191        type: "string"
14192      },
14193      fileId: {
14194        type: "string",
14195        source: "attribute",
14196        selector: "a:not([download])",
14197        attribute: "id"
14198      },
14199      fileName: {
14200        type: "string",
14201        source: "html",
14202        selector: "a:not([download])"
14203      },
14204      textLinkHref: {
14205        type: "string",
14206        source: "attribute",
14207        selector: "a:not([download])",
14208        attribute: "href"
14209      },
14210      textLinkTarget: {
14211        type: "string",
14212        source: "attribute",
14213        selector: "a:not([download])",
14214        attribute: "target"
14215      },
14216      showDownloadButton: {
14217        type: "boolean",
14218        "default": true
14219      },
14220      downloadButtonText: {
14221        type: "string",
14222        source: "html",
14223        selector: "a[download]"
14224      },
14225      displayPreview: {
14226        type: "boolean"
14227      },
14228      previewHeight: {
14229        type: "number",
14230        "default": 600
14231      }
14232    },
14233    supports: {
14234      anchor: true,
14235      align: true
14236    },
14237    viewScript: "file:./view.min.js",
14238    editorStyle: "wp-block-file-editor",
14239    style: "wp-block-file"
14240  };
14241  
14242  
14243  const {
14244    name: file_name
14245  } = file_metadata;
14246  
14247  const file_settings = {
14248    icon: library_file,
14249    example: {
14250      attributes: {
14251        href: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',
14252        fileName: (0,external_wp_i18n_namespaceObject._x)('Armstrong_Small_Step', 'Name of the file')
14253      }
14254    },
14255    transforms: file_transforms,
14256    deprecated: file_deprecated,
14257    edit: file_edit,
14258    save: file_save_save
14259  };
14260  
14261  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/gallery.js
14262  
14263  
14264  /**
14265   * WordPress dependencies
14266   */
14267  
14268  const gallery = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
14269    viewBox: "0 0 24 24",
14270    xmlns: "http://www.w3.org/2000/svg"
14271  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
14272    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"
14273  }));
14274  /* harmony default export */ var library_gallery = (gallery);
14275  
14276  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/constants.js
14277  const LINK_DESTINATION_NONE = 'none';
14278  const LINK_DESTINATION_MEDIA = 'media';
14279  const LINK_DESTINATION_ATTACHMENT = 'attachment';
14280  const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
14281  const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';
14282  
14283  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared.js
14284  /**
14285   * External dependencies
14286   */
14287  
14288  function defaultColumnsNumber(imageCount) {
14289    return imageCount ? Math.min(3, imageCount) : 3;
14290  }
14291  const pickRelevantMediaFiles = function (image) {
14292    let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
14293    const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']);
14294    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;
14295    const fullUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', 'full', 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', 'full', 'source_url']);
14296  
14297    if (fullUrl) {
14298      imageProps.fullUrl = fullUrl;
14299    }
14300  
14301    return imageProps;
14302  };
14303  /**
14304   * The new gallery block format is not compatible with the use_BalanceTags option
14305   * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The
14306   * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method
14307   * can be removed when minimum supported WP version >=5.9.
14308   */
14309  
14310  function isGalleryV2Enabled() {
14311    // Only run the Gallery version compat check if the plugin is running, otherwise
14312    // assume we are in 5.9 core and enable by default.
14313    if (false) {}
14314  
14315    return true;
14316  }
14317  
14318  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js
14319  
14320  
14321  /**
14322   * External dependencies
14323   */
14324  
14325  
14326  /**
14327   * WordPress dependencies
14328   */
14329  
14330  
14331  
14332  /**
14333   * Internal dependencies
14334   */
14335  
14336  
14337  
14338  const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
14339  const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
14340  /**
14341   * Original function to determine default number of columns from a block's
14342   * attributes.
14343   *
14344   * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks.
14345   *
14346   * @param {Object} attributes Block attributes.
14347   * @return {number}           Default number of columns for the gallery.
14348   */
14349  
14350  function defaultColumnsNumberV1(attributes) {
14351    var _attributes$images;
14352  
14353    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);
14354  }
14355  /**
14356   * Original function to determine new href and linkDestination values for an image block from the
14357   * supplied Gallery link destination.
14358   *
14359   * Used in deprecations: v1-6.
14360   *
14361   * @param {Object} image       Gallery image.
14362   * @param {string} destination Gallery's selected link destination.
14363   * @return {Object}            New attributes to assign to image block.
14364   */
14365  
14366  function getHrefAndDestination(image, destination) {
14367    // Need to determine the URL that the selected destination maps to.
14368    // Gutenberg and WordPress use different constants so the new link
14369    // destination also needs to be tweaked.
14370    switch (destination) {
14371      case DEPRECATED_LINK_DESTINATION_MEDIA:
14372        return {
14373          href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
14374          // eslint-disable-line camelcase
14375          linkDestination: LINK_DESTINATION_MEDIA
14376        };
14377  
14378      case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
14379        return {
14380          href: image === null || image === void 0 ? void 0 : image.link,
14381          linkDestination: LINK_DESTINATION_ATTACHMENT
14382        };
14383  
14384      case LINK_DESTINATION_MEDIA:
14385        return {
14386          href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
14387          // eslint-disable-line camelcase
14388          linkDestination: LINK_DESTINATION_MEDIA
14389        };
14390  
14391      case LINK_DESTINATION_ATTACHMENT:
14392        return {
14393          href: image === null || image === void 0 ? void 0 : image.link,
14394          linkDestination: LINK_DESTINATION_ATTACHMENT
14395        };
14396  
14397      case LINK_DESTINATION_NONE:
14398        return {
14399          href: undefined,
14400          linkDestination: LINK_DESTINATION_NONE
14401        };
14402    }
14403  
14404    return {};
14405  }
14406  
14407  function runV2Migration(attributes) {
14408    let linkTo = attributes.linkTo ? attributes.linkTo : 'none';
14409  
14410    if (linkTo === 'post') {
14411      linkTo = 'attachment';
14412    } else if (linkTo === 'file') {
14413      linkTo = 'media';
14414    }
14415  
14416    const imageBlocks = attributes.images.map(image => {
14417      return getImageBlock(image, attributes.sizeSlug, linkTo);
14418    });
14419    return [{ ...(0,external_lodash_namespaceObject.omit)(attributes, ['images', 'ids']),
14420      linkTo,
14421      allowResize: false
14422    }, imageBlocks];
14423  }
14424  /**
14425   * Gets an Image block from gallery image data
14426   *
14427   * Used to migrate Galleries to nested Image InnerBlocks.
14428   *
14429   * @param {Object} image    Image properties.
14430   * @param {string} sizeSlug Gallery sizeSlug attribute.
14431   * @param {string} linkTo   Gallery linkTo attribute.
14432   * @return {Object}         Image block.
14433   */
14434  
14435  
14436  function getImageBlock(image, sizeSlug, linkTo) {
14437    return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { ...(image.id && {
14438        id: parseInt(image.id)
14439      }),
14440      url: image.url,
14441      alt: image.alt,
14442      caption: image.caption,
14443      sizeSlug,
14444      ...getHrefAndDestination(image, linkTo)
14445    });
14446  }
14447  const deprecated_v6 = {
14448    attributes: {
14449      images: {
14450        type: 'array',
14451        default: [],
14452        source: 'query',
14453        selector: '.blocks-gallery-item',
14454        query: {
14455          url: {
14456            type: 'string',
14457            source: 'attribute',
14458            selector: 'img',
14459            attribute: 'src'
14460          },
14461          fullUrl: {
14462            type: 'string',
14463            source: 'attribute',
14464            selector: 'img',
14465            attribute: 'data-full-url'
14466          },
14467          link: {
14468            type: 'string',
14469            source: 'attribute',
14470            selector: 'img',
14471            attribute: 'data-link'
14472          },
14473          alt: {
14474            type: 'string',
14475            source: 'attribute',
14476            selector: 'img',
14477            attribute: 'alt',
14478            default: ''
14479          },
14480          id: {
14481            type: 'string',
14482            source: 'attribute',
14483            selector: 'img',
14484            attribute: 'data-id'
14485          },
14486          caption: {
14487            type: 'string',
14488            source: 'html',
14489            selector: '.blocks-gallery-item__caption'
14490          }
14491        }
14492      },
14493      ids: {
14494        type: 'array',
14495        items: {
14496          type: 'number'
14497        },
14498        default: []
14499      },
14500      columns: {
14501        type: 'number',
14502        minimum: 1,
14503        maximum: 8
14504      },
14505      caption: {
14506        type: 'string',
14507        source: 'html',
14508        selector: '.blocks-gallery-caption'
14509      },
14510      imageCrop: {
14511        type: 'boolean',
14512        default: true
14513      },
14514      fixedHeight: {
14515        type: 'boolean',
14516        default: true
14517      },
14518      linkTo: {
14519        type: 'string'
14520      },
14521      sizeSlug: {
14522        type: 'string',
14523        default: 'large'
14524      }
14525    },
14526    supports: {
14527      anchor: true,
14528      align: true
14529    },
14530  
14531    save(_ref) {
14532      let {
14533        attributes
14534      } = _ref;
14535      const {
14536        images,
14537        columns = defaultColumnsNumberV1(attributes),
14538        imageCrop,
14539        caption,
14540        linkTo
14541      } = attributes;
14542      const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`;
14543      return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
14544        className
14545      }), (0,external_wp_element_namespaceObject.createElement)("ul", {
14546        className: "blocks-gallery-grid"
14547      }, images.map(image => {
14548        let href;
14549  
14550        switch (linkTo) {
14551          case DEPRECATED_LINK_DESTINATION_MEDIA:
14552            href = image.fullUrl || image.url;
14553            break;
14554  
14555          case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
14556            href = image.link;
14557            break;
14558        }
14559  
14560        const img = (0,external_wp_element_namespaceObject.createElement)("img", {
14561          src: image.url,
14562          alt: image.alt,
14563          "data-id": image.id,
14564          "data-full-url": image.fullUrl,
14565          "data-link": image.link,
14566          className: image.id ? `wp-image-$image.id}` : null
14567        });
14568        return (0,external_wp_element_namespaceObject.createElement)("li", {
14569          key: image.id || image.url,
14570          className: "blocks-gallery-item"
14571        }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
14572          href: href
14573        }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14574          tagName: "figcaption",
14575          className: "blocks-gallery-item__caption",
14576          value: image.caption
14577        })));
14578      })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14579        tagName: "figcaption",
14580        className: "blocks-gallery-caption",
14581        value: caption
14582      }));
14583    },
14584  
14585    migrate(attributes) {
14586      if (isGalleryV2Enabled()) {
14587        return runV2Migration(attributes);
14588      }
14589  
14590      return attributes;
14591    }
14592  
14593  };
14594  const deprecated_v5 = {
14595    attributes: {
14596      images: {
14597        type: 'array',
14598        default: [],
14599        source: 'query',
14600        selector: '.blocks-gallery-item',
14601        query: {
14602          url: {
14603            type: 'string',
14604            source: 'attribute',
14605            selector: 'img',
14606            attribute: 'src'
14607          },
14608          fullUrl: {
14609            type: 'string',
14610            source: 'attribute',
14611            selector: 'img',
14612            attribute: 'data-full-url'
14613          },
14614          link: {
14615            type: 'string',
14616            source: 'attribute',
14617            selector: 'img',
14618            attribute: 'data-link'
14619          },
14620          alt: {
14621            type: 'string',
14622            source: 'attribute',
14623            selector: 'img',
14624            attribute: 'alt',
14625            default: ''
14626          },
14627          id: {
14628            type: 'string',
14629            source: 'attribute',
14630            selector: 'img',
14631            attribute: 'data-id'
14632          },
14633          caption: {
14634            type: 'string',
14635            source: 'html',
14636            selector: '.blocks-gallery-item__caption'
14637          }
14638        }
14639      },
14640      ids: {
14641        type: 'array',
14642        items: {
14643          type: 'number'
14644        },
14645        default: []
14646      },
14647      columns: {
14648        type: 'number',
14649        minimum: 1,
14650        maximum: 8
14651      },
14652      caption: {
14653        type: 'string',
14654        source: 'html',
14655        selector: '.blocks-gallery-caption'
14656      },
14657      imageCrop: {
14658        type: 'boolean',
14659        default: true
14660      },
14661      linkTo: {
14662        type: 'string',
14663        default: 'none'
14664      },
14665      sizeSlug: {
14666        type: 'string',
14667        default: 'large'
14668      }
14669    },
14670    supports: {
14671      align: true
14672    },
14673  
14674    isEligible(_ref2) {
14675      let {
14676        linkTo
14677      } = _ref2;
14678      return !linkTo || linkTo === 'attachment' || linkTo === 'media';
14679    },
14680  
14681    migrate(attributes) {
14682      if (isGalleryV2Enabled()) {
14683        return runV2Migration(attributes);
14684      }
14685  
14686      let linkTo = attributes.linkTo;
14687  
14688      if (!attributes.linkTo) {
14689        linkTo = 'none';
14690      } else if (attributes.linkTo === 'attachment') {
14691        linkTo = 'post';
14692      } else if (attributes.linkTo === 'media') {
14693        linkTo = 'file';
14694      }
14695  
14696      return { ...attributes,
14697        linkTo
14698      };
14699    },
14700  
14701    save(_ref3) {
14702      let {
14703        attributes
14704      } = _ref3;
14705      const {
14706        images,
14707        columns = defaultColumnsNumberV1(attributes),
14708        imageCrop,
14709        caption,
14710        linkTo
14711      } = attributes;
14712      return (0,external_wp_element_namespaceObject.createElement)("figure", {
14713        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`
14714      }, (0,external_wp_element_namespaceObject.createElement)("ul", {
14715        className: "blocks-gallery-grid"
14716      }, images.map(image => {
14717        let href;
14718  
14719        switch (linkTo) {
14720          case 'media':
14721            href = image.fullUrl || image.url;
14722            break;
14723  
14724          case 'attachment':
14725            href = image.link;
14726            break;
14727        }
14728  
14729        const img = (0,external_wp_element_namespaceObject.createElement)("img", {
14730          src: image.url,
14731          alt: image.alt,
14732          "data-id": image.id,
14733          "data-full-url": image.fullUrl,
14734          "data-link": image.link,
14735          className: image.id ? `wp-image-$image.id}` : null
14736        });
14737        return (0,external_wp_element_namespaceObject.createElement)("li", {
14738          key: image.id || image.url,
14739          className: "blocks-gallery-item"
14740        }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
14741          href: href
14742        }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14743          tagName: "figcaption",
14744          className: "blocks-gallery-item__caption",
14745          value: image.caption
14746        })));
14747      })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14748        tagName: "figcaption",
14749        className: "blocks-gallery-caption",
14750        value: caption
14751      }));
14752    }
14753  
14754  };
14755  const deprecated_v4 = {
14756    attributes: {
14757      images: {
14758        type: 'array',
14759        default: [],
14760        source: 'query',
14761        selector: '.blocks-gallery-item',
14762        query: {
14763          url: {
14764            source: 'attribute',
14765            selector: 'img',
14766            attribute: 'src'
14767          },
14768          fullUrl: {
14769            source: 'attribute',
14770            selector: 'img',
14771            attribute: 'data-full-url'
14772          },
14773          link: {
14774            source: 'attribute',
14775            selector: 'img',
14776            attribute: 'data-link'
14777          },
14778          alt: {
14779            source: 'attribute',
14780            selector: 'img',
14781            attribute: 'alt',
14782            default: ''
14783          },
14784          id: {
14785            source: 'attribute',
14786            selector: 'img',
14787            attribute: 'data-id'
14788          },
14789          caption: {
14790            type: 'string',
14791            source: 'html',
14792            selector: '.blocks-gallery-item__caption'
14793          }
14794        }
14795      },
14796      ids: {
14797        type: 'array',
14798        default: []
14799      },
14800      columns: {
14801        type: 'number'
14802      },
14803      caption: {
14804        type: 'string',
14805        source: 'html',
14806        selector: '.blocks-gallery-caption'
14807      },
14808      imageCrop: {
14809        type: 'boolean',
14810        default: true
14811      },
14812      linkTo: {
14813        type: 'string',
14814        default: 'none'
14815      }
14816    },
14817    supports: {
14818      align: true
14819    },
14820  
14821    isEligible(_ref4) {
14822      let {
14823        ids
14824      } = _ref4;
14825      return ids && ids.some(id => typeof id === 'string');
14826    },
14827  
14828    migrate(attributes) {
14829      if (isGalleryV2Enabled()) {
14830        return runV2Migration(attributes);
14831      }
14832  
14833      return { ...attributes,
14834        ids: (0,external_lodash_namespaceObject.map)(attributes.ids, id => {
14835          const parsedId = parseInt(id, 10);
14836          return Number.isInteger(parsedId) ? parsedId : null;
14837        })
14838      };
14839    },
14840  
14841    save(_ref5) {
14842      let {
14843        attributes
14844      } = _ref5;
14845      const {
14846        images,
14847        columns = defaultColumnsNumberV1(attributes),
14848        imageCrop,
14849        caption,
14850        linkTo
14851      } = attributes;
14852      return (0,external_wp_element_namespaceObject.createElement)("figure", {
14853        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`
14854      }, (0,external_wp_element_namespaceObject.createElement)("ul", {
14855        className: "blocks-gallery-grid"
14856      }, images.map(image => {
14857        let href;
14858  
14859        switch (linkTo) {
14860          case 'media':
14861            href = image.fullUrl || image.url;
14862            break;
14863  
14864          case 'attachment':
14865            href = image.link;
14866            break;
14867        }
14868  
14869        const img = (0,external_wp_element_namespaceObject.createElement)("img", {
14870          src: image.url,
14871          alt: image.alt,
14872          "data-id": image.id,
14873          "data-full-url": image.fullUrl,
14874          "data-link": image.link,
14875          className: image.id ? `wp-image-$image.id}` : null
14876        });
14877        return (0,external_wp_element_namespaceObject.createElement)("li", {
14878          key: image.id || image.url,
14879          className: "blocks-gallery-item"
14880        }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
14881          href: href
14882        }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14883          tagName: "figcaption",
14884          className: "blocks-gallery-item__caption",
14885          value: image.caption
14886        })));
14887      })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14888        tagName: "figcaption",
14889        className: "blocks-gallery-caption",
14890        value: caption
14891      }));
14892    }
14893  
14894  };
14895  const deprecated_v3 = {
14896    attributes: {
14897      images: {
14898        type: 'array',
14899        default: [],
14900        source: 'query',
14901        selector: 'ul.wp-block-gallery .blocks-gallery-item',
14902        query: {
14903          url: {
14904            source: 'attribute',
14905            selector: 'img',
14906            attribute: 'src'
14907          },
14908          fullUrl: {
14909            source: 'attribute',
14910            selector: 'img',
14911            attribute: 'data-full-url'
14912          },
14913          alt: {
14914            source: 'attribute',
14915            selector: 'img',
14916            attribute: 'alt',
14917            default: ''
14918          },
14919          id: {
14920            source: 'attribute',
14921            selector: 'img',
14922            attribute: 'data-id'
14923          },
14924          link: {
14925            source: 'attribute',
14926            selector: 'img',
14927            attribute: 'data-link'
14928          },
14929          caption: {
14930            type: 'array',
14931            source: 'children',
14932            selector: 'figcaption'
14933          }
14934        }
14935      },
14936      ids: {
14937        type: 'array',
14938        default: []
14939      },
14940      columns: {
14941        type: 'number'
14942      },
14943      imageCrop: {
14944        type: 'boolean',
14945        default: true
14946      },
14947      linkTo: {
14948        type: 'string',
14949        default: 'none'
14950      }
14951    },
14952    supports: {
14953      align: true
14954    },
14955  
14956    save(_ref6) {
14957      let {
14958        attributes
14959      } = _ref6;
14960      const {
14961        images,
14962        columns = defaultColumnsNumberV1(attributes),
14963        imageCrop,
14964        linkTo
14965      } = attributes;
14966      return (0,external_wp_element_namespaceObject.createElement)("ul", {
14967        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`
14968      }, images.map(image => {
14969        let href;
14970  
14971        switch (linkTo) {
14972          case 'media':
14973            href = image.fullUrl || image.url;
14974            break;
14975  
14976          case 'attachment':
14977            href = image.link;
14978            break;
14979        }
14980  
14981        const img = (0,external_wp_element_namespaceObject.createElement)("img", {
14982          src: image.url,
14983          alt: image.alt,
14984          "data-id": image.id,
14985          "data-full-url": image.fullUrl,
14986          "data-link": image.link,
14987          className: image.id ? `wp-image-$image.id}` : null
14988        });
14989        return (0,external_wp_element_namespaceObject.createElement)("li", {
14990          key: image.id || image.url,
14991          className: "blocks-gallery-item"
14992        }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
14993          href: href
14994        }, img) : img, image.caption && image.caption.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14995          tagName: "figcaption",
14996          value: image.caption
14997        })));
14998      }));
14999    },
15000  
15001    migrate(attributes) {
15002      if (isGalleryV2Enabled()) {
15003        return runV2Migration(attributes);
15004      }
15005  
15006      return attributes;
15007    }
15008  
15009  };
15010  const deprecated_v2 = {
15011    attributes: {
15012      images: {
15013        type: 'array',
15014        default: [],
15015        source: 'query',
15016        selector: 'ul.wp-block-gallery .blocks-gallery-item',
15017        query: {
15018          url: {
15019            source: 'attribute',
15020            selector: 'img',
15021            attribute: 'src'
15022          },
15023          alt: {
15024            source: 'attribute',
15025            selector: 'img',
15026            attribute: 'alt',
15027            default: ''
15028          },
15029          id: {
15030            source: 'attribute',
15031            selector: 'img',
15032            attribute: 'data-id'
15033          },
15034          link: {
15035            source: 'attribute',
15036            selector: 'img',
15037            attribute: 'data-link'
15038          },
15039          caption: {
15040            type: 'array',
15041            source: 'children',
15042            selector: 'figcaption'
15043          }
15044        }
15045      },
15046      columns: {
15047        type: 'number'
15048      },
15049      imageCrop: {
15050        type: 'boolean',
15051        default: true
15052      },
15053      linkTo: {
15054        type: 'string',
15055        default: 'none'
15056      }
15057    },
15058  
15059    isEligible(_ref7) {
15060      let {
15061        images,
15062        ids
15063      } = _ref7;
15064      return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || (0,external_lodash_namespaceObject.some)(images, (id, index) => {
15065        if (!id && ids[index] !== null) {
15066          return true;
15067        }
15068  
15069        return parseInt(id, 10) !== ids[index];
15070      }));
15071    },
15072  
15073    migrate(attributes) {
15074      if (isGalleryV2Enabled()) {
15075        return runV2Migration(attributes);
15076      }
15077  
15078      return { ...attributes,
15079        ids: (0,external_lodash_namespaceObject.map)(attributes.images, _ref8 => {
15080          let {
15081            id
15082          } = _ref8;
15083  
15084          if (!id) {
15085            return null;
15086          }
15087  
15088          return parseInt(id, 10);
15089        })
15090      };
15091    },
15092  
15093    supports: {
15094      align: true
15095    },
15096  
15097    save(_ref9) {
15098      let {
15099        attributes
15100      } = _ref9;
15101      const {
15102        images,
15103        columns = defaultColumnsNumberV1(attributes),
15104        imageCrop,
15105        linkTo
15106      } = attributes;
15107      return (0,external_wp_element_namespaceObject.createElement)("ul", {
15108        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`
15109      }, images.map(image => {
15110        let href;
15111  
15112        switch (linkTo) {
15113          case 'media':
15114            href = image.url;
15115            break;
15116  
15117          case 'attachment':
15118            href = image.link;
15119            break;
15120        }
15121  
15122        const img = (0,external_wp_element_namespaceObject.createElement)("img", {
15123          src: image.url,
15124          alt: image.alt,
15125          "data-id": image.id,
15126          "data-link": image.link,
15127          className: image.id ? `wp-image-$image.id}` : null
15128        });
15129        return (0,external_wp_element_namespaceObject.createElement)("li", {
15130          key: image.id || image.url,
15131          className: "blocks-gallery-item"
15132        }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
15133          href: href
15134        }, img) : img, image.caption && image.caption.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
15135          tagName: "figcaption",
15136          value: image.caption
15137        })));
15138      }));
15139    }
15140  
15141  };
15142  const gallery_deprecated_v1 = {
15143    attributes: {
15144      images: {
15145        type: 'array',
15146        default: [],
15147        source: 'query',
15148        selector: 'div.wp-block-gallery figure.blocks-gallery-image img',
15149        query: {
15150          url: {
15151            source: 'attribute',
15152            attribute: 'src'
15153          },
15154          alt: {
15155            source: 'attribute',
15156            attribute: 'alt',
15157            default: ''
15158          },
15159          id: {
15160            source: 'attribute',
15161            attribute: 'data-id'
15162          }
15163        }
15164      },
15165      columns: {
15166        type: 'number'
15167      },
15168      imageCrop: {
15169        type: 'boolean',
15170        default: true
15171      },
15172      linkTo: {
15173        type: 'string',
15174        default: 'none'
15175      },
15176      align: {
15177        type: 'string',
15178        default: 'none'
15179      }
15180    },
15181    supports: {
15182      align: true
15183    },
15184  
15185    save(_ref10) {
15186      let {
15187        attributes
15188      } = _ref10;
15189      const {
15190        images,
15191        columns = defaultColumnsNumberV1(attributes),
15192        align,
15193        imageCrop,
15194        linkTo
15195      } = attributes;
15196      const className = classnames_default()(`columns-$columns}`, {
15197        alignnone: align === 'none',
15198        'is-cropped': imageCrop
15199      });
15200      return (0,external_wp_element_namespaceObject.createElement)("div", {
15201        className: className
15202      }, images.map(image => {
15203        let href;
15204  
15205        switch (linkTo) {
15206          case 'media':
15207            href = image.url;
15208            break;
15209  
15210          case 'attachment':
15211            href = image.link;
15212            break;
15213        }
15214  
15215        const img = (0,external_wp_element_namespaceObject.createElement)("img", {
15216          src: image.url,
15217          alt: image.alt,
15218          "data-id": image.id
15219        });
15220        return (0,external_wp_element_namespaceObject.createElement)("figure", {
15221          key: image.id || image.url,
15222          className: "blocks-gallery-image"
15223        }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
15224          href: href
15225        }, img) : img);
15226      }));
15227    },
15228  
15229    migrate(attributes) {
15230      if (isGalleryV2Enabled()) {
15231        return runV2Migration(attributes);
15232      }
15233  
15234      return attributes;
15235    }
15236  
15237  };
15238  /* harmony default export */ var gallery_deprecated = ([deprecated_v6, deprecated_v5, deprecated_v4, deprecated_v3, deprecated_v2, gallery_deprecated_v1]);
15239  
15240  ;// CONCATENATED MODULE: external ["wp","viewport"]
15241  var external_wp_viewport_namespaceObject = window["wp"]["viewport"];
15242  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js
15243  
15244  
15245  /**
15246   * WordPress dependencies
15247   */
15248  
15249  
15250  const sharedIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
15251    icon: library_gallery
15252  });
15253  
15254  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/constants.js
15255  const MIN_SIZE = 20;
15256  const constants_LINK_DESTINATION_NONE = 'none';
15257  const constants_LINK_DESTINATION_MEDIA = 'media';
15258  const constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
15259  const LINK_DESTINATION_CUSTOM = 'custom';
15260  const constants_NEW_TAB_REL = ['noreferrer', 'noopener'];
15261  const constants_ALLOWED_MEDIA_TYPES = ['image'];
15262  const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0;
15263  
15264  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/utils.js
15265  /**
15266   * Internal dependencies
15267   */
15268  
15269  
15270  /**
15271   * Determines new href and linkDestination values for an image block from the
15272   * supplied Gallery link destination.
15273   *
15274   * @param {Object} image       Gallery image.
15275   * @param {string} destination Gallery's selected link destination.
15276   * @return {Object}            New attributes to assign to image block.
15277   */
15278  
15279  function utils_getHrefAndDestination(image, destination) {
15280    // Gutenberg and WordPress use different constants so if image_default_link_type
15281    // option is set we need to map from the WP Core values.
15282    switch (destination) {
15283      case LINK_DESTINATION_MEDIA_WP_CORE:
15284      case LINK_DESTINATION_MEDIA:
15285        return {
15286          href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
15287          // eslint-disable-line camelcase
15288          linkDestination: constants_LINK_DESTINATION_MEDIA
15289        };
15290  
15291      case LINK_DESTINATION_ATTACHMENT_WP_CORE:
15292      case LINK_DESTINATION_ATTACHMENT:
15293        return {
15294          href: image === null || image === void 0 ? void 0 : image.link,
15295          linkDestination: constants_LINK_DESTINATION_ATTACHMENT
15296        };
15297  
15298      case LINK_DESTINATION_NONE:
15299        return {
15300          href: undefined,
15301          linkDestination: constants_LINK_DESTINATION_NONE
15302        };
15303    }
15304  
15305    return {};
15306  }
15307  
15308  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/utils.js
15309  /**
15310   * External dependencies
15311   */
15312  
15313  /**
15314   * Internal dependencies
15315   */
15316  
15317  
15318  function removeNewTabRel(currentRel) {
15319    let newRel = currentRel;
15320  
15321    if (currentRel !== undefined && !(0,external_lodash_namespaceObject.isEmpty)(newRel)) {
15322      if (!(0,external_lodash_namespaceObject.isEmpty)(newRel)) {
15323        (0,external_lodash_namespaceObject.each)(constants_NEW_TAB_REL, relVal => {
15324          const regExp = new RegExp('\\b' + relVal + '\\b', 'gi');
15325          newRel = newRel.replace(regExp, '');
15326        }); // Only trim if NEW_TAB_REL values was replaced.
15327  
15328        if (newRel !== currentRel) {
15329          newRel = newRel.trim();
15330        }
15331  
15332        if ((0,external_lodash_namespaceObject.isEmpty)(newRel)) {
15333          newRel = undefined;
15334        }
15335      }
15336    }
15337  
15338    return newRel;
15339  }
15340  /**
15341   * Helper to get the link target settings to be stored.
15342   *
15343   * @param {boolean} value          The new link target value.
15344   * @param {Object}  attributes     Block attributes.
15345   * @param {Object}  attributes.rel Image block's rel attribute.
15346   *
15347   * @return {Object} Updated link target settings.
15348   */
15349  
15350  function getUpdatedLinkTargetSettings(value, _ref) {
15351    let {
15352      rel
15353    } = _ref;
15354    const linkTarget = value ? '_blank' : undefined;
15355    let updatedRel;
15356  
15357    if (!linkTarget && !rel) {
15358      updatedRel = undefined;
15359    } else {
15360      updatedRel = removeNewTabRel(rel);
15361    }
15362  
15363    return {
15364      linkTarget,
15365      rel: updatedRel
15366    };
15367  }
15368  /**
15369   * Determines new Image block attributes size selection.
15370   *
15371   * @param {Object} image Media file object for gallery image.
15372   * @param {string} size  Selected size slug to apply.
15373   */
15374  
15375  function getImageSizeAttributes(image, size) {
15376    const url = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size, 'source_url']);
15377  
15378    if (url) {
15379      return {
15380        url,
15381        width: undefined,
15382        height: undefined,
15383        sizeSlug: size
15384      };
15385    }
15386  
15387    return {};
15388  }
15389  
15390  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js
15391  
15392  
15393  
15394  /**
15395   * External dependencies
15396   */
15397  
15398  /**
15399   * WordPress dependencies
15400   */
15401  
15402  
15403  
15404  
15405  
15406  
15407  
15408  const allowedBlocks = ['core/image'];
15409  const Gallery = props => {
15410    const {
15411      attributes,
15412      isSelected,
15413      setAttributes,
15414      mediaPlaceholder,
15415      insertBlocksAfter,
15416      blockProps
15417    } = props;
15418    const {
15419      align,
15420      columns,
15421      caption,
15422      imageCrop
15423    } = attributes;
15424    const {
15425      children,
15426      ...innerBlocksProps
15427    } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
15428      allowedBlocks,
15429      orientation: 'horizontal',
15430      renderAppender: false,
15431      __experimentalLayout: {
15432        type: 'default',
15433        alignments: []
15434      }
15435    });
15436    const [captionFocused, setCaptionFocused] = (0,external_wp_element_namespaceObject.useState)(false);
15437  
15438    function onFocusCaption() {
15439      if (!captionFocused) {
15440        setCaptionFocused(true);
15441      }
15442    }
15443  
15444    function removeCaptionFocus() {
15445      if (captionFocused) {
15446        setCaptionFocused(false);
15447      }
15448    }
15449  
15450    (0,external_wp_element_namespaceObject.useEffect)(() => {
15451      if (!isSelected) {
15452        setCaptionFocused(false);
15453      }
15454    }, [isSelected]);
15455    return (0,external_wp_element_namespaceObject.createElement)("figure", _extends({}, innerBlocksProps, {
15456      className: classnames_default()(blockProps.className, 'blocks-gallery-grid', {
15457        [`align$align}`]: align,
15458        [`columns-$columns}`]: columns !== undefined,
15459        [`columns-default`]: columns === undefined,
15460        'is-cropped': imageCrop
15461      })
15462    }), children, isSelected && !children && (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, {
15463      className: "blocks-gallery-media-placeholder-wrapper",
15464      onClick: removeCaptionFocus
15465    }, mediaPlaceholder), (0,external_wp_element_namespaceObject.createElement)(RichTextVisibilityHelper, {
15466      isHidden: !isSelected && external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption),
15467      captionFocused: captionFocused,
15468      onFocusCaption: onFocusCaption,
15469      tagName: "figcaption",
15470      className: "blocks-gallery-caption",
15471      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
15472      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write gallery caption…'),
15473      value: caption,
15474      onChange: value => setAttributes({
15475        caption: value
15476      }),
15477      inlineToolbar: true,
15478      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
15479    }));
15480  };
15481  
15482  function RichTextVisibilityHelper(_ref) {
15483    let {
15484      isHidden,
15485      captionFocused,
15486      onFocusCaption,
15487      className,
15488      value,
15489      placeholder,
15490      tagName,
15491      captionRef,
15492      ...richTextProps
15493    } = _ref;
15494  
15495    if (isHidden) {
15496      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, _extends({
15497        as: external_wp_blockEditor_namespaceObject.RichText
15498      }, richTextProps));
15499    }
15500  
15501    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
15502      ref: captionRef,
15503      value: value,
15504      placeholder: placeholder,
15505      className: className,
15506      tagName: tagName,
15507      isSelected: captionFocused,
15508      onClick: onFocusCaption
15509    }, richTextProps));
15510  }
15511  
15512  /* harmony default export */ var gallery_gallery = (Gallery);
15513  
15514  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-image-sizes.js
15515  /**
15516   * External dependencies
15517   */
15518  
15519  /**
15520   * WordPress dependencies
15521   */
15522  
15523  
15524  /**
15525   * Calculates the image sizes that are avaible for the current gallery images in order to
15526   * populate the 'Image size' selector.
15527   *
15528   * @param {Array}    images      Basic image block data taken from current gallery innerBlock
15529   * @param {boolean}  isSelected  Is the block currently selected in the editor.
15530   * @param {Function} getSettings Block editor store selector.
15531   *
15532   * @return {Array} An array of image size options.
15533   */
15534  
15535  function useImageSizes(images, isSelected, getSettings) {
15536    return (0,external_wp_element_namespaceObject.useMemo)(() => getImageSizing(), [images, isSelected]);
15537  
15538    function getImageSizing() {
15539      if (!images || images.length === 0) {
15540        return;
15541      }
15542  
15543      const {
15544        imageSizes
15545      } = getSettings();
15546      let resizedImages = {};
15547  
15548      if (isSelected) {
15549        resizedImages = images.reduce((currentResizedImages, img) => {
15550          if (!img.id) {
15551            return currentResizedImages;
15552          }
15553  
15554          const sizes = imageSizes.reduce((currentSizes, size) => {
15555            const defaultUrl = (0,external_lodash_namespaceObject.get)(img, ['sizes', size.slug, 'url']);
15556            const mediaDetailsUrl = (0,external_lodash_namespaceObject.get)(img, ['media_details', 'sizes', size.slug, 'source_url']);
15557            return { ...currentSizes,
15558              [size.slug]: defaultUrl || mediaDetailsUrl
15559            };
15560          }, {});
15561          return { ...currentResizedImages,
15562            [parseInt(img.id, 10)]: sizes
15563          };
15564        }, {});
15565      }
15566  
15567      return imageSizes.filter(_ref => {
15568        let {
15569          slug
15570        } = _ref;
15571        return (0,external_lodash_namespaceObject.some)(resizedImages, sizes => sizes[slug]);
15572      }).map(_ref2 => {
15573        let {
15574          name,
15575          slug
15576        } = _ref2;
15577        return {
15578          value: slug,
15579          label: name
15580        };
15581      });
15582    }
15583  }
15584  
15585  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-short-code-transform.js
15586  /**
15587   * External dependencies
15588   */
15589  
15590  /**
15591   * WordPress dependencies
15592   */
15593  
15594  
15595  
15596  /**
15597   * Shortcode transforms don't currently have a tranform method and so can't use a selector to
15598   * retrieve the data for each image being transformer, so this selector handle this post transformation.
15599   *
15600   * @param {Array} shortCodeTransforms An array of image data passed from the shortcode transform.
15601   *
15602   * @return {Array} An array of extended image data objects for each of the shortcode transform images.
15603   */
15604  
15605  function useShortCodeTransform(shortCodeTransforms) {
15606    const newImageData = (0,external_wp_data_namespaceObject.useSelect)(select => {
15607      if (!shortCodeTransforms || shortCodeTransforms.length === 0) {
15608        return;
15609      }
15610  
15611      const getMedia = select(external_wp_coreData_namespaceObject.store).getMedia;
15612      return shortCodeTransforms.map(image => {
15613        const imageData = getMedia(image.id);
15614  
15615        if (imageData) {
15616          return {
15617            id: imageData.id,
15618            type: 'image',
15619            url: imageData.source_url,
15620            mime: imageData.mime_type,
15621            alt: imageData.alt_text,
15622            link: imageData.link
15623          };
15624        }
15625  
15626        return undefined;
15627      });
15628    }, [shortCodeTransforms]);
15629  
15630    if (!newImageData) {
15631      return;
15632    }
15633  
15634    if ((0,external_lodash_namespaceObject.every)(newImageData, img => img && img.url)) {
15635      return newImageData;
15636    }
15637  }
15638  
15639  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-new-images.js
15640  /**
15641   * WordPress dependencies
15642   */
15643  
15644  /**
15645   * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This
15646   * is required so default gallery attributes can be applied without overwriting any custom
15647   * attributes applied to existing images.
15648   *
15649   * @param {Array} images    Basic image block data taken from current gallery innerBlock
15650   * @param {Array} imageData The related image data for each of the current gallery images.
15651   *
15652   * @return {Array} An array of any new images that have been added to the gallery.
15653   */
15654  
15655  function useGetNewImages(images, imageData) {
15656    const [currentImages, setCurrentImages] = (0,external_wp_element_namespaceObject.useState)([]);
15657    return (0,external_wp_element_namespaceObject.useMemo)(() => getNewImages(), [images, imageData]);
15658  
15659    function getNewImages() {
15660      let imagesUpdated = false; // First lets check if any images have been deleted.
15661  
15662      const newCurrentImages = currentImages.filter(currentImg => images.find(img => {
15663        return currentImg.clientId === img.clientId;
15664      }));
15665  
15666      if (newCurrentImages.length < currentImages.length) {
15667        imagesUpdated = true;
15668      } // Now lets see if we have any images hydrated from saved content and if so
15669      // add them to currentImages state.
15670  
15671  
15672      images.forEach(image => {
15673        if (image.fromSavedContent && !newCurrentImages.find(currentImage => currentImage.id === image.id)) {
15674          imagesUpdated = true;
15675          newCurrentImages.push(image);
15676        }
15677      }); // Now check for any new images that have been added to InnerBlocks and for which
15678      // we have the imageData we need for setting default block attributes.
15679  
15680      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);
15681  
15682      if (imagesUpdated || (newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) {
15683        setCurrentImages([...newCurrentImages, ...newImages]);
15684      }
15685  
15686      return newImages.length > 0 ? newImages : null;
15687    }
15688  }
15689  
15690  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-media.js
15691  /**
15692   * WordPress dependencies
15693   */
15694  
15695  
15696  
15697  /**
15698   * Retrieves the extended media info for each gallery image from the store. This is used to
15699   * determine which image size options are available for the current gallery.
15700   *
15701   * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.
15702   *
15703   * @return {Array} An array of media info options for each gallery image.
15704   */
15705  
15706  function useGetMedia(innerBlockImages) {
15707    const [currentImageMedia, setCurrentImageMedia] = (0,external_wp_element_namespaceObject.useState)([]);
15708    const imageMedia = (0,external_wp_data_namespaceObject.useSelect)(select => {
15709      if (!(innerBlockImages !== null && innerBlockImages !== void 0 && innerBlockImages.length)) {
15710        return currentImageMedia;
15711      }
15712  
15713      const imageIds = innerBlockImages.map(imageBlock => imageBlock.attributes.id).filter(id => id !== undefined);
15714  
15715      if (imageIds.length === 0) {
15716        return currentImageMedia;
15717      }
15718  
15719      return select(external_wp_coreData_namespaceObject.store).getMediaItems({
15720        include: imageIds.join(','),
15721        per_page: -1
15722      });
15723    }, [innerBlockImages]);
15724  
15725    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))) {
15726      setCurrentImageMedia(imageMedia);
15727      return imageMedia;
15728    }
15729  
15730    return currentImageMedia;
15731  }
15732  
15733  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gap-styles.js
15734  
15735  
15736  /**
15737   * WordPress dependencies
15738   */
15739  
15740  
15741  function GapStyles(_ref) {
15742    let {
15743      blockGap,
15744      clientId
15745    } = _ref;
15746    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
15747    // gap on the gallery.
15748  
15749    const gapValue = blockGap ? blockGap : `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
15750    const gap = `#block-$clientId} { 
15751          --wp--style--unstable-gallery-gap: $gapValue};
15752          gap: $gapValue} 
15753      }`;
15754  
15755    const GapStyle = () => {
15756      return (0,external_wp_element_namespaceObject.createElement)("style", null, gap);
15757    };
15758  
15759    return gap && styleElement ? (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(GapStyle, null), styleElement) : null;
15760  }
15761  
15762  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit.js
15763  
15764  
15765  
15766  /**
15767   * External dependencies
15768   */
15769  
15770  
15771  /**
15772   * WordPress dependencies
15773   */
15774  
15775  
15776  
15777  
15778  
15779  
15780  
15781  
15782  
15783  
15784  
15785  
15786  /**
15787   * Internal dependencies
15788   */
15789  
15790  
15791  
15792  
15793  
15794  
15795  
15796  
15797  
15798  
15799  
15800  
15801  const MAX_COLUMNS = 8;
15802  const linkOptions = [{
15803    value: LINK_DESTINATION_ATTACHMENT,
15804    label: (0,external_wp_i18n_namespaceObject.__)('Attachment Page')
15805  }, {
15806    value: LINK_DESTINATION_MEDIA,
15807    label: (0,external_wp_i18n_namespaceObject.__)('Media File')
15808  }, {
15809    value: LINK_DESTINATION_NONE,
15810    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Media item link option')
15811  }];
15812  const edit_ALLOWED_MEDIA_TYPES = ['image'];
15813  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.');
15814  const MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.isNative ? {
15815    type: 'stepper'
15816  } : {};
15817  
15818  function GalleryEdit(props) {
15819    var _attributes$style, _attributes$style$spa;
15820  
15821    const {
15822      setAttributes,
15823      attributes,
15824      className,
15825      clientId,
15826      noticeOperations,
15827      isSelected,
15828      noticeUI,
15829      insertBlocksAfter
15830    } = props;
15831    const {
15832      columns,
15833      imageCrop,
15834      linkTarget,
15835      linkTo,
15836      shortCodeTransforms,
15837      sizeSlug
15838    } = attributes;
15839    const {
15840      __unstableMarkNextChangeAsNotPersistent,
15841      replaceInnerBlocks,
15842      updateBlockAttributes,
15843      selectBlock,
15844      clearSelectedBlock
15845    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
15846    const {
15847      createSuccessNotice
15848    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
15849    const {
15850      getBlock,
15851      getSettings,
15852      preferredStyle
15853    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
15854      var _preferredStyleVariat;
15855  
15856      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
15857      const preferredStyleVariations = settings.__experimentalPreferredStyleVariations;
15858      return {
15859        getBlock: select(external_wp_blockEditor_namespaceObject.store).getBlock,
15860        getSettings: select(external_wp_blockEditor_namespaceObject.store).getSettings,
15861        preferredStyle: preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat['core/image']
15862      };
15863    }, []);
15864    const innerBlockImages = (0,external_wp_data_namespaceObject.useSelect)(select => {
15865      var _select$getBlock;
15866  
15867      return (_select$getBlock = select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId)) === null || _select$getBlock === void 0 ? void 0 : _select$getBlock.innerBlocks;
15868    }, [clientId]);
15869    const wasBlockJustInserted = (0,external_wp_data_namespaceObject.useSelect)(select => {
15870      return select(external_wp_blockEditor_namespaceObject.store).wasBlockJustInserted(clientId, 'inserter_menu');
15871    }, [clientId]);
15872    const images = (0,external_wp_element_namespaceObject.useMemo)(() => innerBlockImages === null || innerBlockImages === void 0 ? void 0 : innerBlockImages.map(block => ({
15873      clientId: block.clientId,
15874      id: block.attributes.id,
15875      url: block.attributes.url,
15876      attributes: block.attributes,
15877      fromSavedContent: Boolean(block.originalContent)
15878    })), [innerBlockImages]);
15879    const imageData = useGetMedia(innerBlockImages);
15880    const newImages = useGetNewImages(images, imageData);
15881    (0,external_wp_element_namespaceObject.useEffect)(() => {
15882      newImages === null || newImages === void 0 ? void 0 : newImages.forEach(newImage => {
15883        updateBlockAttributes(newImage.clientId, { ...buildImageAttributes(newImage.attributes),
15884          id: newImage.id,
15885          align: undefined
15886        });
15887      });
15888  
15889      if ((newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) {
15890        clearSelectedBlock();
15891      }
15892    }, [newImages]);
15893    const shortCodeImages = useShortCodeTransform(shortCodeTransforms);
15894    (0,external_wp_element_namespaceObject.useEffect)(() => {
15895      if (!shortCodeTransforms || !shortCodeImages) {
15896        return;
15897      }
15898  
15899      updateImages(shortCodeImages);
15900      setAttributes({
15901        shortCodeTransforms: undefined
15902      });
15903    }, [shortCodeTransforms, shortCodeImages]);
15904    const imageSizeOptions = useImageSizes(imageData, isSelected, getSettings);
15905    /**
15906     * Determines the image attributes that should be applied to an image block
15907     * after the gallery updates.
15908     *
15909     * The gallery will receive the full collection of images when a new image
15910     * is added. As a result we need to reapply the image's original settings if
15911     * it already existed in the gallery. If the image is in fact new, we need
15912     * to apply the gallery's current settings to the image.
15913     *
15914     * @param {Object} imageAttributes Media object for the actual image.
15915     * @return {Object}                Attributes to set on the new image block.
15916     */
15917  
15918    function buildImageAttributes(imageAttributes) {
15919      const image = imageAttributes.id ? (0,external_lodash_namespaceObject.find)(imageData, {
15920        id: imageAttributes.id
15921      }) : null;
15922      let newClassName;
15923  
15924      if (imageAttributes.className && imageAttributes.className !== '') {
15925        newClassName = imageAttributes.className;
15926      } else {
15927        newClassName = preferredStyle ? `is-style-$preferredStyle}` : undefined;
15928      }
15929  
15930      return { ...pickRelevantMediaFiles(imageAttributes, sizeSlug),
15931        ...utils_getHrefAndDestination(image, linkTo),
15932        ...getUpdatedLinkTargetSettings(linkTarget, attributes),
15933        className: newClassName,
15934        sizeSlug
15935      };
15936    }
15937  
15938    function isValidFileType(file) {
15939      var _file$url;
15940  
15941      return edit_ALLOWED_MEDIA_TYPES.some(mediaType => {
15942        var _file$type;
15943  
15944        return ((_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf(mediaType)) === 0;
15945      }) || ((_file$url = file.url) === null || _file$url === void 0 ? void 0 : _file$url.indexOf('blob:')) === 0;
15946    }
15947  
15948    function updateImages(selectedImages) {
15949      const newFileUploads = Object.prototype.toString.call(selectedImages) === '[object FileList]';
15950      const imageArray = newFileUploads ? Array.from(selectedImages).map(file => {
15951        if (!file.url) {
15952          return pickRelevantMediaFiles({
15953            url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
15954          });
15955        }
15956  
15957        return file;
15958      }) : selectedImages;
15959  
15960      if (!imageArray.every(isValidFileType)) {
15961        noticeOperations.removeAllNotices();
15962        noticeOperations.createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
15963          id: 'gallery-upload-invalid-file'
15964        });
15965      }
15966  
15967      const processedImages = imageArray.filter(file => file.url || isValidFileType(file)).map(file => {
15968        if (!file.url) {
15969          return pickRelevantMediaFiles({
15970            url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
15971          });
15972        }
15973  
15974        return file;
15975      }); // Because we are reusing existing innerImage blocks any reordering
15976      // done in the media library will be lost so we need to reapply that ordering
15977      // once the new image blocks are merged in with existing.
15978  
15979      const newOrderMap = processedImages.reduce((result, image, index) => (result[image.id] = index, result), {});
15980      const existingImageBlocks = !newFileUploads ? innerBlockImages.filter(block => processedImages.find(img => img.id === block.attributes.id)) : innerBlockImages;
15981      const newImageList = processedImages.filter(img => !existingImageBlocks.find(existingImg => img.id === existingImg.attributes.id));
15982      const newBlocks = newImageList.map(image => {
15983        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
15984          id: image.id,
15985          url: image.url,
15986          caption: image.caption,
15987          alt: image.alt
15988        });
15989      });
15990  
15991      if ((newBlocks === null || newBlocks === void 0 ? void 0 : newBlocks.length) > 0) {
15992        selectBlock(newBlocks[0].clientId);
15993      }
15994  
15995      replaceInnerBlocks(clientId, (0,external_lodash_namespaceObject.concat)(existingImageBlocks, newBlocks).sort((a, b) => newOrderMap[a.attributes.id] - newOrderMap[b.attributes.id]));
15996    }
15997  
15998    function onUploadError(message) {
15999      noticeOperations.removeAllNotices();
16000      noticeOperations.createErrorNotice(message);
16001    }
16002  
16003    function setLinkTo(value) {
16004      setAttributes({
16005        linkTo: value
16006      });
16007      const changedAttributes = {};
16008      const blocks = [];
16009      getBlock(clientId).innerBlocks.forEach(block => {
16010        blocks.push(block.clientId);
16011        const image = block.attributes.id ? (0,external_lodash_namespaceObject.find)(imageData, {
16012          id: block.attributes.id
16013        }) : null;
16014        changedAttributes[block.clientId] = utils_getHrefAndDestination(image, value);
16015      });
16016      updateBlockAttributes(blocks, changedAttributes, true);
16017      const linkToText = [...linkOptions].find(linkType => linkType.value === value);
16018      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
16019      /* translators: %s: image size settings */
16020      (0,external_wp_i18n_namespaceObject.__)('All gallery image links updated to: %s'), linkToText.label), {
16021        id: 'gallery-attributes-linkTo',
16022        type: 'snackbar'
16023      });
16024    }
16025  
16026    function setColumnsNumber(value) {
16027      setAttributes({
16028        columns: value
16029      });
16030    }
16031  
16032    function toggleImageCrop() {
16033      setAttributes({
16034        imageCrop: !imageCrop
16035      });
16036    }
16037  
16038    function getImageCropHelp(checked) {
16039      return checked ? (0,external_wp_i18n_namespaceObject.__)('Thumbnails are cropped to align.') : (0,external_wp_i18n_namespaceObject.__)('Thumbnails are not cropped.');
16040    }
16041  
16042    function toggleOpenInNewTab(openInNewTab) {
16043      const newLinkTarget = openInNewTab ? '_blank' : undefined;
16044      setAttributes({
16045        linkTarget: newLinkTarget
16046      });
16047      const changedAttributes = {};
16048      const blocks = [];
16049      getBlock(clientId).innerBlocks.forEach(block => {
16050        blocks.push(block.clientId);
16051        changedAttributes[block.clientId] = getUpdatedLinkTargetSettings(newLinkTarget, block.attributes);
16052      });
16053      updateBlockAttributes(blocks, changedAttributes, true);
16054      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');
16055      createSuccessNotice(noticeText, {
16056        id: 'gallery-attributes-openInNewTab',
16057        type: 'snackbar'
16058      });
16059    }
16060  
16061    function updateImagesSize(newSizeSlug) {
16062      setAttributes({
16063        sizeSlug: newSizeSlug
16064      });
16065      const changedAttributes = {};
16066      const blocks = [];
16067      getBlock(clientId).innerBlocks.forEach(block => {
16068        blocks.push(block.clientId);
16069        const image = block.attributes.id ? (0,external_lodash_namespaceObject.find)(imageData, {
16070          id: block.attributes.id
16071        }) : null;
16072        changedAttributes[block.clientId] = getImageSizeAttributes(image, newSizeSlug);
16073      });
16074      updateBlockAttributes(blocks, changedAttributes, true);
16075      const imageSize = imageSizeOptions.find(size => size.value === newSizeSlug);
16076      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
16077      /* translators: %s: image size settings */
16078      (0,external_wp_i18n_namespaceObject.__)('All gallery image sizes updated to: %s'), imageSize.label), {
16079        id: 'gallery-attributes-sizeSlug',
16080        type: 'snackbar'
16081      });
16082    }
16083  
16084    (0,external_wp_element_namespaceObject.useEffect)(() => {
16085      // linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.
16086      if (!linkTo) {
16087        var _window, _window$wp, _window$wp$media, _window$wp$media$view, _window$wp$media$view2, _window$wp$media$view3;
16088  
16089        __unstableMarkNextChangeAsNotPersistent();
16090  
16091        setAttributes({
16092          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
16093        });
16094      }
16095    }, [linkTo]);
16096    const hasImages = !!images.length;
16097    const hasImageIds = hasImages && images.some(image => !!image.id);
16098    const imagesUploading = images.some(img => {
16099      var _img$url;
16100  
16101      return !img.id && ((_img$url = img.url) === null || _img$url === void 0 ? void 0 : _img$url.indexOf('blob:')) === 0;
16102    }); // MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.
16103  
16104    const mediaPlaceholderProps = external_wp_element_namespaceObject.Platform.select({
16105      web: {
16106        addToGallery: false,
16107        disableMediaButtons: imagesUploading,
16108        value: {}
16109      },
16110      native: {
16111        addToGallery: hasImageIds,
16112        isAppender: hasImages,
16113        disableMediaButtons: hasImages && !isSelected || imagesUploading,
16114        value: hasImageIds ? images : {},
16115        autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted
16116      }
16117    });
16118    const mediaPlaceholder = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, _extends({
16119      handleUpload: false,
16120      icon: sharedIcon,
16121      labels: {
16122        title: (0,external_wp_i18n_namespaceObject.__)('Gallery'),
16123        instructions: PLACEHOLDER_TEXT
16124      },
16125      onSelect: updateImages,
16126      accept: "image/*",
16127      allowedTypes: edit_ALLOWED_MEDIA_TYPES,
16128      multiple: true,
16129      onError: onUploadError,
16130      notices: noticeUI
16131    }, mediaPlaceholderProps));
16132    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
16133      className: classnames_default()(className, 'has-nested-images')
16134    });
16135  
16136    if (!hasImages) {
16137      return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, mediaPlaceholder);
16138    }
16139  
16140    const hasLinkTo = linkTo && linkTo !== 'none';
16141    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, {
16142      title: (0,external_wp_i18n_namespaceObject.__)('Gallery settings')
16143    }, images.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, _extends({
16144      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
16145      value: columns ? columns : defaultColumnsNumber(images.length),
16146      onChange: setColumnsNumber,
16147      min: 1,
16148      max: Math.min(MAX_COLUMNS, images.length)
16149    }, MOBILE_CONTROL_PROPS_RANGE_CONTROL, {
16150      required: true
16151    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
16152      label: (0,external_wp_i18n_namespaceObject.__)('Crop images'),
16153      checked: !!imageCrop,
16154      onChange: toggleImageCrop,
16155      help: getImageCropHelp
16156    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
16157      label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
16158      value: linkTo,
16159      onChange: setLinkTo,
16160      options: linkOptions,
16161      hideCancelButton: true
16162    }), hasLinkTo && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
16163      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
16164      checked: linkTarget === '_blank',
16165      onChange: toggleOpenInNewTab
16166    }), (imageSizeOptions === null || imageSizeOptions === void 0 ? void 0 : imageSizeOptions.length) > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
16167      label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
16168      value: sizeSlug,
16169      options: imageSizeOptions,
16170      onChange: updateImagesSize,
16171      hideCancelButton: true
16172    }), external_wp_element_namespaceObject.Platform.isWeb && !imageSizeOptions && hasImageIds && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
16173      className: 'gallery-image-sizes'
16174    }, (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, {
16175      className: 'gallery-image-sizes__loading'
16176    }, (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, {
16177      group: "other"
16178    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
16179      allowedTypes: edit_ALLOWED_MEDIA_TYPES,
16180      accept: "image/*",
16181      handleUpload: false,
16182      onSelect: updateImages,
16183      name: (0,external_wp_i18n_namespaceObject.__)('Add'),
16184      multiple: true,
16185      mediaIds: images.map(image => image.id),
16186      addToGallery: hasImageIds
16187    })), noticeUI, external_wp_element_namespaceObject.Platform.isWeb && (0,external_wp_element_namespaceObject.createElement)(GapStyles, {
16188      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,
16189      clientId: clientId
16190    }), (0,external_wp_element_namespaceObject.createElement)(gallery_gallery, _extends({}, props, {
16191      images: images,
16192      mediaPlaceholder: !hasImages || external_wp_element_namespaceObject.Platform.isNative ? mediaPlaceholder : undefined,
16193      blockProps: blockProps,
16194      insertBlocksAfter: insertBlocksAfter
16195    })));
16196  }
16197  
16198  /* harmony default export */ var gallery_edit = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices, (0,external_wp_viewport_namespaceObject.withViewportMatch)({
16199    isNarrow: '< small'
16200  })])(GalleryEdit));
16201  
16202  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/shared.js
16203  /**
16204   * External dependencies
16205   */
16206  
16207  const shared_pickRelevantMediaFiles = function (image) {
16208    let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
16209    const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']);
16210    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;
16211    const fullUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', 'full', 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', 'full', 'source_url']);
16212  
16213    if (fullUrl) {
16214      imageProps.fullUrl = fullUrl;
16215    }
16216  
16217    return imageProps;
16218  };
16219  
16220  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/image.js
16221  
16222  
16223  /**
16224   * WordPress dependencies
16225   */
16226  
16227  const image_image = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
16228    viewBox: "0 0 24 24",
16229    xmlns: "http://www.w3.org/2000/svg"
16230  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
16231    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"
16232  }));
16233  /* harmony default export */ var library_image = (image_image);
16234  
16235  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js
16236  
16237  
16238  /**
16239   * WordPress dependencies
16240   */
16241  
16242  const chevronLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
16243    xmlns: "http://www.w3.org/2000/svg",
16244    viewBox: "0 0 24 24"
16245  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
16246    d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
16247  }));
16248  /* harmony default export */ var chevron_left = (chevronLeft);
16249  
16250  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js
16251  
16252  
16253  /**
16254   * WordPress dependencies
16255   */
16256  
16257  const chevronRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
16258    xmlns: "http://www.w3.org/2000/svg",
16259    viewBox: "0 0 24 24"
16260  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
16261    d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
16262  }));
16263  /* harmony default export */ var chevron_right = (chevronRight);
16264  
16265  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
16266  
16267  
16268  /**
16269   * WordPress dependencies
16270   */
16271  
16272  const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
16273    xmlns: "http://www.w3.org/2000/svg",
16274    viewBox: "0 0 24 24"
16275  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
16276    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"
16277  }));
16278  /* harmony default export */ var close_small = (closeSmall);
16279  
16280  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/constants.js
16281  const v1_constants_LINK_DESTINATION_NONE = 'none';
16282  const v1_constants_LINK_DESTINATION_MEDIA = 'file';
16283  const v1_constants_LINK_DESTINATION_ATTACHMENT = 'post';
16284  
16285  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/gallery-image.js
16286  
16287  
16288  /**
16289   * External dependencies
16290   */
16291  
16292  
16293  /**
16294   * WordPress dependencies
16295   */
16296  
16297  
16298  
16299  
16300  
16301  
16302  
16303  
16304  
16305  
16306  
16307  /**
16308   * Internal dependencies
16309   */
16310  
16311  
16312  
16313  
16314  const isTemporaryImage = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);
16315  
16316  class GalleryImage extends external_wp_element_namespaceObject.Component {
16317    constructor() {
16318      super(...arguments);
16319      this.onSelectImage = this.onSelectImage.bind(this);
16320      this.onRemoveImage = this.onRemoveImage.bind(this);
16321      this.bindContainer = this.bindContainer.bind(this);
16322      this.onEdit = this.onEdit.bind(this);
16323      this.onSelectImageFromLibrary = this.onSelectImageFromLibrary.bind(this);
16324      this.onSelectCustomURL = this.onSelectCustomURL.bind(this);
16325      this.state = {
16326        isEditing: false
16327      };
16328    }
16329  
16330    bindContainer(ref) {
16331      this.container = ref;
16332    }
16333  
16334    onSelectImage() {
16335      if (!this.props.isSelected) {
16336        this.props.onSelect();
16337      }
16338    }
16339  
16340    onRemoveImage(event) {
16341      if (this.container === this.container.ownerDocument.activeElement && this.props.isSelected && [external_wp_keycodes_namespaceObject.BACKSPACE, external_wp_keycodes_namespaceObject.DELETE].indexOf(event.keyCode) !== -1) {
16342        event.preventDefault();
16343        this.props.onRemove();
16344      }
16345    }
16346  
16347    onEdit() {
16348      this.setState({
16349        isEditing: true
16350      });
16351    }
16352  
16353    componentDidUpdate() {
16354      const {
16355        image,
16356        url,
16357        __unstableMarkNextChangeAsNotPersistent
16358      } = this.props;
16359  
16360      if (image && !url) {
16361        __unstableMarkNextChangeAsNotPersistent();
16362  
16363        this.props.setAttributes({
16364          url: image.source_url,
16365          alt: image.alt_text
16366        });
16367      }
16368    }
16369  
16370    deselectOnBlur() {
16371      this.props.onDeselect();
16372    }
16373  
16374    onSelectImageFromLibrary(media) {
16375      const {
16376        setAttributes,
16377        id,
16378        url,
16379        alt,
16380        caption,
16381        sizeSlug
16382      } = this.props;
16383  
16384      if (!media || !media.url) {
16385        return;
16386      }
16387  
16388      let mediaAttributes = shared_pickRelevantMediaFiles(media, sizeSlug); // If the current image is temporary but an alt text was meanwhile
16389      // written by the user, make sure the text is not overwritten.
16390  
16391      if (isTemporaryImage(id, url)) {
16392        if (alt) {
16393          mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['alt']);
16394        }
16395      } // If a caption text was meanwhile written by the user,
16396      // make sure the text is not overwritten by empty captions.
16397  
16398  
16399      if (caption && !(0,external_lodash_namespaceObject.get)(mediaAttributes, ['caption'])) {
16400        mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['caption']);
16401      }
16402  
16403      setAttributes(mediaAttributes);
16404      this.setState({
16405        isEditing: false
16406      });
16407    }
16408  
16409    onSelectCustomURL(newURL) {
16410      const {
16411        setAttributes,
16412        url
16413      } = this.props;
16414  
16415      if (newURL !== url) {
16416        setAttributes({
16417          url: newURL,
16418          id: undefined
16419        });
16420        this.setState({
16421          isEditing: false
16422        });
16423      }
16424    }
16425  
16426    render() {
16427      const {
16428        url,
16429        alt,
16430        id,
16431        linkTo,
16432        link,
16433        isFirstItem,
16434        isLastItem,
16435        isSelected,
16436        caption,
16437        onRemove,
16438        onMoveForward,
16439        onMoveBackward,
16440        setAttributes,
16441        'aria-label': ariaLabel
16442      } = this.props;
16443      const {
16444        isEditing
16445      } = this.state;
16446      let href;
16447  
16448      switch (linkTo) {
16449        case v1_constants_LINK_DESTINATION_MEDIA:
16450          href = url;
16451          break;
16452  
16453        case v1_constants_LINK_DESTINATION_ATTACHMENT:
16454          href = link;
16455          break;
16456      }
16457  
16458      const img = // Disable reason: Image itself is not meant to be interactive, but should
16459      // direct image selection and unfocus caption fields.
16460  
16461      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
16462      (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("img", {
16463        src: url,
16464        alt: alt,
16465        "data-id": id,
16466        onKeyDown: this.onRemoveImage,
16467        tabIndex: "0",
16468        "aria-label": ariaLabel,
16469        ref: this.bindContainer
16470      }), (0,external_wp_blob_namespaceObject.isBlobURL)(url) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))
16471      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
16472      ;
16473      const className = classnames_default()({
16474        'is-selected': isSelected,
16475        'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(url)
16476      });
16477      return (// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
16478        (0,external_wp_element_namespaceObject.createElement)("figure", {
16479          className: className,
16480          onClick: this.onSelectImage,
16481          onFocus: this.onSelectImage
16482        }, !isEditing && (href ? (0,external_wp_element_namespaceObject.createElement)("a", {
16483          href: href
16484        }, img) : img), isEditing && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
16485          labels: {
16486            title: (0,external_wp_i18n_namespaceObject.__)('Edit gallery image')
16487          },
16488          icon: library_image,
16489          onSelect: this.onSelectImageFromLibrary,
16490          onSelectURL: this.onSelectCustomURL,
16491          accept: "image/*",
16492          allowedTypes: ['image'],
16493          value: {
16494            id,
16495            src: url
16496          }
16497        }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
16498          className: "block-library-gallery-item__inline-menu is-left"
16499        }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
16500          icon: chevron_left,
16501          onClick: isFirstItem ? undefined : onMoveBackward,
16502          label: (0,external_wp_i18n_namespaceObject.__)('Move image backward'),
16503          "aria-disabled": isFirstItem,
16504          disabled: !isSelected
16505        }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
16506          icon: chevron_right,
16507          onClick: isLastItem ? undefined : onMoveForward,
16508          label: (0,external_wp_i18n_namespaceObject.__)('Move image forward'),
16509          "aria-disabled": isLastItem,
16510          disabled: !isSelected
16511        })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
16512          className: "block-library-gallery-item__inline-menu is-right"
16513        }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
16514          icon: library_edit,
16515          onClick: this.onEdit,
16516          label: (0,external_wp_i18n_namespaceObject.__)('Replace image'),
16517          disabled: !isSelected
16518        }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
16519          icon: close_small,
16520          onClick: onRemove,
16521          label: (0,external_wp_i18n_namespaceObject.__)('Remove image'),
16522          disabled: !isSelected
16523        })), !isEditing && (isSelected || caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
16524          tagName: "figcaption",
16525          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
16526          placeholder: isSelected ? (0,external_wp_i18n_namespaceObject.__)('Add caption') : null,
16527          value: caption,
16528          onChange: newCaption => setAttributes({
16529            caption: newCaption
16530          }),
16531          inlineToolbar: true
16532        }))
16533      );
16534    }
16535  
16536  }
16537  
16538  /* harmony default export */ var gallery_image = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, ownProps) => {
16539    const {
16540      getMedia
16541    } = select(external_wp_coreData_namespaceObject.store);
16542    const {
16543      id
16544    } = ownProps;
16545    return {
16546      image: id ? getMedia(parseInt(id, 10)) : null
16547    };
16548  }), (0,external_wp_data_namespaceObject.withDispatch)(dispatch => {
16549    const {
16550      __unstableMarkNextChangeAsNotPersistent
16551    } = dispatch(external_wp_blockEditor_namespaceObject.store);
16552    return {
16553      __unstableMarkNextChangeAsNotPersistent
16554    };
16555  })])(GalleryImage));
16556  
16557  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/gallery.js
16558  
16559  
16560  
16561  /**
16562   * External dependencies
16563   */
16564  
16565  /**
16566   * WordPress dependencies
16567   */
16568  
16569  
16570  
16571  
16572  
16573  /**
16574   * Internal dependencies
16575   */
16576  
16577  
16578  
16579  const gallery_Gallery = props => {
16580    const {
16581      attributes,
16582      isSelected,
16583      setAttributes,
16584      selectedImage,
16585      mediaPlaceholder,
16586      onMoveBackward,
16587      onMoveForward,
16588      onRemoveImage,
16589      onSelectImage,
16590      onDeselectImage,
16591      onSetImageAttributes,
16592      insertBlocksAfter,
16593      blockProps
16594    } = props;
16595    const {
16596      align,
16597      columns = defaultColumnsNumberV1(attributes),
16598      caption,
16599      imageCrop,
16600      images
16601    } = attributes;
16602    return (0,external_wp_element_namespaceObject.createElement)("figure", _extends({}, blockProps, {
16603      className: classnames_default()(blockProps.className, {
16604        [`align$align}`]: align,
16605        [`columns-$columns}`]: columns,
16606        'is-cropped': imageCrop
16607      })
16608    }), (0,external_wp_element_namespaceObject.createElement)("ul", {
16609      className: "blocks-gallery-grid"
16610    }, images.map((img, index) => {
16611      const ariaLabel = (0,external_wp_i18n_namespaceObject.sprintf)(
16612      /* translators: 1: the order number of the image. 2: the total number of images. */
16613      (0,external_wp_i18n_namespaceObject.__)('image %1$d of %2$d in gallery'), index + 1, images.length);
16614      return (0,external_wp_element_namespaceObject.createElement)("li", {
16615        className: "blocks-gallery-item",
16616        key: img.id ? `$img.id}-$index}` : img.url
16617      }, (0,external_wp_element_namespaceObject.createElement)(gallery_image, {
16618        url: img.url,
16619        alt: img.alt,
16620        id: img.id,
16621        isFirstItem: index === 0,
16622        isLastItem: index + 1 === images.length,
16623        isSelected: isSelected && selectedImage === index,
16624        onMoveBackward: onMoveBackward(index),
16625        onMoveForward: onMoveForward(index),
16626        onRemove: onRemoveImage(index),
16627        onSelect: onSelectImage(index),
16628        onDeselect: onDeselectImage(index),
16629        setAttributes: attrs => onSetImageAttributes(index, attrs),
16630        caption: img.caption,
16631        "aria-label": ariaLabel,
16632        sizeSlug: attributes.sizeSlug
16633      }));
16634    })), mediaPlaceholder, (0,external_wp_element_namespaceObject.createElement)(gallery_RichTextVisibilityHelper, {
16635      isHidden: !isSelected && external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption),
16636      tagName: "figcaption",
16637      className: "blocks-gallery-caption",
16638      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
16639      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write gallery caption…'),
16640      value: caption,
16641      onChange: value => setAttributes({
16642        caption: value
16643      }),
16644      inlineToolbar: true,
16645      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
16646    }));
16647  };
16648  
16649  function gallery_RichTextVisibilityHelper(_ref) {
16650    let {
16651      isHidden,
16652      ...richTextProps
16653    } = _ref;
16654    return isHidden ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, _extends({
16655      as: external_wp_blockEditor_namespaceObject.RichText
16656    }, richTextProps)) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, richTextProps);
16657  }
16658  
16659  /* harmony default export */ var v1_gallery = (gallery_Gallery);
16660  
16661  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/edit.js
16662  
16663  
16664  
16665  /**
16666   * External dependencies
16667   */
16668  
16669  /**
16670   * WordPress dependencies
16671   */
16672  
16673  
16674  
16675  
16676  
16677  
16678  
16679  
16680  
16681  
16682  
16683  /**
16684   * Internal dependencies
16685   */
16686  
16687  
16688  
16689  
16690  
16691  
16692  const edit_MAX_COLUMNS = 8;
16693  const edit_linkOptions = [{
16694    value: v1_constants_LINK_DESTINATION_ATTACHMENT,
16695    label: (0,external_wp_i18n_namespaceObject.__)('Attachment Page')
16696  }, {
16697    value: v1_constants_LINK_DESTINATION_MEDIA,
16698    label: (0,external_wp_i18n_namespaceObject.__)('Media File')
16699  }, {
16700    value: v1_constants_LINK_DESTINATION_NONE,
16701    label: (0,external_wp_i18n_namespaceObject.__)('None')
16702  }];
16703  const v1_edit_ALLOWED_MEDIA_TYPES = ['image'];
16704  const edit_PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.select({
16705    web: (0,external_wp_i18n_namespaceObject.__)('Drag images, upload new ones or select files from your library.'),
16706    native: (0,external_wp_i18n_namespaceObject.__)('ADD MEDIA')
16707  });
16708  const edit_MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.select({
16709    web: {},
16710    native: {
16711      type: 'stepper'
16712    }
16713  });
16714  
16715  function edit_GalleryEdit(props) {
16716    const {
16717      attributes,
16718      clientId,
16719      isSelected,
16720      noticeUI,
16721      noticeOperations,
16722      onFocus
16723    } = props;
16724    const {
16725      columns = defaultColumnsNumberV1(attributes),
16726      imageCrop,
16727      images,
16728      linkTo,
16729      sizeSlug
16730    } = attributes;
16731    const [selectedImage, setSelectedImage] = (0,external_wp_element_namespaceObject.useState)();
16732    const [attachmentCaptions, setAttachmentCaptions] = (0,external_wp_element_namespaceObject.useState)();
16733    const {
16734      __unstableMarkNextChangeAsNotPersistent
16735    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
16736    const {
16737      imageSizes,
16738      mediaUpload,
16739      getMedia,
16740      wasBlockJustInserted
16741    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
16742      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
16743      return {
16744        imageSizes: settings.imageSizes,
16745        mediaUpload: settings.mediaUpload,
16746        getMedia: select(external_wp_coreData_namespaceObject.store).getMedia,
16747        wasBlockJustInserted: select(external_wp_blockEditor_namespaceObject.store).wasBlockJustInserted(clientId, 'inserter_menu')
16748      };
16749    });
16750    const resizedImages = (0,external_wp_element_namespaceObject.useMemo)(() => {
16751      if (isSelected) {
16752        return (0,external_lodash_namespaceObject.reduce)(attributes.ids, (currentResizedImages, id) => {
16753          if (!id) {
16754            return currentResizedImages;
16755          }
16756  
16757          const image = getMedia(id);
16758          const sizes = (0,external_lodash_namespaceObject.reduce)(imageSizes, (currentSizes, size) => {
16759            const defaultUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', size.slug, 'url']);
16760            const mediaDetailsUrl = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size.slug, 'source_url']);
16761            return { ...currentSizes,
16762              [size.slug]: defaultUrl || mediaDetailsUrl
16763            };
16764          }, {});
16765          return { ...currentResizedImages,
16766            [parseInt(id, 10)]: sizes
16767          };
16768        }, {});
16769      }
16770  
16771      return {};
16772    }, [isSelected, attributes.ids, imageSizes]);
16773  
16774    function onFocusGalleryCaption() {
16775      setSelectedImage();
16776    }
16777  
16778    function setAttributes(newAttrs) {
16779      if (newAttrs.ids) {
16780        throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');
16781      }
16782  
16783      if (newAttrs.images) {
16784        newAttrs = { ...newAttrs,
16785          // Unlike images[ n ].id which is a string, always ensure the
16786          // ids array contains numbers as per its attribute type.
16787          ids: (0,external_lodash_namespaceObject.map)(newAttrs.images, _ref => {
16788            let {
16789              id
16790            } = _ref;
16791            return parseInt(id, 10);
16792          })
16793        };
16794      }
16795  
16796      props.setAttributes(newAttrs);
16797    }
16798  
16799    function onSelectImage(index) {
16800      return () => {
16801        setSelectedImage(index);
16802      };
16803    }
16804  
16805    function onDeselectImage() {
16806      return () => {
16807        setSelectedImage();
16808      };
16809    }
16810  
16811    function onMove(oldIndex, newIndex) {
16812      const newImages = [...images];
16813      newImages.splice(newIndex, 1, images[oldIndex]);
16814      newImages.splice(oldIndex, 1, images[newIndex]);
16815      setSelectedImage(newIndex);
16816      setAttributes({
16817        images: newImages
16818      });
16819    }
16820  
16821    function onMoveForward(oldIndex) {
16822      return () => {
16823        if (oldIndex === images.length - 1) {
16824          return;
16825        }
16826  
16827        onMove(oldIndex, oldIndex + 1);
16828      };
16829    }
16830  
16831    function onMoveBackward(oldIndex) {
16832      return () => {
16833        if (oldIndex === 0) {
16834          return;
16835        }
16836  
16837        onMove(oldIndex, oldIndex - 1);
16838      };
16839    }
16840  
16841    function onRemoveImage(index) {
16842      return () => {
16843        const newImages = (0,external_lodash_namespaceObject.filter)(images, (img, i) => index !== i);
16844        setSelectedImage();
16845        setAttributes({
16846          images: newImages,
16847          columns: attributes.columns ? Math.min(newImages.length, attributes.columns) : attributes.columns
16848        });
16849      };
16850    }
16851  
16852    function selectCaption(newImage) {
16853      // The image id in both the images and attachmentCaptions arrays is a
16854      // string, so ensure comparison works correctly by converting the
16855      // newImage.id to a string.
16856      const newImageId = (0,external_lodash_namespaceObject.toString)(newImage.id);
16857      const currentImage = (0,external_lodash_namespaceObject.find)(images, {
16858        id: newImageId
16859      });
16860      const currentImageCaption = currentImage ? currentImage.caption : newImage.caption;
16861  
16862      if (!attachmentCaptions) {
16863        return currentImageCaption;
16864      }
16865  
16866      const attachment = (0,external_lodash_namespaceObject.find)(attachmentCaptions, {
16867        id: newImageId
16868      }); // If the attachment caption is updated.
16869  
16870      if (attachment && attachment.caption !== newImage.caption) {
16871        return newImage.caption;
16872      }
16873  
16874      return currentImageCaption;
16875    }
16876  
16877    function onSelectImages(newImages) {
16878      setAttachmentCaptions(newImages.map(newImage => ({
16879        // Store the attachmentCaption id as a string for consistency
16880        // with the type of the id in the images attribute.
16881        id: (0,external_lodash_namespaceObject.toString)(newImage.id),
16882        caption: newImage.caption
16883      })));
16884      setAttributes({
16885        images: newImages.map(newImage => ({ ...shared_pickRelevantMediaFiles(newImage, sizeSlug),
16886          caption: selectCaption(newImage, images, attachmentCaptions),
16887          // The id value is stored in a data attribute, so when the
16888          // block is parsed it's converted to a string. Converting
16889          // to a string here ensures it's type is consistent.
16890          id: (0,external_lodash_namespaceObject.toString)(newImage.id)
16891        })),
16892        columns: attributes.columns ? Math.min(newImages.length, attributes.columns) : attributes.columns
16893      });
16894    }
16895  
16896    function onUploadError(message) {
16897      noticeOperations.removeAllNotices();
16898      noticeOperations.createErrorNotice(message);
16899    }
16900  
16901    function setLinkTo(value) {
16902      setAttributes({
16903        linkTo: value
16904      });
16905    }
16906  
16907    function setColumnsNumber(value) {
16908      setAttributes({
16909        columns: value
16910      });
16911    }
16912  
16913    function toggleImageCrop() {
16914      setAttributes({
16915        imageCrop: !imageCrop
16916      });
16917    }
16918  
16919    function getImageCropHelp(checked) {
16920      return checked ? (0,external_wp_i18n_namespaceObject.__)('Thumbnails are cropped to align.') : (0,external_wp_i18n_namespaceObject.__)('Thumbnails are not cropped.');
16921    }
16922  
16923    function setImageAttributes(index, newAttributes) {
16924      if (!images[index]) {
16925        return;
16926      }
16927  
16928      setAttributes({
16929        images: [...images.slice(0, index), { ...images[index],
16930          ...newAttributes
16931        }, ...images.slice(index + 1)]
16932      });
16933    }
16934  
16935    function getImagesSizeOptions() {
16936      return (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref2 => {
16937        let {
16938          slug
16939        } = _ref2;
16940        return (0,external_lodash_namespaceObject.some)(resizedImages, sizes => sizes[slug]);
16941      }), _ref3 => {
16942        let {
16943          name,
16944          slug
16945        } = _ref3;
16946        return {
16947          value: slug,
16948          label: name
16949        };
16950      });
16951    }
16952  
16953    function updateImagesSize(newSizeSlug) {
16954      const updatedImages = (0,external_lodash_namespaceObject.map)(images, image => {
16955        if (!image.id) {
16956          return image;
16957        }
16958  
16959        const url = (0,external_lodash_namespaceObject.get)(resizedImages, [parseInt(image.id, 10), newSizeSlug]);
16960        return { ...image,
16961          ...(url && {
16962            url
16963          })
16964        };
16965      });
16966      setAttributes({
16967        images: updatedImages,
16968        sizeSlug: newSizeSlug
16969      });
16970    }
16971  
16972    (0,external_wp_element_namespaceObject.useEffect)(() => {
16973      if (external_wp_element_namespaceObject.Platform.OS === 'web' && images && images.length > 0 && (0,external_lodash_namespaceObject.every)(images, _ref4 => {
16974        let {
16975          url
16976        } = _ref4;
16977        return (0,external_wp_blob_namespaceObject.isBlobURL)(url);
16978      })) {
16979        const filesList = (0,external_lodash_namespaceObject.map)(images, _ref5 => {
16980          let {
16981            url
16982          } = _ref5;
16983          return (0,external_wp_blob_namespaceObject.getBlobByURL)(url);
16984        });
16985        (0,external_lodash_namespaceObject.forEach)(images, _ref6 => {
16986          let {
16987            url
16988          } = _ref6;
16989          return (0,external_wp_blob_namespaceObject.revokeBlobURL)(url);
16990        });
16991        mediaUpload({
16992          filesList,
16993          onFileChange: onSelectImages,
16994          allowedTypes: ['image']
16995        });
16996      }
16997    }, []);
16998    (0,external_wp_element_namespaceObject.useEffect)(() => {
16999      // Deselect images when deselecting the block.
17000      if (!isSelected) {
17001        setSelectedImage();
17002      }
17003    }, [isSelected]);
17004    (0,external_wp_element_namespaceObject.useEffect)(() => {
17005      // linkTo attribute must be saved so blocks don't break when changing
17006      // image_default_link_type in options.php.
17007      if (!linkTo) {
17008        var _window, _window$wp, _window$wp$media, _window$wp$media$view, _window$wp$media$view2, _window$wp$media$view3;
17009  
17010        __unstableMarkNextChangeAsNotPersistent();
17011  
17012        setAttributes({
17013          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
17014        });
17015      }
17016    }, [linkTo]);
17017    const hasImages = !!images.length;
17018    const hasImageIds = hasImages && images.some(image => !!image.id);
17019    const mediaPlaceholder = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
17020      addToGallery: hasImageIds,
17021      isAppender: hasImages,
17022      disableMediaButtons: hasImages && !isSelected,
17023      icon: !hasImages && sharedIcon,
17024      labels: {
17025        title: !hasImages && (0,external_wp_i18n_namespaceObject.__)('Gallery'),
17026        instructions: !hasImages && edit_PLACEHOLDER_TEXT
17027      },
17028      onSelect: onSelectImages,
17029      accept: "image/*",
17030      allowedTypes: v1_edit_ALLOWED_MEDIA_TYPES,
17031      multiple: true,
17032      value: hasImageIds ? images : {},
17033      onError: onUploadError,
17034      notices: hasImages ? undefined : noticeUI,
17035      onFocus: onFocus,
17036      autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted
17037    });
17038    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
17039  
17040    if (!hasImages) {
17041      return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, mediaPlaceholder);
17042    }
17043  
17044    const imageSizeOptions = getImagesSizeOptions();
17045    const shouldShowSizeOptions = hasImages && !(0,external_lodash_namespaceObject.isEmpty)(imageSizeOptions);
17046    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, {
17047      title: (0,external_wp_i18n_namespaceObject.__)('Gallery settings')
17048    }, images.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, _extends({
17049      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
17050      value: columns,
17051      onChange: setColumnsNumber,
17052      min: 1,
17053      max: Math.min(edit_MAX_COLUMNS, images.length)
17054    }, edit_MOBILE_CONTROL_PROPS_RANGE_CONTROL, {
17055      required: true
17056    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
17057      label: (0,external_wp_i18n_namespaceObject.__)('Crop images'),
17058      checked: !!imageCrop,
17059      onChange: toggleImageCrop,
17060      help: getImageCropHelp
17061    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
17062      label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
17063      value: linkTo,
17064      onChange: setLinkTo,
17065      options: edit_linkOptions,
17066      hideCancelButton: true
17067    }), shouldShowSizeOptions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
17068      label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
17069      value: sizeSlug,
17070      options: imageSizeOptions,
17071      onChange: updateImagesSize,
17072      hideCancelButton: true
17073    }))), noticeUI, (0,external_wp_element_namespaceObject.createElement)(v1_gallery, _extends({}, props, {
17074      selectedImage: selectedImage,
17075      mediaPlaceholder: mediaPlaceholder,
17076      onMoveBackward: onMoveBackward,
17077      onMoveForward: onMoveForward,
17078      onRemoveImage: onRemoveImage,
17079      onSelectImage: onSelectImage,
17080      onDeselectImage: onDeselectImage,
17081      onSetImageAttributes: setImageAttributes,
17082      blockProps: blockProps // This prop is used by gallery.native.js.
17083      ,
17084      onFocusGalleryCaption: onFocusGalleryCaption
17085    })));
17086  }
17087  
17088  /* harmony default export */ var v1_edit = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices, (0,external_wp_viewport_namespaceObject.withViewportMatch)({
17089    isNarrow: '< small'
17090  })])(edit_GalleryEdit));
17091  
17092  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit-wrapper.js
17093  
17094  
17095  /**
17096   * WordPress dependencies
17097   */
17098  
17099  
17100  /**
17101   * Internal dependencies
17102   */
17103  
17104  
17105  
17106  
17107  /*
17108   * Using a wrapper around the logic to load the edit for v1 of Gallery block
17109   * or the refactored version with InnerBlocks. This is to prevent conditional
17110   * use of hooks lint errors if adding this logic to the top of the edit component.
17111   */
17112  
17113  function GalleryEditWrapper(props) {
17114    if (!isGalleryV2Enabled()) {
17115      return (0,external_wp_element_namespaceObject.createElement)(v1_edit, props);
17116    }
17117  
17118    return (0,external_wp_element_namespaceObject.createElement)(gallery_edit, props);
17119  }
17120  
17121  /* harmony default export */ var edit_wrapper = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices])(GalleryEditWrapper));
17122  
17123  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/save.js
17124  
17125  
17126  /**
17127   * WordPress dependencies
17128   */
17129  
17130  /**
17131   * Internal dependencies
17132   */
17133  
17134  
17135  
17136  function saveV1(_ref) {
17137    let {
17138      attributes
17139    } = _ref;
17140    const {
17141      images,
17142      columns = defaultColumnsNumberV1(attributes),
17143      imageCrop,
17144      caption,
17145      linkTo
17146    } = attributes;
17147    const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`;
17148    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
17149      className
17150    }), (0,external_wp_element_namespaceObject.createElement)("ul", {
17151      className: "blocks-gallery-grid"
17152    }, images.map(image => {
17153      let href;
17154  
17155      switch (linkTo) {
17156        case v1_constants_LINK_DESTINATION_MEDIA:
17157          href = image.fullUrl || image.url;
17158          break;
17159  
17160        case v1_constants_LINK_DESTINATION_ATTACHMENT:
17161          href = image.link;
17162          break;
17163      }
17164  
17165      const img = (0,external_wp_element_namespaceObject.createElement)("img", {
17166        src: image.url,
17167        alt: image.alt,
17168        "data-id": image.id,
17169        "data-full-url": image.fullUrl,
17170        "data-link": image.link,
17171        className: image.id ? `wp-image-$image.id}` : null
17172      });
17173      return (0,external_wp_element_namespaceObject.createElement)("li", {
17174        key: image.id || image.url,
17175        className: "blocks-gallery-item"
17176      }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
17177        href: href
17178      }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17179        tagName: "figcaption",
17180        className: "blocks-gallery-item__caption",
17181        value: image.caption
17182      })));
17183    })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17184      tagName: "figcaption",
17185      className: "blocks-gallery-caption",
17186      value: caption
17187    }));
17188  }
17189  
17190  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/save.js
17191  
17192  
17193  /**
17194   * External dependencies
17195   */
17196  
17197  /**
17198   * WordPress dependencies
17199   */
17200  
17201  
17202  /**
17203   * Internal dependencies
17204   */
17205  
17206  
17207  
17208  function saveWithInnerBlocks(_ref) {
17209    let {
17210      attributes
17211    } = _ref;
17212  
17213    if (!isGalleryV2Enabled()) {
17214      return saveV1({
17215        attributes
17216      });
17217    }
17218  
17219    const {
17220      caption,
17221      columns,
17222      imageCrop
17223    } = attributes;
17224    const className = classnames_default()('has-nested-images', {
17225      [`columns-$columns}`]: columns !== undefined,
17226      [`columns-default`]: columns === undefined,
17227      'is-cropped': imageCrop
17228    });
17229    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
17230      className
17231    });
17232    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
17233    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, {
17234      tagName: "figcaption",
17235      className: "blocks-gallery-caption",
17236      value: caption
17237    }));
17238  }
17239  
17240  ;// CONCATENATED MODULE: external ["wp","hooks"]
17241  var external_wp_hooks_namespaceObject = window["wp"]["hooks"];
17242  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js
17243  /**
17244   * External dependencies
17245   */
17246  
17247  /**
17248   * WordPress dependencies
17249   */
17250  
17251  
17252  
17253  
17254  /**
17255   * Internal dependencies
17256   */
17257  
17258  
17259  
17260  
17261  
17262  const parseShortcodeIds = ids => {
17263    if (!ids) {
17264      return [];
17265    }
17266  
17267    return ids.split(',').map(id => parseInt(id, 10));
17268  };
17269  /**
17270   * Third party block plugins don't have an easy way to detect if the
17271   * innerBlocks version of the Gallery is running when they run a
17272   * 3rdPartyBlock -> GalleryBlock transform so this tranform filter
17273   * will handle this. Once the innerBlocks version is the default
17274   * in a core release, this could be deprecated and removed after
17275   * plugin authors have been given time to update transforms.
17276   *
17277   * @typedef  {Object} Attributes
17278   * @typedef  {Object} Block
17279   * @property {Attributes} attributes The attributes of the block.
17280   * @param    {Block}      block      The transformed block.
17281   * @return   {Block}                 The transformed block.
17282   */
17283  
17284  
17285  function updateThirdPartyTransformToGallery(block) {
17286    var _block$attributes;
17287  
17288    if (isGalleryV2Enabled() && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) {
17289      const innerBlocks = block.attributes.images.map(_ref => {
17290        let {
17291          url,
17292          id,
17293          alt
17294        } = _ref;
17295        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
17296          url,
17297          id: id ? parseInt(id, 10) : null,
17298          alt,
17299          sizeSlug: block.attributes.sizeSlug,
17300          linkDestination: block.attributes.linkDestination
17301        });
17302      });
17303      delete block.attributes.ids;
17304      delete block.attributes.images;
17305      block.innerBlocks = innerBlocks;
17306    }
17307  
17308    return block;
17309  }
17310  
17311  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-to', updateThirdPartyTransformToGallery);
17312  /**
17313   * Third party block plugins don't have an easy way to detect if the
17314   * innerBlocks version of the Gallery is running when they run a
17315   * GalleryBlock -> 3rdPartyBlock transform so this transform filter
17316   * will handle this. Once the innerBlocks version is the default
17317   * in a core release, this could be deprecated and removed after
17318   * plugin authors have been given time to update transforms.
17319   *
17320   * @typedef  {Object} Attributes
17321   * @typedef  {Object} Block
17322   * @property {Attributes} attributes The attributes of the block.
17323   * @param    {Block}      toBlock    The block to transform to.
17324   * @param    {Block[]}    fromBlocks The blocks to transform from.
17325   * @return   {Block}                 The transformed block.
17326   */
17327  
17328  function updateThirdPartyTransformFromGallery(toBlock, fromBlocks) {
17329    const from = Array.isArray(fromBlocks) ? fromBlocks : [fromBlocks];
17330    const galleryBlock = from.find(transformedBlock => {
17331      var _transformedBlock$att;
17332  
17333      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/');
17334    });
17335  
17336    if (galleryBlock) {
17337      const images = galleryBlock.innerBlocks.map(_ref2 => {
17338        let {
17339          attributes: {
17340            url,
17341            id,
17342            alt
17343          }
17344        } = _ref2;
17345        return {
17346          url,
17347          id: id ? parseInt(id, 10) : null,
17348          alt
17349        };
17350      });
17351      const ids = images.map(_ref3 => {
17352        let {
17353          id
17354        } = _ref3;
17355        return id;
17356      });
17357      galleryBlock.attributes.images = images;
17358      galleryBlock.attributes.ids = ids;
17359    }
17360  
17361    return toBlock;
17362  }
17363  
17364  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-from', updateThirdPartyTransformFromGallery);
17365  const gallery_transforms_transforms = {
17366    from: [{
17367      type: 'block',
17368      isMultiBlock: true,
17369      blocks: ['core/image'],
17370      transform: attributes => {
17371        // Init the align and size from the first item which may be either the placeholder or an image.
17372        let {
17373          align,
17374          sizeSlug
17375        } = attributes[0]; // Loop through all the images and check if they have the same align and size.
17376  
17377        align = (0,external_lodash_namespaceObject.every)(attributes, ['align', align]) ? align : undefined;
17378        sizeSlug = (0,external_lodash_namespaceObject.every)(attributes, ['sizeSlug', sizeSlug]) ? sizeSlug : undefined;
17379        const validImages = (0,external_lodash_namespaceObject.filter)(attributes, _ref4 => {
17380          let {
17381            url
17382          } = _ref4;
17383          return url;
17384        });
17385  
17386        if (isGalleryV2Enabled()) {
17387          const innerBlocks = validImages.map(image => {
17388            return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', image);
17389          });
17390          return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
17391            align,
17392            sizeSlug
17393          }, innerBlocks);
17394        }
17395  
17396        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
17397          images: validImages.map(_ref5 => {
17398            let {
17399              id,
17400              url,
17401              alt,
17402              caption
17403            } = _ref5;
17404            return {
17405              id: (0,external_lodash_namespaceObject.toString)(id),
17406              url,
17407              alt,
17408              caption
17409            };
17410          }),
17411          ids: validImages.map(_ref6 => {
17412            let {
17413              id
17414            } = _ref6;
17415            return parseInt(id, 10);
17416          }),
17417          align,
17418          sizeSlug
17419        });
17420      }
17421    }, {
17422      type: 'shortcode',
17423      tag: 'gallery',
17424      attributes: {
17425        images: {
17426          type: 'array',
17427          shortcode: _ref7 => {
17428            let {
17429              named: {
17430                ids
17431              }
17432            } = _ref7;
17433  
17434            if (!isGalleryV2Enabled()) {
17435              return parseShortcodeIds(ids).map(id => ({
17436                id: (0,external_lodash_namespaceObject.toString)(id)
17437              }));
17438            }
17439          }
17440        },
17441        ids: {
17442          type: 'array',
17443          shortcode: _ref8 => {
17444            let {
17445              named: {
17446                ids
17447              }
17448            } = _ref8;
17449  
17450            if (!isGalleryV2Enabled()) {
17451              return parseShortcodeIds(ids);
17452            }
17453          }
17454        },
17455        shortCodeTransforms: {
17456          type: 'array',
17457          shortcode: _ref9 => {
17458            let {
17459              named: {
17460                ids
17461              }
17462            } = _ref9;
17463  
17464            if (isGalleryV2Enabled()) {
17465              return parseShortcodeIds(ids).map(id => ({
17466                id: parseInt(id)
17467              }));
17468            }
17469          }
17470        },
17471        columns: {
17472          type: 'number',
17473          shortcode: _ref10 => {
17474            let {
17475              named: {
17476                columns = '3'
17477              }
17478            } = _ref10;
17479            return parseInt(columns, 10);
17480          }
17481        },
17482        linkTo: {
17483          type: 'string',
17484          shortcode: _ref11 => {
17485            let {
17486              named: {
17487                link
17488              }
17489            } = _ref11;
17490  
17491            if (!isGalleryV2Enabled()) {
17492              switch (link) {
17493                case 'post':
17494                  return v1_constants_LINK_DESTINATION_ATTACHMENT;
17495  
17496                case 'file':
17497                  return v1_constants_LINK_DESTINATION_MEDIA;
17498  
17499                default:
17500                  return v1_constants_LINK_DESTINATION_ATTACHMENT;
17501              }
17502            }
17503  
17504            switch (link) {
17505              case 'post':
17506                return LINK_DESTINATION_ATTACHMENT;
17507  
17508              case 'file':
17509                return LINK_DESTINATION_MEDIA;
17510  
17511              default:
17512                return LINK_DESTINATION_NONE;
17513            }
17514          }
17515        }
17516      },
17517  
17518      isMatch(_ref12) {
17519        let {
17520          named
17521        } = _ref12;
17522        return undefined !== named.ids;
17523      }
17524  
17525    }, {
17526      // When created by drag and dropping multiple files on an insertion point. Because multiple
17527      // files must not be transformed to a gallery when dropped within a gallery there is another transform
17528      // within the image block to handle that case. Therefore this transform has to have priority 1
17529      // set so that it overrrides the image block transformation when mulitple images are dropped outside
17530      // of a gallery block.
17531      type: 'files',
17532      priority: 1,
17533  
17534      isMatch(files) {
17535        return files.length !== 1 && (0,external_lodash_namespaceObject.every)(files, file => file.type.indexOf('image/') === 0);
17536      },
17537  
17538      transform(files) {
17539        if (isGalleryV2Enabled()) {
17540          const innerBlocks = files.map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
17541            url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
17542          }));
17543          return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, innerBlocks);
17544        }
17545  
17546        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
17547          images: files.map(file => pickRelevantMediaFiles({
17548            url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
17549          }))
17550        });
17551        return block;
17552      }
17553  
17554    }],
17555    to: [{
17556      type: 'block',
17557      blocks: ['core/image'],
17558      transform: (_ref13, innerBlocks) => {
17559        let {
17560          align,
17561          images,
17562          ids,
17563          sizeSlug
17564        } = _ref13;
17565  
17566        if (isGalleryV2Enabled()) {
17567          if (innerBlocks.length > 0) {
17568            return innerBlocks.map(_ref14 => {
17569              let {
17570                attributes: {
17571                  id,
17572                  url,
17573                  alt,
17574                  caption,
17575                  sizeSlug: imageSizeSlug,
17576                  linkDestination,
17577                  href,
17578                  linkTarget
17579                }
17580              } = _ref14;
17581              return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
17582                id,
17583                url,
17584                alt,
17585                caption,
17586                sizeSlug: imageSizeSlug,
17587                align,
17588                linkDestination,
17589                href,
17590                linkTarget
17591              });
17592            });
17593          }
17594  
17595          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
17596            align
17597          });
17598        }
17599  
17600        if (images.length > 0) {
17601          return images.map((_ref15, index) => {
17602            let {
17603              url,
17604              alt,
17605              caption
17606            } = _ref15;
17607            return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
17608              id: ids[index],
17609              url,
17610              alt,
17611              caption,
17612              align,
17613              sizeSlug
17614            });
17615          });
17616        }
17617  
17618        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
17619          align
17620        });
17621      }
17622    }]
17623  };
17624  /* harmony default export */ var gallery_transforms = (gallery_transforms_transforms);
17625  
17626  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/index.js
17627  /**
17628   * WordPress dependencies
17629   */
17630  
17631  /**
17632   * Internal dependencies
17633   */
17634  
17635  
17636  
17637  const gallery_metadata = {
17638    $schema: "https://schemas.wp.org/trunk/block.json",
17639    apiVersion: 2,
17640    name: "core/gallery",
17641    title: "Gallery",
17642    category: "media",
17643    description: "Display multiple images in a rich gallery.",
17644    keywords: ["images", "photos"],
17645    textdomain: "default",
17646    attributes: {
17647      images: {
17648        type: "array",
17649        "default": [],
17650        source: "query",
17651        selector: ".blocks-gallery-item",
17652        query: {
17653          url: {
17654            type: "string",
17655            source: "attribute",
17656            selector: "img",
17657            attribute: "src"
17658          },
17659          fullUrl: {
17660            type: "string",
17661            source: "attribute",
17662            selector: "img",
17663            attribute: "data-full-url"
17664          },
17665          link: {
17666            type: "string",
17667            source: "attribute",
17668            selector: "img",
17669            attribute: "data-link"
17670          },
17671          alt: {
17672            type: "string",
17673            source: "attribute",
17674            selector: "img",
17675            attribute: "alt",
17676            "default": ""
17677          },
17678          id: {
17679            type: "string",
17680            source: "attribute",
17681            selector: "img",
17682            attribute: "data-id"
17683          },
17684          caption: {
17685            type: "string",
17686            source: "html",
17687            selector: ".blocks-gallery-item__caption"
17688          }
17689        }
17690      },
17691      ids: {
17692        type: "array",
17693        items: {
17694          type: "number"
17695        },
17696        "default": []
17697      },
17698      shortCodeTransforms: {
17699        type: "array",
17700        "default": [],
17701        items: {
17702          type: "object"
17703        }
17704      },
17705      columns: {
17706        type: "number",
17707        minimum: 1,
17708        maximum: 8
17709      },
17710      caption: {
17711        type: "string",
17712        source: "html",
17713        selector: ".blocks-gallery-caption"
17714      },
17715      imageCrop: {
17716        type: "boolean",
17717        "default": true
17718      },
17719      fixedHeight: {
17720        type: "boolean",
17721        "default": true
17722      },
17723      linkTarget: {
17724        type: "string"
17725      },
17726      linkTo: {
17727        type: "string"
17728      },
17729      sizeSlug: {
17730        type: "string",
17731        "default": "large"
17732      },
17733      allowResize: {
17734        type: "boolean",
17735        "default": false
17736      }
17737    },
17738    providesContext: {
17739      allowResize: "allowResize",
17740      imageCrop: "imageCrop",
17741      fixedHeight: "fixedHeight"
17742    },
17743    supports: {
17744      anchor: true,
17745      align: true,
17746      html: false,
17747      units: ["px", "em", "rem", "vh", "vw"],
17748      spacing: {
17749        blockGap: true,
17750        __experimentalSkipSerialization: ["blockGap"],
17751        __experimentalDefaultControls: {
17752          blockGap: true
17753        }
17754      },
17755      __experimentalLayout: {
17756        allowSwitching: false,
17757        allowInheriting: false,
17758        allowEditing: false,
17759        "default": {
17760          type: "flex"
17761        }
17762      }
17763    },
17764    editorStyle: "wp-block-gallery-editor",
17765    style: "wp-block-gallery"
17766  };
17767  
17768  
17769  const {
17770    name: gallery_name
17771  } = gallery_metadata;
17772  
17773  const gallery_settings = {
17774    icon: library_gallery,
17775    example: {
17776      attributes: {
17777        columns: 2
17778      },
17779      innerBlocks: [{
17780        name: 'core/image',
17781        attributes: {
17782          url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg'
17783        }
17784      }, {
17785        name: 'core/image',
17786        attributes: {
17787          url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg'
17788        }
17789      }]
17790    },
17791    transforms: gallery_transforms,
17792    edit: edit_wrapper,
17793    save: saveWithInnerBlocks,
17794    deprecated: gallery_deprecated
17795  };
17796  
17797  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js
17798  
17799  
17800  /**
17801   * WordPress dependencies
17802   */
17803  
17804  const group = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
17805    viewBox: "0 0 24 24",
17806    xmlns: "http://www.w3.org/2000/svg"
17807  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
17808    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"
17809  }));
17810  /* harmony default export */ var library_group = (group);
17811  
17812  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/deprecated.js
17813  
17814  
17815  /**
17816   * External dependencies
17817   */
17818  
17819  
17820  /**
17821   * WordPress dependencies
17822   */
17823  
17824  
17825  
17826  const migrateAttributes = attributes => {
17827    if (!attributes.tagName) {
17828      attributes = { ...attributes,
17829        tagName: 'div'
17830      };
17831    }
17832  
17833    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
17834      return attributes;
17835    }
17836  
17837    const style = {
17838      color: {}
17839    };
17840  
17841    if (attributes.customTextColor) {
17842      style.color.text = attributes.customTextColor;
17843    }
17844  
17845    if (attributes.customBackgroundColor) {
17846      style.color.background = attributes.customBackgroundColor;
17847    }
17848  
17849    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor']),
17850      style
17851    };
17852  };
17853  
17854  const group_deprecated_deprecated = [// Version of the block with the double div.
17855  {
17856    attributes: {
17857      tagName: {
17858        type: 'string',
17859        default: 'div'
17860      },
17861      templateLock: {
17862        type: 'string'
17863      }
17864    },
17865    supports: {
17866      align: ['wide', 'full'],
17867      anchor: true,
17868      color: {
17869        gradients: true,
17870        link: true
17871      },
17872      spacing: {
17873        padding: true
17874      },
17875      __experimentalBorder: {
17876        radius: true
17877      }
17878    },
17879  
17880    save(_ref) {
17881      let {
17882        attributes
17883      } = _ref;
17884      const {
17885        tagName: Tag
17886      } = attributes;
17887      return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("div", {
17888        className: "wp-block-group__inner-container"
17889      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
17890    }
17891  
17892  }, // Version of the block without global styles support
17893  {
17894    attributes: {
17895      backgroundColor: {
17896        type: 'string'
17897      },
17898      customBackgroundColor: {
17899        type: 'string'
17900      },
17901      textColor: {
17902        type: 'string'
17903      },
17904      customTextColor: {
17905        type: 'string'
17906      }
17907    },
17908    supports: {
17909      align: ['wide', 'full'],
17910      anchor: true,
17911      html: false
17912    },
17913    migrate: migrateAttributes,
17914  
17915    save(_ref2) {
17916      let {
17917        attributes
17918      } = _ref2;
17919      const {
17920        backgroundColor,
17921        customBackgroundColor,
17922        textColor,
17923        customTextColor
17924      } = attributes;
17925      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
17926      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
17927      const className = classnames_default()(backgroundClass, textClass, {
17928        'has-text-color': textColor || customTextColor,
17929        'has-background': backgroundColor || customBackgroundColor
17930      });
17931      const styles = {
17932        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
17933        color: textClass ? undefined : customTextColor
17934      };
17935      return (0,external_wp_element_namespaceObject.createElement)("div", {
17936        className: className,
17937        style: styles
17938      }, (0,external_wp_element_namespaceObject.createElement)("div", {
17939        className: "wp-block-group__inner-container"
17940      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
17941    }
17942  
17943  }, // Version of the group block with a bug that made text color class not applied.
17944  {
17945    attributes: {
17946      backgroundColor: {
17947        type: 'string'
17948      },
17949      customBackgroundColor: {
17950        type: 'string'
17951      },
17952      textColor: {
17953        type: 'string'
17954      },
17955      customTextColor: {
17956        type: 'string'
17957      }
17958    },
17959    migrate: migrateAttributes,
17960    supports: {
17961      align: ['wide', 'full'],
17962      anchor: true,
17963      html: false
17964    },
17965  
17966    save(_ref3) {
17967      let {
17968        attributes
17969      } = _ref3;
17970      const {
17971        backgroundColor,
17972        customBackgroundColor,
17973        textColor,
17974        customTextColor
17975      } = attributes;
17976      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
17977      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
17978      const className = classnames_default()(backgroundClass, {
17979        'has-text-color': textColor || customTextColor,
17980        'has-background': backgroundColor || customBackgroundColor
17981      });
17982      const styles = {
17983        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
17984        color: textClass ? undefined : customTextColor
17985      };
17986      return (0,external_wp_element_namespaceObject.createElement)("div", {
17987        className: className,
17988        style: styles
17989      }, (0,external_wp_element_namespaceObject.createElement)("div", {
17990        className: "wp-block-group__inner-container"
17991      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
17992    }
17993  
17994  }, // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.
17995  {
17996    attributes: {
17997      backgroundColor: {
17998        type: 'string'
17999      },
18000      customBackgroundColor: {
18001        type: 'string'
18002      }
18003    },
18004    supports: {
18005      align: ['wide', 'full'],
18006      anchor: true,
18007      html: false
18008    },
18009    migrate: migrateAttributes,
18010  
18011    save(_ref4) {
18012      let {
18013        attributes
18014      } = _ref4;
18015      const {
18016        backgroundColor,
18017        customBackgroundColor
18018      } = attributes;
18019      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
18020      const className = classnames_default()(backgroundClass, {
18021        'has-background': backgroundColor || customBackgroundColor
18022      });
18023      const styles = {
18024        backgroundColor: backgroundClass ? undefined : customBackgroundColor
18025      };
18026      return (0,external_wp_element_namespaceObject.createElement)("div", {
18027        className: className,
18028        style: styles
18029      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
18030    }
18031  
18032  }];
18033  /* harmony default export */ var group_deprecated = (group_deprecated_deprecated);
18034  
18035  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/edit.js
18036  
18037  
18038  /**
18039   * WordPress dependencies
18040   */
18041  
18042  
18043  
18044  
18045  const htmlElementMessages = {
18046    header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
18047    main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only. '),
18048    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."),
18049    article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self contained, syndicatable portion of the document.'),
18050    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."),
18051    footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
18052  };
18053  
18054  function GroupEdit(_ref) {
18055    let {
18056      attributes,
18057      setAttributes,
18058      clientId
18059    } = _ref;
18060    const {
18061      hasInnerBlocks,
18062      themeSupportsLayout
18063    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
18064      var _getSettings;
18065  
18066      const {
18067        getBlock,
18068        getSettings
18069      } = select(external_wp_blockEditor_namespaceObject.store);
18070      const block = getBlock(clientId);
18071      return {
18072        hasInnerBlocks: !!(block && block.innerBlocks.length),
18073        themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout
18074      };
18075    }, [clientId]);
18076    const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
18077    const {
18078      tagName: TagName = 'div',
18079      templateLock,
18080      layout = {}
18081    } = attributes;
18082    const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
18083    const {
18084      type = 'default'
18085    } = usedLayout;
18086    const layoutSupportEnabled = themeSupportsLayout || type !== 'default';
18087    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
18088      className: `is-layout-$type}`
18089    });
18090    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(layoutSupportEnabled ? blockProps : {
18091      className: 'wp-block-group__inner-container'
18092    }, {
18093      templateLock,
18094      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender,
18095      __experimentalLayout: layoutSupportEnabled ? usedLayout : undefined
18096    });
18097    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
18098      __experimentalGroup: "advanced"
18099    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
18100      label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
18101      options: [{
18102        label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
18103        value: 'div'
18104      }, {
18105        label: '<header>',
18106        value: 'header'
18107      }, {
18108        label: '<main>',
18109        value: 'main'
18110      }, {
18111        label: '<section>',
18112        value: 'section'
18113      }, {
18114        label: '<article>',
18115        value: 'article'
18116      }, {
18117        label: '<aside>',
18118        value: 'aside'
18119      }, {
18120        label: '<footer>',
18121        value: 'footer'
18122      }],
18123      value: TagName,
18124      onChange: value => setAttributes({
18125        tagName: value
18126      }),
18127      help: htmlElementMessages[TagName]
18128    })), 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)));
18129  }
18130  
18131  /* harmony default export */ var group_edit = (GroupEdit);
18132  
18133  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/save.js
18134  
18135  
18136  /**
18137   * WordPress dependencies
18138   */
18139  
18140  function group_save_save(_ref) {
18141    let {
18142      attributes: {
18143        tagName: Tag
18144      }
18145    } = _ref;
18146    return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save()));
18147  }
18148  
18149  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/transforms.js
18150  /**
18151   * WordPress dependencies
18152   */
18153  
18154  const group_transforms_transforms = {
18155    from: [{
18156      type: 'block',
18157      isMultiBlock: true,
18158      blocks: ['*'],
18159  
18160      __experimentalConvert(blocks) {
18161        const alignments = ['wide', 'full']; // Determine the widest setting of all the blocks to be grouped
18162  
18163        const widestAlignment = blocks.reduce((accumulator, block) => {
18164          const {
18165            align
18166          } = block.attributes;
18167          return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator;
18168        }, undefined); // Clone the Blocks to be Grouped
18169        // Failing to create new block references causes the original blocks
18170        // to be replaced in the switchToBlockType call thereby meaning they
18171        // are removed both from their original location and within the
18172        // new group block.
18173  
18174        const groupInnerBlocks = blocks.map(block => {
18175          return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks);
18176        });
18177        return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
18178          align: widestAlignment
18179        }, groupInnerBlocks);
18180      }
18181  
18182    }]
18183  };
18184  /* harmony default export */ var group_transforms = (group_transforms_transforms);
18185  
18186  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/row.js
18187  
18188  
18189  /**
18190   * WordPress dependencies
18191   */
18192  
18193  const row = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
18194    xmlns: "http://www.w3.org/2000/svg",
18195    viewBox: "0 0 24 24"
18196  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
18197    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"
18198  }));
18199  /* harmony default export */ var library_row = (row);
18200  
18201  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js
18202  
18203  
18204  /**
18205   * WordPress dependencies
18206   */
18207  
18208  const stack = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
18209    xmlns: "http://www.w3.org/2000/svg",
18210    viewBox: "0 0 24 24"
18211  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
18212    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"
18213  }));
18214  /* harmony default export */ var library_stack = (stack);
18215  
18216  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/variations.js
18217  /**
18218   * WordPress dependencies
18219   */
18220  
18221  
18222  const group_variations_variations = [{
18223    name: 'group',
18224    title: (0,external_wp_i18n_namespaceObject.__)('Group'),
18225    description: (0,external_wp_i18n_namespaceObject.__)('Gather blocks in a layout container.'),
18226    attributes: {
18227      layout: {
18228        type: 'default'
18229      }
18230    },
18231    scope: ['transform'],
18232    isActive: blockAttributes => {
18233      var _blockAttributes$layo, _blockAttributes$layo2;
18234  
18235      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';
18236    },
18237    icon: library_group
18238  }, {
18239    name: 'group-row',
18240    title: (0,external_wp_i18n_namespaceObject.__)('Row'),
18241    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks horizontally.'),
18242    attributes: {
18243      layout: {
18244        type: 'flex',
18245        flexWrap: 'nowrap'
18246      }
18247    },
18248    scope: ['inserter', 'transform'],
18249    isActive: blockAttributes => {
18250      var _blockAttributes$layo3, _blockAttributes$layo4, _blockAttributes$layo5;
18251  
18252      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');
18253    },
18254    icon: library_row
18255  }, {
18256    name: 'group-stack',
18257    title: (0,external_wp_i18n_namespaceObject.__)('Stack'),
18258    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks vertically.'),
18259    attributes: {
18260      layout: {
18261        type: 'flex',
18262        orientation: 'vertical'
18263      }
18264    },
18265    scope: ['inserter', 'transform'],
18266    isActive: blockAttributes => {
18267      var _blockAttributes$layo6, _blockAttributes$layo7;
18268  
18269      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';
18270    },
18271    icon: library_stack
18272  }];
18273  /* harmony default export */ var group_variations = (group_variations_variations);
18274  
18275  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/index.js
18276  /**
18277   * WordPress dependencies
18278   */
18279  
18280  
18281  /**
18282   * Internal dependencies
18283   */
18284  
18285  
18286  
18287  const group_metadata = {
18288    $schema: "https://schemas.wp.org/trunk/block.json",
18289    apiVersion: 2,
18290    name: "core/group",
18291    title: "Group",
18292    category: "design",
18293    description: "Gather blocks in a layout container.",
18294    keywords: ["container", "wrapper", "row", "section"],
18295    textdomain: "default",
18296    attributes: {
18297      tagName: {
18298        type: "string",
18299        "default": "div"
18300      },
18301      templateLock: {
18302        type: ["string", "boolean"],
18303        "enum": ["all", "insert", false]
18304      }
18305    },
18306    supports: {
18307      align: ["wide", "full"],
18308      anchor: true,
18309      html: false,
18310      color: {
18311        gradients: true,
18312        link: true,
18313        __experimentalDefaultControls: {
18314          background: true,
18315          text: true
18316        }
18317      },
18318      spacing: {
18319        margin: ["top", "bottom"],
18320        padding: true,
18321        blockGap: true,
18322        __experimentalDefaultControls: {
18323          padding: true,
18324          blockGap: true
18325        }
18326      },
18327      __experimentalBorder: {
18328        color: true,
18329        radius: true,
18330        style: true,
18331        width: true,
18332        __experimentalDefaultControls: {
18333          color: true,
18334          radius: true,
18335          style: true,
18336          width: true
18337        }
18338      },
18339      typography: {
18340        fontSize: true,
18341        lineHeight: true,
18342        __experimentalFontStyle: true,
18343        __experimentalFontWeight: true,
18344        __experimentalLetterSpacing: true,
18345        __experimentalTextTransform: true,
18346        __experimentalDefaultControls: {
18347          fontSize: true
18348        }
18349      },
18350      __experimentalLayout: true
18351    },
18352    editorStyle: "wp-block-group-editor",
18353    style: "wp-block-group"
18354  };
18355  
18356  
18357  
18358  const {
18359    name: group_name
18360  } = group_metadata;
18361  
18362  const group_settings = {
18363    icon: library_group,
18364    example: {
18365      attributes: {
18366        style: {
18367          color: {
18368            text: '#000000',
18369            background: '#ffffff'
18370          }
18371        }
18372      },
18373      innerBlocks: [{
18374        name: 'core/paragraph',
18375        attributes: {
18376          customTextColor: '#cf2e2e',
18377          fontSize: 'large',
18378          content: (0,external_wp_i18n_namespaceObject.__)('One.')
18379        }
18380      }, {
18381        name: 'core/paragraph',
18382        attributes: {
18383          customTextColor: '#ff6900',
18384          fontSize: 'large',
18385          content: (0,external_wp_i18n_namespaceObject.__)('Two.')
18386        }
18387      }, {
18388        name: 'core/paragraph',
18389        attributes: {
18390          customTextColor: '#fcb900',
18391          fontSize: 'large',
18392          content: (0,external_wp_i18n_namespaceObject.__)('Three.')
18393        }
18394      }, {
18395        name: 'core/paragraph',
18396        attributes: {
18397          customTextColor: '#00d084',
18398          fontSize: 'large',
18399          content: (0,external_wp_i18n_namespaceObject.__)('Four.')
18400        }
18401      }, {
18402        name: 'core/paragraph',
18403        attributes: {
18404          customTextColor: '#0693e3',
18405          fontSize: 'large',
18406          content: (0,external_wp_i18n_namespaceObject.__)('Five.')
18407        }
18408      }, {
18409        name: 'core/paragraph',
18410        attributes: {
18411          customTextColor: '#9b51e0',
18412          fontSize: 'large',
18413          content: (0,external_wp_i18n_namespaceObject.__)('Six.')
18414        }
18415      }]
18416    },
18417    transforms: group_transforms,
18418    edit: group_edit,
18419    save: group_save_save,
18420    deprecated: group_deprecated,
18421    variations: group_variations
18422  };
18423  
18424  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading.js
18425  
18426  
18427  /**
18428   * WordPress dependencies
18429   */
18430  
18431  const heading = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
18432    xmlns: "http://www.w3.org/2000/svg",
18433    viewBox: "0 0 24 24"
18434  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
18435    d: "M6.2 5.2v13.4l5.8-4.8 5.8 4.8V5.2z"
18436  }));
18437  /* harmony default export */ var library_heading = (heading);
18438  
18439  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js
18440  
18441  
18442  /**
18443   * External dependencies
18444   */
18445  
18446  
18447  /**
18448   * WordPress dependencies
18449   */
18450  
18451  
18452  const blockSupports = {
18453    className: false,
18454    anchor: true
18455  };
18456  const heading_deprecated_blockAttributes = {
18457    align: {
18458      type: 'string'
18459    },
18460    content: {
18461      type: 'string',
18462      source: 'html',
18463      selector: 'h1,h2,h3,h4,h5,h6',
18464      default: ''
18465    },
18466    level: {
18467      type: 'number',
18468      default: 2
18469    },
18470    placeholder: {
18471      type: 'string'
18472    }
18473  };
18474  
18475  const deprecated_migrateCustomColors = attributes => {
18476    if (!attributes.customTextColor) {
18477      return attributes;
18478    }
18479  
18480    const style = {
18481      color: {
18482        text: attributes.customTextColor
18483      }
18484    };
18485    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor']),
18486      style
18487    };
18488  };
18489  
18490  const TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
18491  
18492  const migrateTextAlign = attributes => {
18493    const {
18494      align,
18495      ...rest
18496    } = attributes;
18497    return TEXT_ALIGN_OPTIONS.includes(align) ? { ...rest,
18498      textAlign: align
18499    } : attributes;
18500  };
18501  
18502  const heading_deprecated_deprecated = [{
18503    supports: {
18504      align: ['wide', 'full'],
18505      anchor: true,
18506      className: false,
18507      color: {
18508        link: true
18509      },
18510      fontSize: true,
18511      lineHeight: true,
18512      __experimentalSelector: {
18513        'core/heading/h1': 'h1',
18514        'core/heading/h2': 'h2',
18515        'core/heading/h3': 'h3',
18516        'core/heading/h4': 'h4',
18517        'core/heading/h5': 'h5',
18518        'core/heading/h6': 'h6'
18519      },
18520      __unstablePasteTextInline: true
18521    },
18522    attributes: heading_deprecated_blockAttributes,
18523    isEligible: _ref => {
18524      let {
18525        align
18526      } = _ref;
18527      return TEXT_ALIGN_OPTIONS.includes(align);
18528    },
18529    migrate: migrateTextAlign,
18530  
18531    save(_ref2) {
18532      let {
18533        attributes
18534      } = _ref2;
18535      const {
18536        align,
18537        content,
18538        level
18539      } = attributes;
18540      const TagName = 'h' + level;
18541      const className = classnames_default()({
18542        [`has-text-align-$align}`]: align
18543      });
18544      return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
18545        className
18546      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18547        value: content
18548      }));
18549    }
18550  
18551  }, {
18552    supports: blockSupports,
18553    attributes: { ...heading_deprecated_blockAttributes,
18554      customTextColor: {
18555        type: 'string'
18556      },
18557      textColor: {
18558        type: 'string'
18559      }
18560    },
18561    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
18562  
18563    save(_ref3) {
18564      let {
18565        attributes
18566      } = _ref3;
18567      const {
18568        align,
18569        content,
18570        customTextColor,
18571        level,
18572        textColor
18573      } = attributes;
18574      const tagName = 'h' + level;
18575      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
18576      const className = classnames_default()({
18577        [textClass]: textClass,
18578        'has-text-color': textColor || customTextColor,
18579        [`has-text-align-$align}`]: align
18580      });
18581      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18582        className: className ? className : undefined,
18583        tagName: tagName,
18584        style: {
18585          color: textClass ? undefined : customTextColor
18586        },
18587        value: content
18588      });
18589    }
18590  
18591  }, {
18592    attributes: { ...heading_deprecated_blockAttributes,
18593      customTextColor: {
18594        type: 'string'
18595      },
18596      textColor: {
18597        type: 'string'
18598      }
18599    },
18600    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
18601  
18602    save(_ref4) {
18603      let {
18604        attributes
18605      } = _ref4;
18606      const {
18607        align,
18608        content,
18609        customTextColor,
18610        level,
18611        textColor
18612      } = attributes;
18613      const tagName = 'h' + level;
18614      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
18615      const className = classnames_default()({
18616        [textClass]: textClass,
18617        [`has-text-align-$align}`]: align
18618      });
18619      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18620        className: className ? className : undefined,
18621        tagName: tagName,
18622        style: {
18623          color: textClass ? undefined : customTextColor
18624        },
18625        value: content
18626      });
18627    },
18628  
18629    supports: blockSupports
18630  }, {
18631    supports: blockSupports,
18632    attributes: { ...heading_deprecated_blockAttributes,
18633      customTextColor: {
18634        type: 'string'
18635      },
18636      textColor: {
18637        type: 'string'
18638      }
18639    },
18640    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
18641  
18642    save(_ref5) {
18643      let {
18644        attributes
18645      } = _ref5;
18646      const {
18647        align,
18648        level,
18649        content,
18650        textColor,
18651        customTextColor
18652      } = attributes;
18653      const tagName = 'h' + level;
18654      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
18655      const className = classnames_default()({
18656        [textClass]: textClass
18657      });
18658      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18659        className: className ? className : undefined,
18660        tagName: tagName,
18661        style: {
18662          textAlign: align,
18663          color: textClass ? undefined : customTextColor
18664        },
18665        value: content
18666      });
18667    }
18668  
18669  }];
18670  /* harmony default export */ var heading_deprecated = (heading_deprecated_deprecated);
18671  
18672  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/autogenerate-anchors.js
18673  /**
18674   * External dependencies
18675   */
18676  
18677  /**
18678   * Object map tracking anchors.
18679   *
18680   * @type {Record<string, string | null>}
18681   */
18682  
18683  const autogenerate_anchors_anchors = {};
18684  /**
18685   * Returns the text without markup.
18686   *
18687   * @param {string} text The text.
18688   *
18689   * @return {string} The text without markup.
18690   */
18691  
18692  const getTextWithoutMarkup = text => {
18693    const dummyElement = document.createElement('div');
18694    dummyElement.innerHTML = text;
18695    return dummyElement.innerText;
18696  };
18697  /**
18698   * Get the slug from the content.
18699   *
18700   * @param {string} content The block content.
18701   *
18702   * @return {string} Returns the slug.
18703   */
18704  
18705  
18706  const getSlug = content => {
18707    // Get the slug.
18708    return (0,external_lodash_namespaceObject.trim)((0,external_lodash_namespaceObject.deburr)(getTextWithoutMarkup(content)).replace(/[^\p{L}\p{N}]+/gu, '-').toLowerCase(), '-');
18709  };
18710  /**
18711   * Generate the anchor for a heading.
18712   *
18713   * @param {string} clientId The block ID.
18714   * @param {string} content  The block content.
18715   *
18716   * @return {string|null} Return the heading anchor.
18717   */
18718  
18719  
18720  const generateAnchor = (clientId, content) => {
18721    const slug = getSlug(content); // If slug is empty, then return null.
18722    // Returning null instead of an empty string allows us to check again when the content changes.
18723  
18724    if ('' === slug) {
18725      return null;
18726    }
18727  
18728    delete autogenerate_anchors_anchors[clientId];
18729    let anchor = slug;
18730    let i = 0; // If the anchor already exists in another heading, append -i.
18731  
18732    while (Object.values(autogenerate_anchors_anchors).includes(anchor)) {
18733      i += 1;
18734      anchor = slug + '-' + i;
18735    }
18736  
18737    return anchor;
18738  };
18739  /**
18740   * Set the anchor for a heading.
18741   *
18742   * @param {string}      clientId The block ID.
18743   * @param {string|null} anchor   The block anchor.
18744   */
18745  
18746  const setAnchor = (clientId, anchor) => {
18747    autogenerate_anchors_anchors[clientId] = anchor;
18748  };
18749  
18750  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/edit.js
18751  
18752  
18753  
18754  /**
18755   * External dependencies
18756   */
18757  
18758  /**
18759   * WordPress dependencies
18760   */
18761  
18762  
18763  
18764  
18765  
18766  
18767  /**
18768   * Internal dependencies
18769   */
18770  
18771  
18772  
18773  
18774  function HeadingEdit(_ref) {
18775    let {
18776      attributes,
18777      setAttributes,
18778      mergeBlocks,
18779      onReplace,
18780      style,
18781      clientId
18782    } = _ref;
18783    const {
18784      textAlign,
18785      content,
18786      level,
18787      placeholder,
18788      anchor
18789    } = attributes;
18790    const tagName = 'h' + level;
18791    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
18792      className: classnames_default()({
18793        [`has-text-align-$textAlign}`]: textAlign
18794      }),
18795      style
18796    });
18797    const {
18798      canGenerateAnchors
18799    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
18800      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
18801      return {
18802        canGenerateAnchors: !!settings.generateAnchors
18803      };
18804    }, []);
18805    const {
18806      __unstableMarkNextChangeAsNotPersistent
18807    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); // Initially set anchor for headings that have content but no anchor set.
18808    // This is used when transforming a block to heading, or for legacy anchors.
18809  
18810    (0,external_wp_element_namespaceObject.useEffect)(() => {
18811      if (!canGenerateAnchors) {
18812        return;
18813      }
18814  
18815      if (!anchor && content) {
18816        // This side-effect should not create an undo level.
18817        __unstableMarkNextChangeAsNotPersistent();
18818  
18819        setAttributes({
18820          anchor: generateAnchor(clientId, content)
18821        });
18822      }
18823  
18824      setAnchor(clientId, anchor); // Remove anchor map when block unmounts.
18825  
18826      return () => setAnchor(clientId, null);
18827    }, [anchor, content, clientId, canGenerateAnchors]);
18828  
18829    const onContentChange = value => {
18830      const newAttrs = {
18831        content: value
18832      };
18833  
18834      if (canGenerateAnchors && (!anchor || !value || generateAnchor(clientId, content) === anchor)) {
18835        newAttrs.anchor = generateAnchor(clientId, value);
18836      }
18837  
18838      setAttributes(newAttrs);
18839    };
18840  
18841    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
18842      group: "block"
18843    }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
18844      selectedLevel: level,
18845      onChange: newLevel => setAttributes({
18846        level: newLevel
18847      })
18848    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
18849      value: textAlign,
18850      onChange: nextAlign => {
18851        setAttributes({
18852          textAlign: nextAlign
18853        });
18854      }
18855    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
18856      identifier: "content",
18857      tagName: tagName,
18858      value: content,
18859      onChange: onContentChange,
18860      onMerge: mergeBlocks,
18861      onSplit: (value, isOriginal) => {
18862        let block;
18863  
18864        if (isOriginal || value) {
18865          block = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { ...attributes,
18866            content: value
18867          });
18868        } else {
18869          var _getDefaultBlockName;
18870  
18871          block = (0,external_wp_blocks_namespaceObject.createBlock)((_getDefaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)()) !== null && _getDefaultBlockName !== void 0 ? _getDefaultBlockName : 'core/heading');
18872        }
18873  
18874        if (isOriginal) {
18875          block.clientId = clientId;
18876        }
18877  
18878        return block;
18879      },
18880      onReplace: onReplace,
18881      onRemove: () => onReplace([]),
18882      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Heading text'),
18883      placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Heading'),
18884      textAlign: textAlign
18885    }, external_wp_element_namespaceObject.Platform.isNative && {
18886      deleteEnter: true
18887    }, blockProps)));
18888  }
18889  
18890  /* harmony default export */ var heading_edit = (HeadingEdit);
18891  
18892  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/save.js
18893  
18894  
18895  /**
18896   * External dependencies
18897   */
18898  
18899  /**
18900   * WordPress dependencies
18901   */
18902  
18903  
18904  function heading_save_save(_ref) {
18905    let {
18906      attributes
18907    } = _ref;
18908    const {
18909      textAlign,
18910      content,
18911      level
18912    } = attributes;
18913    const TagName = 'h' + level;
18914    const className = classnames_default()({
18915      [`has-text-align-$textAlign}`]: textAlign
18916    });
18917    return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
18918      className
18919    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18920      value: content
18921    }));
18922  }
18923  
18924  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/shared.js
18925  /**
18926   * Given a node name string for a heading node, returns its numeric level.
18927   *
18928   * @param {string} nodeName Heading node name.
18929   *
18930   * @return {number} Heading level.
18931   */
18932  function getLevelFromHeadingNodeName(nodeName) {
18933    return Number(nodeName.substr(1));
18934  }
18935  
18936  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/transforms.js
18937  /**
18938   * WordPress dependencies
18939   */
18940  
18941  /**
18942   * Internal dependencies
18943   */
18944  
18945  
18946  const {
18947    name: heading_transforms_name
18948  } = {
18949    $schema: "https://schemas.wp.org/trunk/block.json",
18950    apiVersion: 2,
18951    name: "core/heading",
18952    title: "Heading",
18953    category: "text",
18954    description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
18955    keywords: ["title", "subtitle"],
18956    textdomain: "default",
18957    attributes: {
18958      textAlign: {
18959        type: "string"
18960      },
18961      content: {
18962        type: "string",
18963        source: "html",
18964        selector: "h1,h2,h3,h4,h5,h6",
18965        "default": "",
18966        __experimentalRole: "content"
18967      },
18968      level: {
18969        type: "number",
18970        "default": 2
18971      },
18972      placeholder: {
18973        type: "string"
18974      }
18975    },
18976    supports: {
18977      align: ["wide", "full"],
18978      anchor: true,
18979      className: false,
18980      color: {
18981        link: true,
18982        __experimentalDefaultControls: {
18983          background: true,
18984          text: true
18985        }
18986      },
18987      spacing: {
18988        margin: true
18989      },
18990      typography: {
18991        fontSize: true,
18992        lineHeight: true,
18993        __experimentalFontStyle: true,
18994        __experimentalFontWeight: true,
18995        __experimentalLetterSpacing: true,
18996        __experimentalTextTransform: true,
18997        __experimentalDefaultControls: {
18998          fontSize: true,
18999          fontAppearance: true,
19000          textTransform: true
19001        }
19002      },
19003      __experimentalSelector: "h1,h2,h3,h4,h5,h6",
19004      __unstablePasteTextInline: true,
19005      __experimentalSlashInserter: true
19006    },
19007    editorStyle: "wp-block-heading-editor",
19008    style: "wp-block-heading"
19009  };
19010  const heading_transforms_transforms = {
19011    from: [{
19012      type: 'block',
19013      isMultiBlock: true,
19014      blocks: ['core/paragraph'],
19015      transform: attributes => attributes.map(_ref => {
19016        let {
19017          content,
19018          anchor
19019        } = _ref;
19020        return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, {
19021          content,
19022          anchor
19023        });
19024      })
19025    }, {
19026      type: 'raw',
19027      selector: 'h1,h2,h3,h4,h5,h6',
19028      schema: _ref2 => {
19029        let {
19030          phrasingContentSchema,
19031          isPaste
19032        } = _ref2;
19033        const schema = {
19034          children: phrasingContentSchema,
19035          attributes: isPaste ? [] : ['style', 'id']
19036        };
19037        return {
19038          h1: schema,
19039          h2: schema,
19040          h3: schema,
19041          h4: schema,
19042          h5: schema,
19043          h6: schema
19044        };
19045      },
19046  
19047      transform(node) {
19048        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(heading_transforms_name, node.outerHTML);
19049        const {
19050          textAlign
19051        } = node.style || {};
19052        attributes.level = getLevelFromHeadingNodeName(node.nodeName);
19053  
19054        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
19055          attributes.align = textAlign;
19056        }
19057  
19058        return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, attributes);
19059      }
19060  
19061    }, ...[1, 2, 3, 4, 5, 6].map(level => ({
19062      type: 'prefix',
19063      prefix: Array(level + 1).join('#'),
19064  
19065      transform(content) {
19066        return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, {
19067          level,
19068          content
19069        });
19070      }
19071  
19072    })), ...[1, 2, 3, 4, 5, 6].map(level => ({
19073      type: 'enter',
19074      regExp: new RegExp(`^/(h|H)$level}$`),
19075  
19076      transform(content) {
19077        return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, {
19078          level,
19079          content
19080        });
19081      }
19082  
19083    }))],
19084    to: [{
19085      type: 'block',
19086      isMultiBlock: true,
19087      blocks: ['core/paragraph'],
19088      transform: attributes => attributes.map(_ref3 => {
19089        let {
19090          content
19091        } = _ref3;
19092        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
19093          content
19094        });
19095      })
19096    }]
19097  };
19098  /* harmony default export */ var heading_transforms = (heading_transforms_transforms);
19099  
19100  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/index.js
19101  /**
19102   * External dependencies
19103   */
19104  
19105  /**
19106   * WordPress dependencies
19107   */
19108  
19109  
19110  
19111  /**
19112   * Internal dependencies
19113   */
19114  
19115  
19116  
19117  const heading_metadata = {
19118    $schema: "https://schemas.wp.org/trunk/block.json",
19119    apiVersion: 2,
19120    name: "core/heading",
19121    title: "Heading",
19122    category: "text",
19123    description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
19124    keywords: ["title", "subtitle"],
19125    textdomain: "default",
19126    attributes: {
19127      textAlign: {
19128        type: "string"
19129      },
19130      content: {
19131        type: "string",
19132        source: "html",
19133        selector: "h1,h2,h3,h4,h5,h6",
19134        "default": "",
19135        __experimentalRole: "content"
19136      },
19137      level: {
19138        type: "number",
19139        "default": 2
19140      },
19141      placeholder: {
19142        type: "string"
19143      }
19144    },
19145    supports: {
19146      align: ["wide", "full"],
19147      anchor: true,
19148      className: false,
19149      color: {
19150        link: true,
19151        __experimentalDefaultControls: {
19152          background: true,
19153          text: true
19154        }
19155      },
19156      spacing: {
19157        margin: true
19158      },
19159      typography: {
19160        fontSize: true,
19161        lineHeight: true,
19162        __experimentalFontStyle: true,
19163        __experimentalFontWeight: true,
19164        __experimentalLetterSpacing: true,
19165        __experimentalTextTransform: true,
19166        __experimentalDefaultControls: {
19167          fontSize: true,
19168          fontAppearance: true,
19169          textTransform: true
19170        }
19171      },
19172      __experimentalSelector: "h1,h2,h3,h4,h5,h6",
19173      __unstablePasteTextInline: true,
19174      __experimentalSlashInserter: true
19175    },
19176    editorStyle: "wp-block-heading-editor",
19177    style: "wp-block-heading"
19178  };
19179  
19180  
19181  const {
19182    name: heading_name
19183  } = heading_metadata;
19184  
19185  const heading_settings = {
19186    icon: library_heading,
19187    example: {
19188      attributes: {
19189        content: (0,external_wp_i18n_namespaceObject.__)('Code is Poetry'),
19190        level: 2
19191      }
19192    },
19193  
19194    __experimentalLabel(attributes, _ref) {
19195      let {
19196        context
19197      } = _ref;
19198  
19199      if (context === 'accessibility') {
19200        const {
19201          content,
19202          level
19203        } = attributes;
19204        return (0,external_lodash_namespaceObject.isEmpty)(content) ? (0,external_wp_i18n_namespaceObject.sprintf)(
19205        /* translators: accessibility text. %s: heading level. */
19206        (0,external_wp_i18n_namespaceObject.__)('Level %s. Empty.'), level) : (0,external_wp_i18n_namespaceObject.sprintf)(
19207        /* translators: accessibility text. 1: heading level. 2: heading content. */
19208        (0,external_wp_i18n_namespaceObject.__)('Level %1$s. %2$s'), level, content);
19209      }
19210    },
19211  
19212    transforms: heading_transforms,
19213    deprecated: heading_deprecated,
19214  
19215    merge(attributes, attributesToMerge) {
19216      return {
19217        content: (attributes.content || '') + (attributesToMerge.content || '')
19218      };
19219    },
19220  
19221    edit: heading_edit,
19222    save: heading_save_save
19223  };
19224  
19225  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/home.js
19226  
19227  
19228  /**
19229   * WordPress dependencies
19230   */
19231  
19232  const home = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
19233    xmlns: "http://www.w3.org/2000/svg",
19234    viewBox: "0 0 24 24"
19235  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
19236    d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"
19237  }));
19238  /* harmony default export */ var library_home = (home);
19239  
19240  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/edit.js
19241  
19242  
19243  /**
19244   * External dependencies
19245   */
19246  
19247  /**
19248   * WordPress dependencies
19249   */
19250  
19251  
19252  
19253  
19254  
19255  
19256  
19257  const preventDefault = event => event.preventDefault();
19258  
19259  function HomeEdit(_ref) {
19260    var _style$color, _style$color2, _style$color3, _style$color4;
19261  
19262    let {
19263      attributes,
19264      setAttributes,
19265      context,
19266      clientId
19267    } = _ref;
19268    const {
19269      homeUrl
19270    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
19271      var _getUnstableBase;
19272  
19273      const {
19274        getUnstableBase // Site index.
19275  
19276      } = select(external_wp_coreData_namespaceObject.store);
19277      return {
19278        homeUrl: (_getUnstableBase = getUnstableBase()) === null || _getUnstableBase === void 0 ? void 0 : _getUnstableBase.home
19279      };
19280    }, [clientId]);
19281    const {
19282      textColor,
19283      backgroundColor,
19284      style
19285    } = context;
19286    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
19287      className: classnames_default()('wp-block-navigation-item', {
19288        'has-text-color': !!textColor || !!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text),
19289        [`has-$textColor}-color`]: !!textColor,
19290        'has-background': !!backgroundColor || !!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background),
19291        [`has-$backgroundColor}-background-color`]: !!backgroundColor
19292      }),
19293      style: {
19294        color: style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.text,
19295        backgroundColor: style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background
19296      }
19297    });
19298    const {
19299      label
19300    } = attributes;
19301    (0,external_wp_element_namespaceObject.useEffect)(() => {
19302      if (label === undefined) {
19303        setAttributes({
19304          label: (0,external_wp_i18n_namespaceObject.__)('Home')
19305        });
19306      }
19307    }, [clientId, label]);
19308    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", {
19309      className: "wp-block-home-link__content wp-block-navigation-item__content",
19310      href: homeUrl,
19311      onClick: preventDefault
19312    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
19313      identifier: "label",
19314      className: "wp-block-home-link__label",
19315      value: label,
19316      onChange: labelValue => {
19317        setAttributes({
19318          label: labelValue
19319        });
19320      },
19321      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home link text'),
19322      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add home link'),
19323      withoutInteractiveFormatting: true,
19324      allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough']
19325    }))));
19326  }
19327  
19328  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/save.js
19329  
19330  
19331  /**
19332   * WordPress dependencies
19333   */
19334  
19335  function home_link_save_save() {
19336    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
19337  }
19338  
19339  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/index.js
19340  /**
19341   * WordPress dependencies
19342   */
19343  
19344  
19345  /**
19346   * Internal dependencies
19347   */
19348  
19349  const home_link_metadata = {
19350    $schema: "https://schemas.wp.org/trunk/block.json",
19351    apiVersion: 2,
19352    name: "core/home-link",
19353    category: "design",
19354    parent: ["core/navigation"],
19355    title: "Home Link",
19356    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.",
19357    textdomain: "default",
19358    attributes: {
19359      label: {
19360        type: "string"
19361      }
19362    },
19363    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style"],
19364    supports: {
19365      reusable: false,
19366      html: false
19367    },
19368    editorStyle: "wp-block-home-link-editor",
19369    style: "wp-block-home-link"
19370  };
19371  
19372  
19373  const {
19374    name: home_link_name
19375  } = home_link_metadata;
19376  
19377  const home_link_settings = {
19378    icon: library_home,
19379    edit: HomeEdit,
19380    save: home_link_save_save,
19381    example: {
19382      attributes: {
19383        label: (0,external_wp_i18n_namespaceObject._x)('Home Link', 'block example')
19384      }
19385    }
19386  };
19387  
19388  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/html.js
19389  
19390  
19391  /**
19392   * WordPress dependencies
19393   */
19394  
19395  const html = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
19396    viewBox: "0 0 24 24",
19397    xmlns: "http://www.w3.org/2000/svg"
19398  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
19399    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"
19400  }));
19401  /* harmony default export */ var library_html = (html);
19402  
19403  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/edit.js
19404  
19405  
19406  /**
19407   * WordPress dependencies
19408   */
19409  
19410  
19411  
19412  
19413  
19414  function HTMLEdit(_ref) {
19415    let {
19416      attributes,
19417      setAttributes,
19418      isSelected
19419    } = _ref;
19420    const [isPreview, setIsPreview] = (0,external_wp_element_namespaceObject.useState)();
19421    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
19422    const styles = (0,external_wp_data_namespaceObject.useSelect)(select => {
19423      // Default styles used to unset some of the styles
19424      // that might be inherited from the editor style.
19425      const defaultStyles = `
19426              html,body,:root {
19427                  margin: 0 !important;
19428                  padding: 0 !important;
19429                  overflow: visible !important;
19430                  min-height: auto !important;
19431              }
19432          `;
19433      return [defaultStyles, ...(0,external_wp_blockEditor_namespaceObject.transformStyles)(select(external_wp_blockEditor_namespaceObject.store).getSettings().styles)];
19434    }, []);
19435  
19436    function switchToPreview() {
19437      setIsPreview(true);
19438    }
19439  
19440    function switchToHTML() {
19441      setIsPreview(false);
19442    }
19443  
19444    return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
19445      className: 'block-library-html__edit'
19446    }), (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, {
19447      className: "components-tab-button",
19448      isPressed: !isPreview,
19449      onClick: switchToHTML
19450    }, (0,external_wp_element_namespaceObject.createElement)("span", null, "HTML")), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
19451      className: "components-tab-button",
19452      isPressed: isPreview,
19453      onClick: switchToPreview
19454    }, (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, {
19455      html: attributes.content,
19456      styles: styles
19457    }), !isSelected && (0,external_wp_element_namespaceObject.createElement)("div", {
19458      className: "block-library-html__preview-overlay"
19459    })) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
19460      value: attributes.content,
19461      onChange: content => setAttributes({
19462        content
19463      }),
19464      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write HTML…'),
19465      "aria-label": (0,external_wp_i18n_namespaceObject.__)('HTML')
19466    }));
19467  }
19468  
19469  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/save.js
19470  
19471  
19472  /**
19473   * WordPress dependencies
19474   */
19475  
19476  function html_save_save(_ref) {
19477    let {
19478      attributes
19479    } = _ref;
19480    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.content);
19481  }
19482  
19483  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/transforms.js
19484  /**
19485   * WordPress dependencies
19486   */
19487  
19488  const html_transforms_transforms = {
19489    from: [{
19490      type: 'block',
19491      blocks: ['core/code'],
19492      transform: _ref => {
19493        let {
19494          content
19495        } = _ref;
19496        return (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
19497          content
19498        });
19499      }
19500    }]
19501  };
19502  /* harmony default export */ var html_transforms = (html_transforms_transforms);
19503  
19504  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/index.js
19505  /**
19506   * WordPress dependencies
19507   */
19508  
19509  
19510  /**
19511   * Internal dependencies
19512   */
19513  
19514  
19515  const html_metadata = {
19516    $schema: "https://schemas.wp.org/trunk/block.json",
19517    apiVersion: 2,
19518    name: "core/html",
19519    title: "Custom HTML",
19520    category: "widgets",
19521    description: "Add custom HTML code and preview it as you edit.",
19522    keywords: ["embed"],
19523    textdomain: "default",
19524    attributes: {
19525      content: {
19526        type: "string",
19527        source: "html"
19528      }
19529    },
19530    supports: {
19531      customClassName: false,
19532      className: false,
19533      html: false
19534    },
19535    editorStyle: "wp-block-html-editor"
19536  };
19537  
19538  
19539  const {
19540    name: html_name
19541  } = html_metadata;
19542  
19543  const html_settings = {
19544    icon: library_html,
19545    example: {
19546      attributes: {
19547        content: '<marquee>' + (0,external_wp_i18n_namespaceObject.__)('Welcome to the wonderful world of blocks…') + '</marquee>'
19548      }
19549    },
19550    edit: HTMLEdit,
19551    save: html_save_save,
19552    transforms: html_transforms
19553  };
19554  
19555  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/deprecated.js
19556  
19557  
19558  
19559  /**
19560   * External dependencies
19561   */
19562  
19563  
19564  /**
19565   * WordPress dependencies
19566   */
19567  
19568  
19569  const image_deprecated_blockAttributes = {
19570    align: {
19571      type: 'string'
19572    },
19573    url: {
19574      type: 'string',
19575      source: 'attribute',
19576      selector: 'img',
19577      attribute: 'src'
19578    },
19579    alt: {
19580      type: 'string',
19581      source: 'attribute',
19582      selector: 'img',
19583      attribute: 'alt',
19584      default: ''
19585    },
19586    caption: {
19587      type: 'string',
19588      source: 'html',
19589      selector: 'figcaption'
19590    },
19591    href: {
19592      type: 'string',
19593      source: 'attribute',
19594      selector: 'figure > a',
19595      attribute: 'href'
19596    },
19597    rel: {
19598      type: 'string',
19599      source: 'attribute',
19600      selector: 'figure > a',
19601      attribute: 'rel'
19602    },
19603    linkClass: {
19604      type: 'string',
19605      source: 'attribute',
19606      selector: 'figure > a',
19607      attribute: 'class'
19608    },
19609    id: {
19610      type: 'number'
19611    },
19612    width: {
19613      type: 'number'
19614    },
19615    height: {
19616      type: 'number'
19617    },
19618    linkDestination: {
19619      type: 'string'
19620    },
19621    linkTarget: {
19622      type: 'string',
19623      source: 'attribute',
19624      selector: 'figure > a',
19625      attribute: 'target'
19626    }
19627  };
19628  const deprecated_blockSupports = {
19629    anchor: true,
19630    color: {
19631      __experimentalDuotone: 'img',
19632      text: false,
19633      background: false
19634    },
19635    __experimentalBorder: {
19636      radius: true,
19637      __experimentalDefaultControls: {
19638        radius: true
19639      }
19640    }
19641  };
19642  const image_deprecated_deprecated = [{
19643    attributes: { ...image_deprecated_blockAttributes,
19644      title: {
19645        type: 'string',
19646        source: 'attribute',
19647        selector: 'img',
19648        attribute: 'title'
19649      },
19650      sizeSlug: {
19651        type: 'string'
19652      }
19653    },
19654    supports: deprecated_blockSupports,
19655  
19656    save(_ref) {
19657      let {
19658        attributes
19659      } = _ref;
19660      const {
19661        url,
19662        alt,
19663        caption,
19664        align,
19665        href,
19666        rel,
19667        linkClass,
19668        width,
19669        height,
19670        id,
19671        linkTarget,
19672        sizeSlug,
19673        title
19674      } = attributes;
19675      const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
19676      const classes = classnames_default()({
19677        [`align$align}`]: align,
19678        [`size-$sizeSlug}`]: sizeSlug,
19679        'is-resized': width || height
19680      });
19681      const image = (0,external_wp_element_namespaceObject.createElement)("img", {
19682        src: url,
19683        alt: alt,
19684        className: id ? `wp-image-$id}` : null,
19685        width: width,
19686        height: height,
19687        title: title
19688      });
19689      const figure = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
19690        className: linkClass,
19691        href: href,
19692        target: linkTarget,
19693        rel: newRel
19694      }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19695        tagName: "figcaption",
19696        value: caption
19697      }));
19698  
19699      if ('left' === align || 'right' === align || 'center' === align) {
19700        return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("figure", {
19701          className: classes
19702        }, figure));
19703      }
19704  
19705      return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
19706        className: classes
19707      }), figure);
19708    }
19709  
19710  }, {
19711    attributes: image_deprecated_blockAttributes,
19712  
19713    save(_ref2) {
19714      let {
19715        attributes
19716      } = _ref2;
19717      const {
19718        url,
19719        alt,
19720        caption,
19721        align,
19722        href,
19723        width,
19724        height,
19725        id
19726      } = attributes;
19727      const classes = classnames_default()({
19728        [`align$align}`]: align,
19729        'is-resized': width || height
19730      });
19731      const image = (0,external_wp_element_namespaceObject.createElement)("img", {
19732        src: url,
19733        alt: alt,
19734        className: id ? `wp-image-$id}` : null,
19735        width: width,
19736        height: height
19737      });
19738      return (0,external_wp_element_namespaceObject.createElement)("figure", {
19739        className: classes
19740      }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
19741        href: href
19742      }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19743        tagName: "figcaption",
19744        value: caption
19745      }));
19746    }
19747  
19748  }, {
19749    attributes: image_deprecated_blockAttributes,
19750  
19751    save(_ref3) {
19752      let {
19753        attributes
19754      } = _ref3;
19755      const {
19756        url,
19757        alt,
19758        caption,
19759        align,
19760        href,
19761        width,
19762        height,
19763        id
19764      } = attributes;
19765      const image = (0,external_wp_element_namespaceObject.createElement)("img", {
19766        src: url,
19767        alt: alt,
19768        className: id ? `wp-image-$id}` : null,
19769        width: width,
19770        height: height
19771      });
19772      return (0,external_wp_element_namespaceObject.createElement)("figure", {
19773        className: align ? `align$align}` : null
19774      }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
19775        href: href
19776      }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19777        tagName: "figcaption",
19778        value: caption
19779      }));
19780    }
19781  
19782  }, {
19783    attributes: image_deprecated_blockAttributes,
19784  
19785    save(_ref4) {
19786      let {
19787        attributes
19788      } = _ref4;
19789      const {
19790        url,
19791        alt,
19792        caption,
19793        align,
19794        href,
19795        width,
19796        height
19797      } = attributes;
19798      const extraImageProps = width || height ? {
19799        width,
19800        height
19801      } : {};
19802      const image = (0,external_wp_element_namespaceObject.createElement)("img", _extends({
19803        src: url,
19804        alt: alt
19805      }, extraImageProps));
19806      let figureStyle = {};
19807  
19808      if (width) {
19809        figureStyle = {
19810          width
19811        };
19812      } else if (align === 'left' || align === 'right') {
19813        figureStyle = {
19814          maxWidth: '50%'
19815        };
19816      }
19817  
19818      return (0,external_wp_element_namespaceObject.createElement)("figure", {
19819        className: align ? `align$align}` : null,
19820        style: figureStyle
19821      }, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
19822        href: href
19823      }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19824        tagName: "figcaption",
19825        value: caption
19826      }));
19827    }
19828  
19829  }];
19830  /* harmony default export */ var image_deprecated = (image_deprecated_deprecated);
19831  
19832  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/crop.js
19833  
19834  
19835  /**
19836   * WordPress dependencies
19837   */
19838  
19839  const crop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
19840    xmlns: "http://www.w3.org/2000/svg",
19841    viewBox: "0 0 24 24"
19842  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
19843    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"
19844  }));
19845  /* harmony default export */ var library_crop = (crop);
19846  
19847  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
19848  
19849  
19850  /**
19851   * WordPress dependencies
19852   */
19853  
19854  const upload = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
19855    xmlns: "http://www.w3.org/2000/svg",
19856    viewBox: "0 0 24 24"
19857  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
19858    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"
19859  }));
19860  /* harmony default export */ var library_upload = (upload);
19861  
19862  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/overlay-text.js
19863  
19864  
19865  /**
19866   * WordPress dependencies
19867   */
19868  
19869  const overlayText = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
19870    xmlns: "http://www.w3.org/2000/svg",
19871    viewBox: "0 0 24 24"
19872  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
19873    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"
19874  }));
19875  /* harmony default export */ var overlay_text = (overlayText);
19876  
19877  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/use-client-width.js
19878  /**
19879   * WordPress dependencies
19880   */
19881  
19882  function useClientWidth(ref, dependencies) {
19883    const [clientWidth, setClientWidth] = (0,external_wp_element_namespaceObject.useState)();
19884  
19885    function calculateClientWidth() {
19886      setClientWidth(ref.current.clientWidth);
19887    }
19888  
19889    (0,external_wp_element_namespaceObject.useEffect)(calculateClientWidth, dependencies);
19890    (0,external_wp_element_namespaceObject.useEffect)(() => {
19891      const {
19892        defaultView
19893      } = ref.current.ownerDocument;
19894      defaultView.addEventListener('resize', calculateClientWidth);
19895      return () => {
19896        defaultView.removeEventListener('resize', calculateClientWidth);
19897      };
19898    }, []);
19899    return clientWidth;
19900  }
19901  
19902  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/image.js
19903  
19904  
19905  /**
19906   * External dependencies
19907   */
19908  
19909  /**
19910   * WordPress dependencies
19911   */
19912  
19913  
19914  
19915  
19916  
19917  
19918  
19919  
19920  
19921  
19922  
19923  
19924  
19925  /**
19926   * Internal dependencies
19927   */
19928  
19929  
19930  
19931  
19932  /**
19933   * Module constants
19934   */
19935  
19936  
19937  function Image(_ref) {
19938    var _imageRef$current3;
19939  
19940    let {
19941      temporaryURL,
19942      attributes: {
19943        url = '',
19944        alt,
19945        caption,
19946        align,
19947        id,
19948        href,
19949        rel,
19950        linkClass,
19951        linkDestination,
19952        title,
19953        width,
19954        height,
19955        linkTarget,
19956        sizeSlug
19957      },
19958      setAttributes,
19959      isSelected,
19960      insertBlocksAfter,
19961      onReplace,
19962      onCloseModal,
19963      onSelectImage,
19964      onSelectURL,
19965      onUploadError,
19966      containerRef,
19967      context,
19968      clientId,
19969      onImageLoadError
19970    } = _ref;
19971    const imageRef = (0,external_wp_element_namespaceObject.useRef)();
19972    const captionRef = (0,external_wp_element_namespaceObject.useRef)();
19973    const prevUrl = (0,external_wp_compose_namespaceObject.usePrevious)(url);
19974    const {
19975      allowResize = true
19976    } = context;
19977    const {
19978      getBlock
19979    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
19980    const {
19981      image,
19982      multiImageSelection
19983    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
19984      const {
19985        getMedia
19986      } = select(external_wp_coreData_namespaceObject.store);
19987      const {
19988        getMultiSelectedBlockClientIds,
19989        getBlockName
19990      } = select(external_wp_blockEditor_namespaceObject.store);
19991      const multiSelectedClientIds = getMultiSelectedBlockClientIds();
19992      return {
19993        image: id && isSelected ? getMedia(id, {
19994          context: 'view'
19995        }) : null,
19996        multiImageSelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/image')
19997      };
19998    }, [id, isSelected]);
19999    const {
20000      canInsertCover,
20001      imageEditing,
20002      imageSizes,
20003      maxWidth,
20004      mediaUpload
20005    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
20006      const {
20007        getBlockRootClientId,
20008        getSettings,
20009        canInsertBlockType
20010      } = select(external_wp_blockEditor_namespaceObject.store);
20011      const rootClientId = getBlockRootClientId(clientId);
20012      const settings = (0,external_lodash_namespaceObject.pick)(getSettings(), ['imageEditing', 'imageSizes', 'maxWidth', 'mediaUpload']);
20013      return { ...settings,
20014        canInsertCover: canInsertBlockType('core/cover', rootClientId)
20015      };
20016    }, [clientId]);
20017    const {
20018      replaceBlocks,
20019      toggleSelection
20020    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
20021    const {
20022      createErrorNotice,
20023      createSuccessNotice
20024    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
20025    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
20026    const isWideAligned = (0,external_lodash_namespaceObject.includes)(['wide', 'full'], align);
20027    const [{
20028      loadedNaturalWidth,
20029      loadedNaturalHeight
20030    }, setLoadedNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
20031    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
20032    const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)();
20033    const clientWidth = useClientWidth(containerRef, [align]);
20034    const isResizable = allowResize && !(isWideAligned && isLargeViewport);
20035    const imageSizeOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref2 => {
20036      let {
20037        slug
20038      } = _ref2;
20039      return (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', slug, 'source_url']);
20040    }), _ref3 => {
20041      let {
20042        name,
20043        slug
20044      } = _ref3;
20045      return {
20046        value: slug,
20047        label: name
20048      };
20049    }); // If an image is externally hosted, try to fetch the image data. This may
20050    // fail if the image host doesn't allow CORS with the domain. If it works,
20051    // we can enable a button in the toolbar to upload the image.
20052  
20053    (0,external_wp_element_namespaceObject.useEffect)(() => {
20054      if (!isExternalImage(id, url) || !isSelected || externalBlob) {
20055        return;
20056      }
20057  
20058      window.fetch(url).then(response => response.blob()).then(blob => setExternalBlob(blob)) // Do nothing, cannot upload.
20059      .catch(() => {});
20060    }, [id, url, isSelected, externalBlob]); // Focus the caption after inserting an image from the placeholder. This is
20061    // done to preserve the behaviour of focussing the first tabbable element
20062    // when a block is mounted. Previously, the image block would remount when
20063    // the placeholder is removed. Maybe this behaviour could be removed.
20064  
20065    (0,external_wp_element_namespaceObject.useEffect)(() => {
20066      if (url && !prevUrl && isSelected) {
20067        captionRef.current.focus();
20068      }
20069    }, [url, prevUrl]); // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
20070    // width and height. This resolves an issue in Safari where the loaded natural
20071    // witdth and height is otherwise lost when switching between alignments.
20072    // See: https://github.com/WordPress/gutenberg/pull/37210.
20073  
20074    const {
20075      naturalWidth,
20076      naturalHeight
20077    } = (0,external_wp_element_namespaceObject.useMemo)(() => {
20078      var _imageRef$current, _imageRef$current2;
20079  
20080      return {
20081        naturalWidth: ((_imageRef$current = imageRef.current) === null || _imageRef$current === void 0 ? void 0 : _imageRef$current.naturalWidth) || loadedNaturalWidth || undefined,
20082        naturalHeight: ((_imageRef$current2 = imageRef.current) === null || _imageRef$current2 === void 0 ? void 0 : _imageRef$current2.naturalHeight) || loadedNaturalHeight || undefined
20083      };
20084    }, [loadedNaturalWidth, loadedNaturalHeight, (_imageRef$current3 = imageRef.current) === null || _imageRef$current3 === void 0 ? void 0 : _imageRef$current3.complete]);
20085  
20086    function onResizeStart() {
20087      toggleSelection(false);
20088    }
20089  
20090    function onResizeStop() {
20091      toggleSelection(true);
20092    }
20093  
20094    function onImageError() {
20095      // Check if there's an embed block that handles this URL, e.g., instagram URL.
20096      // See: https://github.com/WordPress/gutenberg/pull/11472
20097      const embedBlock = createUpgradedEmbedBlock({
20098        attributes: {
20099          url
20100        }
20101      });
20102      const shouldReplace = undefined !== embedBlock;
20103  
20104      if (shouldReplace) {
20105        onReplace(embedBlock);
20106      }
20107  
20108      onImageLoadError(shouldReplace);
20109    }
20110  
20111    function onSetHref(props) {
20112      setAttributes(props);
20113    }
20114  
20115    function onSetTitle(value) {
20116      // This is the HTML title attribute, separate from the media object
20117      // title.
20118      setAttributes({
20119        title: value
20120      });
20121    }
20122  
20123    function updateAlt(newAlt) {
20124      setAttributes({
20125        alt: newAlt
20126      });
20127    }
20128  
20129    function updateImage(newSizeSlug) {
20130      const newUrl = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', newSizeSlug, 'source_url']);
20131  
20132      if (!newUrl) {
20133        return null;
20134      }
20135  
20136      setAttributes({
20137        url: newUrl,
20138        width: undefined,
20139        height: undefined,
20140        sizeSlug: newSizeSlug
20141      });
20142    }
20143  
20144    function uploadExternal() {
20145      mediaUpload({
20146        filesList: [externalBlob],
20147  
20148        onFileChange(_ref4) {
20149          let [img] = _ref4;
20150          onSelectImage(img);
20151  
20152          if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) {
20153            return;
20154          }
20155  
20156          setExternalBlob();
20157          createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded.'), {
20158            type: 'snackbar'
20159          });
20160        },
20161  
20162        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
20163  
20164        onError(message) {
20165          createErrorNotice(message, {
20166            type: 'snackbar'
20167          });
20168        }
20169  
20170      });
20171    }
20172  
20173    function updateAlignment(nextAlign) {
20174      const extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? {
20175        width: undefined,
20176        height: undefined
20177      } : {};
20178      setAttributes({ ...extraUpdatedAttributes,
20179        align: nextAlign
20180      });
20181    }
20182  
20183    (0,external_wp_element_namespaceObject.useEffect)(() => {
20184      if (!isSelected) {
20185        setIsEditingImage(false);
20186      }
20187  
20188      if (isSelected && isMediaDestroyed(id)) {
20189        onImageLoadError();
20190      }
20191    }, [isSelected]);
20192    const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
20193    const allowCrop = !multiImageSelection && canEditImage && !isEditingImage;
20194  
20195    function switchToCover() {
20196      replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), 'core/cover'));
20197    }
20198  
20199    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, {
20200      group: "block"
20201    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentControl, {
20202      value: align,
20203      onChange: updateAlignment
20204    }), !multiImageSelection && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
20205      url: href || '',
20206      onChangeUrl: onSetHref,
20207      linkDestination: linkDestination,
20208      mediaUrl: image && image.source_url || url,
20209      mediaLink: image && image.link,
20210      linkTarget: linkTarget,
20211      linkClass: linkClass,
20212      rel: rel
20213    }), allowCrop && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
20214      onClick: () => setIsEditingImage(true),
20215      icon: library_crop,
20216      label: (0,external_wp_i18n_namespaceObject.__)('Crop')
20217    }), externalBlob && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
20218      onClick: uploadExternal,
20219      icon: library_upload,
20220      label: (0,external_wp_i18n_namespaceObject.__)('Upload external image')
20221    }), !multiImageSelection && canInsertCover && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
20222      icon: overlay_text,
20223      label: (0,external_wp_i18n_namespaceObject.__)('Add text over image'),
20224      onClick: switchToCover
20225    })), !multiImageSelection && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
20226      group: "other"
20227    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
20228      mediaId: id,
20229      mediaURL: url,
20230      allowedTypes: constants_ALLOWED_MEDIA_TYPES,
20231      accept: "image/*",
20232      onSelect: onSelectImage,
20233      onSelectURL: onSelectURL,
20234      onError: onUploadError,
20235      onCloseModal: onCloseModal
20236    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
20237      title: (0,external_wp_i18n_namespaceObject.__)('Image settings')
20238    }, !multiImageSelection && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
20239      label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'),
20240      value: alt,
20241      onChange: updateAlt,
20242      help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
20243        href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
20244      }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.'))
20245    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
20246      onChangeImage: updateImage,
20247      onChange: value => setAttributes(value),
20248      slug: sizeSlug,
20249      width: width,
20250      height: height,
20251      imageSizeOptions: imageSizeOptions,
20252      isResizable: isResizable,
20253      imageWidth: naturalWidth,
20254      imageHeight: naturalHeight
20255    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
20256      __experimentalGroup: "advanced"
20257    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
20258      label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
20259      value: title || '',
20260      onChange: onSetTitle,
20261      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, {
20262        href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute"
20263      }, (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')))
20264    })));
20265    const filename = (0,external_wp_url_namespaceObject.getFilename)(url);
20266    let defaultedAlt;
20267  
20268    if (alt) {
20269      defaultedAlt = alt;
20270    } else if (filename) {
20271      defaultedAlt = (0,external_wp_i18n_namespaceObject.sprintf)(
20272      /* translators: %s: file name */
20273      (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute; its file name is %s'), filename);
20274    } else {
20275      defaultedAlt = (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute');
20276    }
20277  
20278    let img = // Disable reason: Image itself is not meant to be interactive, but
20279    // should direct focus to block.
20280  
20281    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
20282    (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("img", {
20283      src: temporaryURL || url,
20284      alt: defaultedAlt,
20285      onError: () => onImageError(),
20286      onLoad: event => {
20287        var _event$target, _event$target2;
20288  
20289        setLoadedNaturalSize({
20290          loadedNaturalWidth: (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.naturalWidth,
20291          loadedNaturalHeight: (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.naturalHeight
20292        });
20293      },
20294      ref: imageRef
20295    }), temporaryURL && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))
20296    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
20297    ;
20298    let imageWidthWithinContainer;
20299    let imageHeightWithinContainer;
20300  
20301    if (clientWidth && naturalWidth && naturalHeight) {
20302      const exceedMaxWidth = naturalWidth > clientWidth;
20303      const ratio = naturalHeight / naturalWidth;
20304      imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;
20305      imageHeightWithinContainer = exceedMaxWidth ? clientWidth * ratio : naturalHeight;
20306    }
20307  
20308    if (canEditImage && isEditingImage) {
20309      img = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
20310        url: url,
20311        width: width,
20312        height: height,
20313        clientWidth: clientWidth,
20314        naturalHeight: naturalHeight,
20315        naturalWidth: naturalWidth
20316      });
20317    } else if (!isResizable || !imageWidthWithinContainer) {
20318      img = (0,external_wp_element_namespaceObject.createElement)("div", {
20319        style: {
20320          width,
20321          height
20322        }
20323      }, img);
20324    } else {
20325      const currentWidth = width || imageWidthWithinContainer;
20326      const currentHeight = height || imageHeightWithinContainer;
20327      const ratio = naturalWidth / naturalHeight;
20328      const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;
20329      const minHeight = naturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio; // With the current implementation of ResizableBox, an image needs an
20330      // explicit pixel value for the max-width. In absence of being able to
20331      // set the content-width, this max-width is currently dictated by the
20332      // vanilla editor style. The following variable adds a buffer to this
20333      // vanilla style, so 3rd party themes have some wiggleroom. This does,
20334      // in most cases, allow you to scale the image beyond the width of the
20335      // main column, though not infinitely.
20336      // @todo It would be good to revisit this once a content-width variable
20337      // becomes available.
20338  
20339      const maxWidthBuffer = maxWidth * 2.5;
20340      let showRightHandle = false;
20341      let showLeftHandle = false;
20342      /* eslint-disable no-lonely-if */
20343      // See https://github.com/WordPress/gutenberg/issues/7584.
20344  
20345      if (align === 'center') {
20346        // When the image is centered, show both handles.
20347        showRightHandle = true;
20348        showLeftHandle = true;
20349      } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
20350        // In RTL mode the image is on the right by default.
20351        // Show the right handle and hide the left handle only when it is
20352        // aligned left. Otherwise always show the left handle.
20353        if (align === 'left') {
20354          showRightHandle = true;
20355        } else {
20356          showLeftHandle = true;
20357        }
20358      } else {
20359        // Show the left handle and hide the right handle only when the
20360        // image is aligned right. Otherwise always show the right handle.
20361        if (align === 'right') {
20362          showLeftHandle = true;
20363        } else {
20364          showRightHandle = true;
20365        }
20366      }
20367      /* eslint-enable no-lonely-if */
20368  
20369  
20370      img = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
20371        size: {
20372          width: width !== null && width !== void 0 ? width : 'auto',
20373          height: height !== null && height !== void 0 ? height : 'auto'
20374        },
20375        showHandle: isSelected,
20376        minWidth: minWidth,
20377        maxWidth: maxWidthBuffer,
20378        minHeight: minHeight,
20379        maxHeight: maxWidthBuffer / ratio,
20380        lockAspectRatio: true,
20381        enable: {
20382          top: false,
20383          right: showRightHandle,
20384          bottom: true,
20385          left: showLeftHandle
20386        },
20387        onResizeStart: onResizeStart,
20388        onResizeStop: (event, direction, elt, delta) => {
20389          onResizeStop();
20390          setAttributes({
20391            width: parseInt(currentWidth + delta.width, 10),
20392            height: parseInt(currentHeight + delta.height, 10)
20393          });
20394        }
20395      }, img);
20396    }
20397  
20398    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditingProvider, {
20399      id: id,
20400      url: url,
20401      naturalWidth: naturalWidth,
20402      naturalHeight: naturalHeight,
20403      clientWidth: clientWidth,
20404      onSaveImage: imageAttributes => setAttributes(imageAttributes),
20405      isEditing: isEditingImage,
20406      onFinishEditing: () => setIsEditingImage(false)
20407    }, !temporaryURL && controls, img, (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
20408      ref: captionRef,
20409      tagName: "figcaption",
20410      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
20411      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
20412      value: caption,
20413      onChange: value => setAttributes({
20414        caption: value
20415      }),
20416      inlineToolbar: true,
20417      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
20418    }));
20419  }
20420  
20421  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/edit.js
20422  
20423  
20424  /**
20425   * External dependencies
20426   */
20427  
20428  
20429  /**
20430   * WordPress dependencies
20431   */
20432  
20433  
20434  
20435  
20436  
20437  
20438  
20439  
20440  /* global wp */
20441  
20442  /**
20443   * Internal dependencies
20444   */
20445  
20446  
20447  /**
20448   * Module constants
20449   */
20450  
20451  
20452  const edit_pickRelevantMediaFiles = (image, size) => {
20453    const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']);
20454    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;
20455    return imageProps;
20456  };
20457  /**
20458   * Is the URL a temporary blob URL? A blob URL is one that is used temporarily
20459   * while the image is being uploaded and will not have an id yet allocated.
20460   *
20461   * @param {number=} id  The id of the image.
20462   * @param {string=} url The url of the image.
20463   *
20464   * @return {boolean} Is the URL a Blob URL
20465   */
20466  
20467  const edit_isTemporaryImage = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);
20468  /**
20469   * Is the url for the image hosted externally. An externally hosted image has no
20470   * id and is not a blob url.
20471   *
20472   * @param {number=} id  The id of the image.
20473   * @param {string=} url The url of the image.
20474   *
20475   * @return {boolean} Is the url an externally hosted url?
20476   */
20477  
20478  
20479  const isExternalImage = (id, url) => url && !id && !(0,external_wp_blob_namespaceObject.isBlobURL)(url);
20480  /**
20481   * Checks if WP generated default image size. Size generation is skipped
20482   * when the image is smaller than the said size.
20483   *
20484   * @param {Object} image
20485   * @param {string} defaultSize
20486   *
20487   * @return {boolean} Whether or not it has default image size.
20488   */
20489  
20490  function hasDefaultSize(image, defaultSize) {
20491    return (0,external_lodash_namespaceObject.has)(image, ['sizes', defaultSize, 'url']) || (0,external_lodash_namespaceObject.has)(image, ['media_details', 'sizes', defaultSize, 'source_url']);
20492  }
20493  /**
20494   * Checks if a media attachment object has been "destroyed",
20495   * that is, removed from the media library. The core Media Library
20496   * adds a `destroyed` property to a deleted attachment object in the media collection.
20497   *
20498   * @param {number} id The attachment id.
20499   *
20500   * @return {boolean} Whether the image has been destroyed.
20501   */
20502  
20503  
20504  function isMediaDestroyed(id) {
20505    var _wp, _wp$media;
20506  
20507    const attachment = ((_wp = wp) === null || _wp === void 0 ? void 0 : (_wp$media = _wp.media) === null || _wp$media === void 0 ? void 0 : _wp$media.attachment(id)) || {};
20508    return attachment.destroyed;
20509  }
20510  function ImageEdit(_ref) {
20511    let {
20512      attributes,
20513      setAttributes,
20514      isSelected,
20515      className,
20516      noticeUI,
20517      insertBlocksAfter,
20518      noticeOperations,
20519      onReplace,
20520      context,
20521      clientId
20522    } = _ref;
20523    const {
20524      url = '',
20525      alt,
20526      caption,
20527      align,
20528      id,
20529      width,
20530      height,
20531      sizeSlug
20532    } = attributes;
20533    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
20534    const altRef = (0,external_wp_element_namespaceObject.useRef)();
20535    (0,external_wp_element_namespaceObject.useEffect)(() => {
20536      altRef.current = alt;
20537    }, [alt]);
20538    const captionRef = (0,external_wp_element_namespaceObject.useRef)();
20539    (0,external_wp_element_namespaceObject.useEffect)(() => {
20540      captionRef.current = caption;
20541    }, [caption]);
20542    const ref = (0,external_wp_element_namespaceObject.useRef)();
20543    const {
20544      imageDefaultSize,
20545      mediaUpload
20546    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
20547      const {
20548        getSettings
20549      } = select(external_wp_blockEditor_namespaceObject.store);
20550      return (0,external_lodash_namespaceObject.pick)(getSettings(), ['imageDefaultSize', 'mediaUpload']);
20551    }, []); // A callback passed to MediaUpload,
20552    // fired when the media modal closes.
20553  
20554    function onCloseModal() {
20555      if (isMediaDestroyed(attributes === null || attributes === void 0 ? void 0 : attributes.id)) {
20556        setAttributes({
20557          url: undefined,
20558          id: undefined
20559        });
20560      }
20561    }
20562    /*
20563         Runs an error callback if the image does not load.
20564         If the error callback is triggered, we infer that that image
20565         has been deleted.
20566    */
20567  
20568  
20569    function onImageError() {
20570      let isReplaced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
20571  
20572      // If the image block was not replaced with an embed,
20573      // clear the attributes and trigger the placeholder.
20574      if (!isReplaced) {
20575        setAttributes({
20576          url: undefined,
20577          id: undefined
20578        });
20579      }
20580    }
20581  
20582    function onUploadError(message) {
20583      noticeOperations.removeAllNotices();
20584      noticeOperations.createErrorNotice(message);
20585      setAttributes({
20586        src: undefined,
20587        id: undefined,
20588        url: undefined
20589      });
20590      setTemporaryURL(undefined);
20591    }
20592  
20593    function onSelectImage(media) {
20594      var _wp2, _wp2$media, _wp2$media$view, _wp2$media$view$setti, _wp2$media$view$setti2;
20595  
20596      if (!media || !media.url) {
20597        setAttributes({
20598          url: undefined,
20599          alt: undefined,
20600          id: undefined,
20601          title: undefined,
20602          caption: undefined
20603        });
20604        return;
20605      }
20606  
20607      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
20608        setTemporaryURL(media.url);
20609        return;
20610      }
20611  
20612      setTemporaryURL();
20613      let mediaAttributes = edit_pickRelevantMediaFiles(media, imageDefaultSize); // If a caption text was meanwhile written by the user,
20614      // make sure the text is not overwritten by empty captions.
20615  
20616      if (captionRef.current && !(0,external_lodash_namespaceObject.get)(mediaAttributes, ['caption'])) {
20617        mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['caption']);
20618      }
20619  
20620      let additionalAttributes; // Reset the dimension attributes if changing to a different image.
20621  
20622      if (!media.id || media.id !== id) {
20623        additionalAttributes = {
20624          width: undefined,
20625          height: undefined,
20626          // Fallback to size "full" if there's no default image size.
20627          // It means the image is smaller, and the block will use a full-size URL.
20628          sizeSlug: hasDefaultSize(media, imageDefaultSize) ? imageDefaultSize : 'full'
20629        };
20630      } else {
20631        // Keep the same url when selecting the same file, so "Image Size"
20632        // option is not changed.
20633        additionalAttributes = {
20634          url
20635        };
20636      } // Check if default link setting should be used.
20637  
20638  
20639      let linkDestination = attributes.linkDestination;
20640  
20641      if (!linkDestination) {
20642        // Use the WordPress option to determine the proper default.
20643        // The constants used in Gutenberg do not match WP options so a little more complicated than ideal.
20644        // TODO: fix this in a follow up PR, requires updating media-text and ui component.
20645        switch (((_wp2 = wp) === null || _wp2 === void 0 ? void 0 : (_wp2$media = _wp2.media) === null || _wp2$media === void 0 ? void 0 : (_wp2$media$view = _wp2$media.view) === null || _wp2$media$view === void 0 ? void 0 : (_wp2$media$view$setti = _wp2$media$view.settings) === null || _wp2$media$view$setti === void 0 ? void 0 : (_wp2$media$view$setti2 = _wp2$media$view$setti.defaultProps) === null || _wp2$media$view$setti2 === void 0 ? void 0 : _wp2$media$view$setti2.link) || constants_LINK_DESTINATION_NONE) {
20646          case 'file':
20647          case constants_LINK_DESTINATION_MEDIA:
20648            linkDestination = constants_LINK_DESTINATION_MEDIA;
20649            break;
20650  
20651          case 'post':
20652          case constants_LINK_DESTINATION_ATTACHMENT:
20653            linkDestination = constants_LINK_DESTINATION_ATTACHMENT;
20654            break;
20655  
20656          case LINK_DESTINATION_CUSTOM:
20657            linkDestination = LINK_DESTINATION_CUSTOM;
20658            break;
20659  
20660          case constants_LINK_DESTINATION_NONE:
20661            linkDestination = constants_LINK_DESTINATION_NONE;
20662            break;
20663        }
20664      } // Check if the image is linked to it's media.
20665  
20666  
20667      let href;
20668  
20669      switch (linkDestination) {
20670        case constants_LINK_DESTINATION_MEDIA:
20671          href = media.url;
20672          break;
20673  
20674        case constants_LINK_DESTINATION_ATTACHMENT:
20675          href = media.link;
20676          break;
20677      }
20678  
20679      mediaAttributes.href = href;
20680      setAttributes({ ...mediaAttributes,
20681        ...additionalAttributes,
20682        linkDestination
20683      });
20684    }
20685  
20686    function onSelectURL(newURL) {
20687      if (newURL !== url) {
20688        setAttributes({
20689          url: newURL,
20690          id: undefined,
20691          width: undefined,
20692          height: undefined,
20693          sizeSlug: imageDefaultSize
20694        });
20695      }
20696    }
20697  
20698    function updateAlignment(nextAlign) {
20699      const extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? {
20700        width: undefined,
20701        height: undefined
20702      } : {};
20703      setAttributes({ ...extraUpdatedAttributes,
20704        align: nextAlign
20705      });
20706    }
20707  
20708    let isTemp = edit_isTemporaryImage(id, url); // Upload a temporary image on mount.
20709  
20710    (0,external_wp_element_namespaceObject.useEffect)(() => {
20711      if (!isTemp) {
20712        return;
20713      }
20714  
20715      const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(url);
20716  
20717      if (file) {
20718        mediaUpload({
20719          filesList: [file],
20720          onFileChange: _ref2 => {
20721            let [img] = _ref2;
20722            onSelectImage(img);
20723          },
20724          allowedTypes: constants_ALLOWED_MEDIA_TYPES,
20725          onError: message => {
20726            isTemp = false;
20727            onUploadError(message);
20728          }
20729        });
20730      }
20731    }, []); // If an image is temporary, revoke the Blob url when it is uploaded (and is
20732    // no longer temporary).
20733  
20734    (0,external_wp_element_namespaceObject.useEffect)(() => {
20735      if (isTemp) {
20736        setTemporaryURL(url);
20737        return;
20738      }
20739  
20740      (0,external_wp_blob_namespaceObject.revokeBlobURL)(temporaryURL);
20741    }, [isTemp, url]);
20742    const isExternal = isExternalImage(id, url);
20743    const src = isExternal ? url : undefined;
20744    const mediaPreview = !!url && (0,external_wp_element_namespaceObject.createElement)("img", {
20745      alt: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
20746      title: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
20747      className: 'edit-image-preview',
20748      src: url
20749    });
20750    const classes = classnames_default()(className, {
20751      'is-transient': temporaryURL,
20752      'is-resized': !!width || !!height,
20753      [`size-$sizeSlug}`]: sizeSlug
20754    });
20755    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
20756      ref,
20757      className: classes
20758    });
20759    return (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (temporaryURL || url) && (0,external_wp_element_namespaceObject.createElement)(Image, {
20760      temporaryURL: temporaryURL,
20761      attributes: attributes,
20762      setAttributes: setAttributes,
20763      isSelected: isSelected,
20764      insertBlocksAfter: insertBlocksAfter,
20765      onReplace: onReplace,
20766      onSelectImage: onSelectImage,
20767      onSelectURL: onSelectURL,
20768      onUploadError: onUploadError,
20769      containerRef: ref,
20770      context: context,
20771      clientId: clientId,
20772      onCloseModal: onCloseModal,
20773      onImageLoadError: onImageError
20774    }), !url && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
20775      group: "block"
20776    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentControl, {
20777      value: align,
20778      onChange: updateAlignment
20779    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
20780      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
20781        icon: library_image
20782      }),
20783      onSelect: onSelectImage,
20784      onSelectURL: onSelectURL,
20785      notices: noticeUI,
20786      onError: onUploadError,
20787      onClose: onCloseModal,
20788      accept: "image/*",
20789      allowedTypes: constants_ALLOWED_MEDIA_TYPES,
20790      value: {
20791        id,
20792        src
20793      },
20794      mediaPreview: mediaPreview,
20795      disableMediaButtons: temporaryURL || url
20796    }));
20797  }
20798  /* harmony default export */ var image_edit = ((0,external_wp_components_namespaceObject.withNotices)(ImageEdit));
20799  
20800  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/save.js
20801  
20802  
20803  /**
20804   * External dependencies
20805   */
20806  
20807  
20808  /**
20809   * WordPress dependencies
20810   */
20811  
20812  
20813  function image_save_save(_ref) {
20814    let {
20815      attributes
20816    } = _ref;
20817    const {
20818      url,
20819      alt,
20820      caption,
20821      align,
20822      href,
20823      rel,
20824      linkClass,
20825      width,
20826      height,
20827      id,
20828      linkTarget,
20829      sizeSlug,
20830      title
20831    } = attributes;
20832    const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
20833    const classes = classnames_default()({
20834      [`align$align}`]: align,
20835      [`size-$sizeSlug}`]: sizeSlug,
20836      'is-resized': width || height
20837    });
20838    const image = (0,external_wp_element_namespaceObject.createElement)("img", {
20839      src: url,
20840      alt: alt,
20841      className: id ? `wp-image-$id}` : null,
20842      width: width,
20843      height: height,
20844      title: title
20845    });
20846    const figure = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, href ? (0,external_wp_element_namespaceObject.createElement)("a", {
20847      className: linkClass,
20848      href: href,
20849      target: linkTarget,
20850      rel: newRel
20851    }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20852      tagName: "figcaption",
20853      value: caption
20854    }));
20855    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
20856      className: classes
20857    }), figure);
20858  }
20859  
20860  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/transforms.js
20861  /**
20862   * External dependencies
20863   */
20864  
20865  /**
20866   * WordPress dependencies
20867   */
20868  
20869  
20870  
20871  
20872  
20873  
20874  function stripFirstImage(attributes, _ref) {
20875    let {
20876      shortcode
20877    } = _ref;
20878    const {
20879      body
20880    } = document.implementation.createHTMLDocument('');
20881    body.innerHTML = shortcode.content;
20882    let nodeToRemove = body.querySelector('img'); // If an image has parents, find the topmost node to remove.
20883  
20884    while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) {
20885      nodeToRemove = nodeToRemove.parentNode;
20886    }
20887  
20888    if (nodeToRemove) {
20889      nodeToRemove.parentNode.removeChild(nodeToRemove);
20890    }
20891  
20892    return body.innerHTML.trim();
20893  }
20894  
20895  function getFirstAnchorAttributeFormHTML(html, attributeName) {
20896    const {
20897      body
20898    } = document.implementation.createHTMLDocument('');
20899    body.innerHTML = html;
20900    const {
20901      firstElementChild
20902    } = body;
20903  
20904    if (firstElementChild && firstElementChild.nodeName === 'A') {
20905      return firstElementChild.getAttribute(attributeName) || undefined;
20906    }
20907  }
20908  
20909  const imageSchema = {
20910    img: {
20911      attributes: ['src', 'alt', 'title'],
20912      classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\d+$/]
20913    }
20914  };
20915  
20916  const schema = _ref2 => {
20917    let {
20918      phrasingContentSchema
20919    } = _ref2;
20920    return {
20921      figure: {
20922        require: ['img'],
20923        children: { ...imageSchema,
20924          a: {
20925            attributes: ['href', 'rel', 'target'],
20926            children: imageSchema
20927          },
20928          figcaption: {
20929            children: phrasingContentSchema
20930          }
20931        }
20932      }
20933    };
20934  };
20935  
20936  const image_transforms_transforms = {
20937    from: [{
20938      type: 'raw',
20939      isMatch: node => node.nodeName === 'FIGURE' && !!node.querySelector('img'),
20940      schema,
20941      transform: node => {
20942        // Search both figure and image classes. Alignment could be
20943        // set on either. ID is set on the image.
20944        const className = node.className + ' ' + node.querySelector('img').className;
20945        const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec(className);
20946        const anchor = node.id === '' ? undefined : node.id;
20947        const align = alignMatches ? alignMatches[1] : undefined;
20948        const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec(className);
20949        const id = idMatches ? Number(idMatches[1]) : undefined;
20950        const anchorElement = node.querySelector('a');
20951        const linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;
20952        const href = anchorElement && anchorElement.href ? anchorElement.href : undefined;
20953        const rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined;
20954        const linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined;
20955        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/image', node.outerHTML, {
20956          align,
20957          id,
20958          linkDestination,
20959          href,
20960          rel,
20961          linkClass,
20962          anchor
20963        });
20964        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', attributes);
20965      }
20966    }, {
20967      // Note: when dragging and dropping multiple files onto a gallery this overrides the
20968      // gallery transform in order to add new images to the gallery instead of
20969      // creating a new gallery.
20970      type: 'files',
20971  
20972      isMatch(files) {
20973        // The following check is intended to catch non-image files when dropped together with images.
20974        if (files.some(file => file.type.indexOf('image/') === 0) && files.some(file => file.type.indexOf('image/') !== 0)) {
20975          const {
20976            createErrorNotice
20977          } = (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store);
20978          createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
20979            id: 'gallery-transform-invalid-file'
20980          });
20981        }
20982  
20983        return (0,external_lodash_namespaceObject.every)(files, file => file.type.indexOf('image/') === 0);
20984      },
20985  
20986      transform(files) {
20987        const blocks = files.map(file => {
20988          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
20989            url: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
20990          });
20991        });
20992        return blocks;
20993      }
20994  
20995    }, {
20996      type: 'shortcode',
20997      tag: 'caption',
20998      attributes: {
20999        url: {
21000          type: 'string',
21001          source: 'attribute',
21002          attribute: 'src',
21003          selector: 'img'
21004        },
21005        alt: {
21006          type: 'string',
21007          source: 'attribute',
21008          attribute: 'alt',
21009          selector: 'img'
21010        },
21011        caption: {
21012          shortcode: stripFirstImage
21013        },
21014        href: {
21015          shortcode: (attributes, _ref3) => {
21016            let {
21017              shortcode
21018            } = _ref3;
21019            return getFirstAnchorAttributeFormHTML(shortcode.content, 'href');
21020          }
21021        },
21022        rel: {
21023          shortcode: (attributes, _ref4) => {
21024            let {
21025              shortcode
21026            } = _ref4;
21027            return getFirstAnchorAttributeFormHTML(shortcode.content, 'rel');
21028          }
21029        },
21030        linkClass: {
21031          shortcode: (attributes, _ref5) => {
21032            let {
21033              shortcode
21034            } = _ref5;
21035            return getFirstAnchorAttributeFormHTML(shortcode.content, 'class');
21036          }
21037        },
21038        id: {
21039          type: 'number',
21040          shortcode: _ref6 => {
21041            let {
21042              named: {
21043                id
21044              }
21045            } = _ref6;
21046  
21047            if (!id) {
21048              return;
21049            }
21050  
21051            return parseInt(id.replace('attachment_', ''), 10);
21052          }
21053        },
21054        align: {
21055          type: 'string',
21056          shortcode: _ref7 => {
21057            let {
21058              named: {
21059                align = 'alignnone'
21060              }
21061            } = _ref7;
21062            return align.replace('align', '');
21063          }
21064        }
21065      }
21066    }]
21067  };
21068  /* harmony default export */ var image_transforms = (image_transforms_transforms);
21069  
21070  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/index.js
21071  /**
21072   * WordPress dependencies
21073   */
21074  
21075  
21076  /**
21077   * Internal dependencies
21078   */
21079  
21080  
21081  
21082  const image_metadata = {
21083    $schema: "https://schemas.wp.org/trunk/block.json",
21084    apiVersion: 2,
21085    name: "core/image",
21086    title: "Image",
21087    category: "media",
21088    usesContext: ["allowResize", "imageCrop", "fixedHeight"],
21089    description: "Insert an image to make a visual statement.",
21090    keywords: ["img", "photo", "picture"],
21091    textdomain: "default",
21092    attributes: {
21093      align: {
21094        type: "string"
21095      },
21096      url: {
21097        type: "string",
21098        source: "attribute",
21099        selector: "img",
21100        attribute: "src"
21101      },
21102      alt: {
21103        type: "string",
21104        source: "attribute",
21105        selector: "img",
21106        attribute: "alt",
21107        "default": ""
21108      },
21109      caption: {
21110        type: "string",
21111        source: "html",
21112        selector: "figcaption"
21113      },
21114      title: {
21115        type: "string",
21116        source: "attribute",
21117        selector: "img",
21118        attribute: "title"
21119      },
21120      href: {
21121        type: "string",
21122        source: "attribute",
21123        selector: "figure > a",
21124        attribute: "href"
21125      },
21126      rel: {
21127        type: "string",
21128        source: "attribute",
21129        selector: "figure > a",
21130        attribute: "rel"
21131      },
21132      linkClass: {
21133        type: "string",
21134        source: "attribute",
21135        selector: "figure > a",
21136        attribute: "class"
21137      },
21138      id: {
21139        type: "number"
21140      },
21141      width: {
21142        type: "number"
21143      },
21144      height: {
21145        type: "number"
21146      },
21147      sizeSlug: {
21148        type: "string"
21149      },
21150      linkDestination: {
21151        type: "string"
21152      },
21153      linkTarget: {
21154        type: "string",
21155        source: "attribute",
21156        selector: "figure > a",
21157        attribute: "target"
21158      }
21159    },
21160    supports: {
21161      anchor: true,
21162      color: {
21163        __experimentalDuotone: "img",
21164        text: false,
21165        background: false
21166      },
21167      __experimentalBorder: {
21168        radius: true,
21169        __experimentalDefaultControls: {
21170          radius: true
21171        }
21172      }
21173    },
21174    styles: [{
21175      name: "default",
21176      label: "Default",
21177      isDefault: true
21178    }, {
21179      name: "rounded",
21180      label: "Rounded"
21181    }],
21182    editorStyle: "wp-block-image-editor",
21183    style: "wp-block-image"
21184  };
21185  
21186  
21187  const {
21188    name: image_name
21189  } = image_metadata;
21190  
21191  const image_settings = {
21192    icon: library_image,
21193    example: {
21194      attributes: {
21195        sizeSlug: 'large',
21196        url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',
21197        // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.
21198        caption: (0,external_wp_i18n_namespaceObject.__)('Mont Blanc appears—still, snowy, and serene.')
21199      }
21200    },
21201  
21202    __experimentalLabel(attributes, _ref) {
21203      let {
21204        context
21205      } = _ref;
21206  
21207      if (context === 'accessibility') {
21208        const {
21209          caption,
21210          alt,
21211          url
21212        } = attributes;
21213  
21214        if (!url) {
21215          return (0,external_wp_i18n_namespaceObject.__)('Empty');
21216        }
21217  
21218        if (!alt) {
21219          return caption || '';
21220        } // This is intended to be read by a screen reader.
21221        // A period simply means a pause, no need to translate it.
21222  
21223  
21224        return alt + (caption ? '. ' + caption : '');
21225      }
21226    },
21227  
21228    getEditWrapperProps(attributes) {
21229      return {
21230        'data-align': attributes.align
21231      };
21232    },
21233  
21234    transforms: image_transforms,
21235    edit: image_edit,
21236    save: image_save_save,
21237    deprecated: image_deprecated
21238  };
21239  
21240  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment.js
21241  
21242  
21243  /**
21244   * WordPress dependencies
21245   */
21246  
21247  const comment = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
21248    viewBox: "0 0 24 24",
21249    xmlns: "http://www.w3.org/2000/svg"
21250  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
21251    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"
21252  }));
21253  /* harmony default export */ var library_comment = (comment);
21254  
21255  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js
21256  
21257  
21258  /**
21259   * WordPress dependencies
21260   */
21261  
21262  
21263  
21264  
21265  /**
21266   * Minimum number of comments a user can show using this block.
21267   *
21268   * @type {number}
21269   */
21270  
21271  const MIN_COMMENTS = 1;
21272  /**
21273   * Maximum number of comments a user can show using this block.
21274   *
21275   * @type {number}
21276   */
21277  
21278  const MAX_COMMENTS = 100;
21279  function LatestComments(_ref) {
21280    let {
21281      attributes,
21282      setAttributes
21283    } = _ref;
21284    const {
21285      commentsToShow,
21286      displayAvatar,
21287      displayDate,
21288      displayExcerpt
21289    } = attributes;
21290    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, {
21291      title: (0,external_wp_i18n_namespaceObject.__)('Latest comments settings')
21292    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21293      label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
21294      checked: displayAvatar,
21295      onChange: () => setAttributes({
21296        displayAvatar: !displayAvatar
21297      })
21298    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21299      label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
21300      checked: displayDate,
21301      onChange: () => setAttributes({
21302        displayDate: !displayDate
21303      })
21304    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21305      label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
21306      checked: displayExcerpt,
21307      onChange: () => setAttributes({
21308        displayExcerpt: !displayExcerpt
21309      })
21310    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
21311      label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
21312      value: commentsToShow,
21313      onChange: value => setAttributes({
21314        commentsToShow: value
21315      }),
21316      min: MIN_COMMENTS,
21317      max: MAX_COMMENTS,
21318      required: true
21319    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), {
21320      block: "core/latest-comments",
21321      attributes: attributes // The preview uses the site's locale to make it more true to how
21322      // the block appears on the frontend. Setting the locale
21323      // explicitly prevents any middleware from setting it to 'user'.
21324      ,
21325      urlQueryArgs: {
21326        _locale: 'site'
21327      }
21328    })));
21329  }
21330  
21331  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
21332  /**
21333   * WordPress dependencies
21334   */
21335  
21336  /**
21337   * Internal dependencies
21338   */
21339  
21340  const latest_comments_metadata = {
21341    $schema: "https://schemas.wp.org/trunk/block.json",
21342    apiVersion: 2,
21343    name: "core/latest-comments",
21344    title: "Latest Comments",
21345    category: "widgets",
21346    description: "Display a list of your most recent comments.",
21347    keywords: ["recent comments"],
21348    textdomain: "default",
21349    attributes: {
21350      commentsToShow: {
21351        type: "number",
21352        "default": 5,
21353        minimum: 1,
21354        maximum: 100
21355      },
21356      displayAvatar: {
21357        type: "boolean",
21358        "default": true
21359      },
21360      displayDate: {
21361        type: "boolean",
21362        "default": true
21363      },
21364      displayExcerpt: {
21365        type: "boolean",
21366        "default": true
21367      }
21368    },
21369    supports: {
21370      align: true,
21371      html: false
21372    },
21373    editorStyle: "wp-block-latest-comments-editor",
21374    style: "wp-block-latest-comments"
21375  };
21376  
21377  const {
21378    name: latest_comments_name
21379  } = latest_comments_metadata;
21380  
21381  const latest_comments_settings = {
21382    icon: library_comment,
21383    example: {},
21384    edit: LatestComments
21385  };
21386  
21387  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js
21388  
21389  
21390  /**
21391   * WordPress dependencies
21392   */
21393  
21394  const postList = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
21395    viewBox: "0 0 24 24",
21396    xmlns: "http://www.w3.org/2000/svg"
21397  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
21398    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"
21399  }));
21400  /* harmony default export */ var post_list = (postList);
21401  
21402  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js
21403  /**
21404   * Internal dependencies
21405   */
21406  const latest_posts_deprecated_metadata = {
21407    $schema: "https://schemas.wp.org/trunk/block.json",
21408    apiVersion: 2,
21409    name: "core/latest-posts",
21410    title: "Latest Posts",
21411    category: "widgets",
21412    description: "Display a list of your most recent posts.",
21413    keywords: ["recent posts"],
21414    textdomain: "default",
21415    attributes: {
21416      categories: {
21417        type: "array",
21418        items: {
21419          type: "object"
21420        }
21421      },
21422      selectedAuthor: {
21423        type: "number"
21424      },
21425      postsToShow: {
21426        type: "number",
21427        "default": 5
21428      },
21429      displayPostContent: {
21430        type: "boolean",
21431        "default": false
21432      },
21433      displayPostContentRadio: {
21434        type: "string",
21435        "default": "excerpt"
21436      },
21437      excerptLength: {
21438        type: "number",
21439        "default": 55
21440      },
21441      displayAuthor: {
21442        type: "boolean",
21443        "default": false
21444      },
21445      displayPostDate: {
21446        type: "boolean",
21447        "default": false
21448      },
21449      postLayout: {
21450        type: "string",
21451        "default": "list"
21452      },
21453      columns: {
21454        type: "number",
21455        "default": 3
21456      },
21457      order: {
21458        type: "string",
21459        "default": "desc"
21460      },
21461      orderBy: {
21462        type: "string",
21463        "default": "date"
21464      },
21465      displayFeaturedImage: {
21466        type: "boolean",
21467        "default": false
21468      },
21469      featuredImageAlign: {
21470        type: "string",
21471        "enum": ["left", "center", "right"]
21472      },
21473      featuredImageSizeSlug: {
21474        type: "string",
21475        "default": "thumbnail"
21476      },
21477      featuredImageSizeWidth: {
21478        type: "number",
21479        "default": null
21480      },
21481      featuredImageSizeHeight: {
21482        type: "number",
21483        "default": null
21484      },
21485      addLinkToFeaturedImage: {
21486        type: "boolean",
21487        "default": false
21488      }
21489    },
21490    supports: {
21491      align: true,
21492      html: false
21493    },
21494    editorStyle: "wp-block-latest-posts-editor",
21495    style: "wp-block-latest-posts"
21496  };
21497  const {
21498    attributes
21499  } = latest_posts_deprecated_metadata;
21500  /* harmony default export */ var latest_posts_deprecated = ([{
21501    attributes: { ...attributes,
21502      categories: {
21503        type: 'string'
21504      }
21505    },
21506    supports: {
21507      align: true,
21508      html: false
21509    },
21510    migrate: oldAttributes => {
21511      // This needs the full category object, not just the ID.
21512      return { ...oldAttributes,
21513        categories: [{
21514          id: Number(oldAttributes.categories)
21515        }]
21516      };
21517    },
21518    isEligible: _ref => {
21519      let {
21520        categories
21521      } = _ref;
21522      return categories && 'string' === typeof categories;
21523    },
21524    save: () => null
21525  }]);
21526  
21527  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list.js
21528  
21529  
21530  /**
21531   * WordPress dependencies
21532   */
21533  
21534  const list = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
21535    viewBox: "0 0 24 24",
21536    xmlns: "http://www.w3.org/2000/svg"
21537  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
21538    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"
21539  }));
21540  /* harmony default export */ var library_list = (list);
21541  
21542  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js
21543  
21544  
21545  /**
21546   * WordPress dependencies
21547   */
21548  
21549  const grid = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
21550    xmlns: "http://www.w3.org/2000/svg",
21551    viewBox: "0 0 24 24"
21552  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
21553    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",
21554    fillRule: "evenodd",
21555    clipRule: "evenodd"
21556  }));
21557  /* harmony default export */ var library_grid = (grid);
21558  
21559  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js
21560  const MIN_EXCERPT_LENGTH = 10;
21561  const MAX_EXCERPT_LENGTH = 100;
21562  const MAX_POSTS_COLUMNS = 6;
21563  
21564  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js
21565  
21566  
21567  /**
21568   * External dependencies
21569   */
21570  
21571  
21572  /**
21573   * WordPress dependencies
21574   */
21575  
21576  
21577  
21578  
21579  
21580  
21581  
21582  
21583  /**
21584   * Internal dependencies
21585   */
21586  
21587  
21588  /**
21589   * Module Constants
21590   */
21591  
21592  const CATEGORIES_LIST_QUERY = {
21593    per_page: -1,
21594    context: 'view'
21595  };
21596  const USERS_LIST_QUERY = {
21597    per_page: -1,
21598    has_published_posts: ['post'],
21599    context: 'view'
21600  };
21601  
21602  function getFeaturedImageDetails(post, size) {
21603    var _image$media_details$, _image$media_details, _image$media_details$2, _image$media_details$3;
21604  
21605    const image = (0,external_lodash_namespaceObject.get)(post, ['_embedded', 'wp:featuredmedia', '0']);
21606    return {
21607      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,
21608      alt: image === null || image === void 0 ? void 0 : image.alt_text
21609    };
21610  }
21611  
21612  function LatestPostsEdit(_ref) {
21613    var _categoriesList$reduc;
21614  
21615    let {
21616      attributes,
21617      setAttributes
21618    } = _ref;
21619    const {
21620      postsToShow,
21621      order,
21622      orderBy,
21623      categories,
21624      selectedAuthor,
21625      displayFeaturedImage,
21626      displayPostContentRadio,
21627      displayPostContent,
21628      displayPostDate,
21629      displayAuthor,
21630      postLayout,
21631      columns,
21632      excerptLength,
21633      featuredImageAlign,
21634      featuredImageSizeSlug,
21635      featuredImageSizeWidth,
21636      featuredImageSizeHeight,
21637      addLinkToFeaturedImage
21638    } = attributes;
21639    const {
21640      imageSizes,
21641      latestPosts,
21642      defaultImageWidth,
21643      defaultImageHeight,
21644      categoriesList,
21645      authorList
21646    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
21647      const {
21648        getEntityRecords,
21649        getUsers
21650      } = select(external_wp_coreData_namespaceObject.store);
21651      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
21652      const catIds = categories && categories.length > 0 ? categories.map(cat => cat.id) : [];
21653      const latestPostsQuery = (0,external_lodash_namespaceObject.pickBy)({
21654        categories: catIds,
21655        author: selectedAuthor,
21656        order,
21657        orderby: orderBy,
21658        per_page: postsToShow,
21659        _embed: 'wp:featuredmedia'
21660      }, value => !(0,external_lodash_namespaceObject.isUndefined)(value));
21661      return {
21662        defaultImageWidth: (0,external_lodash_namespaceObject.get)(settings.imageDimensions, [featuredImageSizeSlug, 'width'], 0),
21663        defaultImageHeight: (0,external_lodash_namespaceObject.get)(settings.imageDimensions, [featuredImageSizeSlug, 'height'], 0),
21664        imageSizes: settings.imageSizes,
21665        latestPosts: getEntityRecords('postType', 'post', latestPostsQuery),
21666        categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY),
21667        authorList: getUsers(USERS_LIST_QUERY)
21668      };
21669    }, [featuredImageSizeSlug, postsToShow, order, orderBy, categories, selectedAuthor]);
21670    const imageSizeOptions = imageSizes.filter(_ref2 => {
21671      let {
21672        slug
21673      } = _ref2;
21674      return slug !== 'full';
21675    }).map(_ref3 => {
21676      let {
21677        name,
21678        slug
21679      } = _ref3;
21680      return {
21681        value: slug,
21682        label: name
21683      };
21684    });
21685    const categorySuggestions = (_categoriesList$reduc = categoriesList === null || categoriesList === void 0 ? void 0 : categoriesList.reduce((accumulator, category) => ({ ...accumulator,
21686      [category.name]: category
21687    }), {})) !== null && _categoriesList$reduc !== void 0 ? _categoriesList$reduc : {};
21688  
21689    const selectCategories = tokens => {
21690      const hasNoSuggestion = tokens.some(token => typeof token === 'string' && !categorySuggestions[token]);
21691  
21692      if (hasNoSuggestion) {
21693        return;
21694      } // Categories that are already will be objects, while new additions will be strings (the name).
21695      // allCategories nomalizes the array so that they are all objects.
21696  
21697  
21698      const allCategories = tokens.map(token => {
21699        return typeof token === 'string' ? categorySuggestions[token] : token;
21700      }); // We do nothing if the category is not selected
21701      // from suggestions.
21702  
21703      if ((0,external_lodash_namespaceObject.includes)(allCategories, null)) {
21704        return false;
21705      }
21706  
21707      setAttributes({
21708        categories: allCategories
21709      });
21710    };
21711  
21712    const hasPosts = !!(latestPosts !== null && latestPosts !== void 0 && latestPosts.length);
21713    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, {
21714      title: (0,external_wp_i18n_namespaceObject.__)('Post content settings')
21715    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21716      label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
21717      checked: displayPostContent,
21718      onChange: value => setAttributes({
21719        displayPostContent: value
21720      })
21721    }), displayPostContent && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RadioControl, {
21722      label: (0,external_wp_i18n_namespaceObject.__)('Show:'),
21723      selected: displayPostContentRadio,
21724      options: [{
21725        label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
21726        value: 'excerpt'
21727      }, {
21728        label: (0,external_wp_i18n_namespaceObject.__)('Full post'),
21729        value: 'full_post'
21730      }],
21731      onChange: value => setAttributes({
21732        displayPostContentRadio: value
21733      })
21734    }), displayPostContent && displayPostContentRadio === 'excerpt' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
21735      label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
21736      value: excerptLength,
21737      onChange: value => setAttributes({
21738        excerptLength: value
21739      }),
21740      min: MIN_EXCERPT_LENGTH,
21741      max: MAX_EXCERPT_LENGTH
21742    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
21743      title: (0,external_wp_i18n_namespaceObject.__)('Post meta settings')
21744    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21745      label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
21746      checked: displayAuthor,
21747      onChange: value => setAttributes({
21748        displayAuthor: value
21749      })
21750    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21751      label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
21752      checked: displayPostDate,
21753      onChange: value => setAttributes({
21754        displayPostDate: value
21755      })
21756    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
21757      title: (0,external_wp_i18n_namespaceObject.__)('Featured image settings')
21758    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21759      label: (0,external_wp_i18n_namespaceObject.__)('Display featured image'),
21760      checked: displayFeaturedImage,
21761      onChange: value => setAttributes({
21762        displayFeaturedImage: value
21763      })
21764    }), displayFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
21765      onChange: value => {
21766        const newAttrs = {};
21767  
21768        if (value.hasOwnProperty('width')) {
21769          newAttrs.featuredImageSizeWidth = value.width;
21770        }
21771  
21772        if (value.hasOwnProperty('height')) {
21773          newAttrs.featuredImageSizeHeight = value.height;
21774        }
21775  
21776        setAttributes(newAttrs);
21777      },
21778      slug: featuredImageSizeSlug,
21779      width: featuredImageSizeWidth,
21780      height: featuredImageSizeHeight,
21781      imageWidth: defaultImageWidth,
21782      imageHeight: defaultImageHeight,
21783      imageSizeOptions: imageSizeOptions,
21784      onChangeImage: value => setAttributes({
21785        featuredImageSizeSlug: value,
21786        featuredImageSizeWidth: undefined,
21787        featuredImageSizeHeight: undefined
21788      })
21789    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
21790      className: "editor-latest-posts-image-alignment-control"
21791    }, (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, {
21792      value: featuredImageAlign,
21793      onChange: value => setAttributes({
21794        featuredImageAlign: value
21795      }),
21796      controls: ['left', 'center', 'right'],
21797      isCollapsed: false
21798    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
21799      label: (0,external_wp_i18n_namespaceObject.__)('Add link to featured image'),
21800      checked: addLinkToFeaturedImage,
21801      onChange: value => setAttributes({
21802        addLinkToFeaturedImage: value
21803      })
21804    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
21805      title: (0,external_wp_i18n_namespaceObject.__)('Sorting and filtering')
21806    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.QueryControls, {
21807      order,
21808      orderBy,
21809      numberOfItems: postsToShow,
21810      onOrderChange: value => setAttributes({
21811        order: value
21812      }),
21813      onOrderByChange: value => setAttributes({
21814        orderBy: value
21815      }),
21816      onNumberOfItemsChange: value => setAttributes({
21817        postsToShow: value
21818      }),
21819      categorySuggestions: categorySuggestions,
21820      onCategoryChange: selectCategories,
21821      selectedCategories: categories,
21822      onAuthorChange: value => setAttributes({
21823        selectedAuthor: '' !== value ? Number(value) : undefined
21824      }),
21825      authorList: authorList !== null && authorList !== void 0 ? authorList : [],
21826      selectedAuthorId: selectedAuthor
21827    }), postLayout === 'grid' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
21828      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
21829      value: columns,
21830      onChange: value => setAttributes({
21831        columns: value
21832      }),
21833      min: 2,
21834      max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length),
21835      required: true
21836    })));
21837    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
21838      className: classnames_default()({
21839        'wp-block-latest-posts__list': true,
21840        'is-grid': postLayout === 'grid',
21841        'has-dates': displayPostDate,
21842        'has-author': displayAuthor,
21843        [`columns-$columns}`]: postLayout === 'grid'
21844      })
21845    });
21846  
21847    if (!hasPosts) {
21848      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
21849        icon: library_pin,
21850        label: (0,external_wp_i18n_namespaceObject.__)('Latest Posts')
21851      }, !Array.isArray(latestPosts) ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null) : (0,external_wp_i18n_namespaceObject.__)('No posts found.')));
21852    } // Removing posts from display should be instant.
21853  
21854  
21855    const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;
21856    const layoutControls = [{
21857      icon: library_list,
21858      title: (0,external_wp_i18n_namespaceObject.__)('List view'),
21859      onClick: () => setAttributes({
21860        postLayout: 'list'
21861      }),
21862      isActive: postLayout === 'list'
21863    }, {
21864      icon: library_grid,
21865      title: (0,external_wp_i18n_namespaceObject.__)('Grid view'),
21866      onClick: () => setAttributes({
21867        postLayout: 'grid'
21868      }),
21869      isActive: postLayout === 'grid'
21870    }];
21871  
21872    const dateFormat = (0,external_wp_date_namespaceObject.__experimentalGetSettings)().formats.date;
21873  
21874    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, {
21875      controls: layoutControls
21876    })), (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, displayPosts.map((post, i) => {
21877      const titleTrimmed = (0,external_lodash_namespaceObject.invoke)(post, ['title', 'rendered', 'trim']);
21878      let excerpt = post.excerpt.rendered;
21879      const currentAuthor = authorList === null || authorList === void 0 ? void 0 : authorList.find(author => author.id === post.author);
21880      const excerptElement = document.createElement('div');
21881      excerptElement.innerHTML = excerpt;
21882      excerpt = excerptElement.textContent || excerptElement.innerText || '';
21883      const {
21884        url: imageSourceUrl,
21885        alt: featuredImageAlt
21886      } = getFeaturedImageDetails(post, featuredImageSizeSlug);
21887      const imageClasses = classnames_default()({
21888        'wp-block-latest-posts__featured-image': true,
21889        [`align$featuredImageAlign}`]: !!featuredImageAlign
21890      });
21891      const renderFeaturedImage = displayFeaturedImage && imageSourceUrl;
21892      const featuredImage = renderFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("img", {
21893        src: imageSourceUrl,
21894        alt: featuredImageAlt,
21895        style: {
21896          maxWidth: featuredImageSizeWidth,
21897          maxHeight: featuredImageSizeHeight
21898        }
21899      });
21900      const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
21901      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", {
21902        href: post.link,
21903        rel: "noopener noreferrer"
21904      }, (0,external_wp_i18n_namespaceObject.__)('Read more'))) : excerpt;
21905      return (0,external_wp_element_namespaceObject.createElement)("li", {
21906        key: i
21907      }, renderFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("div", {
21908        className: imageClasses
21909      }, addLinkToFeaturedImage ? (0,external_wp_element_namespaceObject.createElement)("a", {
21910        className: "wp-block-latest-posts__post-title",
21911        href: post.link,
21912        rel: "noreferrer noopener"
21913      }, featuredImage) : featuredImage), (0,external_wp_element_namespaceObject.createElement)("a", {
21914        href: post.link,
21915        rel: "noreferrer noopener",
21916        dangerouslySetInnerHTML: !!titleTrimmed ? {
21917          __html: titleTrimmed
21918        } : undefined
21919      }, !titleTrimmed ? (0,external_wp_i18n_namespaceObject.__)('(no title)') : null), displayAuthor && currentAuthor && (0,external_wp_element_namespaceObject.createElement)("div", {
21920        className: "wp-block-latest-posts__post-author"
21921      }, (0,external_wp_i18n_namespaceObject.sprintf)(
21922      /* translators: byline. %s: current author. */
21923      (0,external_wp_i18n_namespaceObject.__)('by %s'), currentAuthor.name)), displayPostDate && post.date_gmt && (0,external_wp_element_namespaceObject.createElement)("time", {
21924        dateTime: (0,external_wp_date_namespaceObject.format)('c', post.date_gmt),
21925        className: "wp-block-latest-posts__post-date"
21926      }, (0,external_wp_date_namespaceObject.dateI18n)(dateFormat, post.date_gmt)), displayPostContent && displayPostContentRadio === 'excerpt' && (0,external_wp_element_namespaceObject.createElement)("div", {
21927        className: "wp-block-latest-posts__post-excerpt"
21928      }, postExcerpt), displayPostContent && displayPostContentRadio === 'full_post' && (0,external_wp_element_namespaceObject.createElement)("div", {
21929        className: "wp-block-latest-posts__post-full-content",
21930        dangerouslySetInnerHTML: {
21931          __html: post.content.raw.trim()
21932        }
21933      }));
21934    })));
21935  }
21936  
21937  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
21938  /**
21939   * WordPress dependencies
21940   */
21941  
21942  /**
21943   * Internal dependencies
21944   */
21945  
21946  
21947  
21948  const latest_posts_metadata = {
21949    $schema: "https://schemas.wp.org/trunk/block.json",
21950    apiVersion: 2,
21951    name: "core/latest-posts",
21952    title: "Latest Posts",
21953    category: "widgets",
21954    description: "Display a list of your most recent posts.",
21955    keywords: ["recent posts"],
21956    textdomain: "default",
21957    attributes: {
21958      categories: {
21959        type: "array",
21960        items: {
21961          type: "object"
21962        }
21963      },
21964      selectedAuthor: {
21965        type: "number"
21966      },
21967      postsToShow: {
21968        type: "number",
21969        "default": 5
21970      },
21971      displayPostContent: {
21972        type: "boolean",
21973        "default": false
21974      },
21975      displayPostContentRadio: {
21976        type: "string",
21977        "default": "excerpt"
21978      },
21979      excerptLength: {
21980        type: "number",
21981        "default": 55
21982      },
21983      displayAuthor: {
21984        type: "boolean",
21985        "default": false
21986      },
21987      displayPostDate: {
21988        type: "boolean",
21989        "default": false
21990      },
21991      postLayout: {
21992        type: "string",
21993        "default": "list"
21994      },
21995      columns: {
21996        type: "number",
21997        "default": 3
21998      },
21999      order: {
22000        type: "string",
22001        "default": "desc"
22002      },
22003      orderBy: {
22004        type: "string",
22005        "default": "date"
22006      },
22007      displayFeaturedImage: {
22008        type: "boolean",
22009        "default": false
22010      },
22011      featuredImageAlign: {
22012        type: "string",
22013        "enum": ["left", "center", "right"]
22014      },
22015      featuredImageSizeSlug: {
22016        type: "string",
22017        "default": "thumbnail"
22018      },
22019      featuredImageSizeWidth: {
22020        type: "number",
22021        "default": null
22022      },
22023      featuredImageSizeHeight: {
22024        type: "number",
22025        "default": null
22026      },
22027      addLinkToFeaturedImage: {
22028        type: "boolean",
22029        "default": false
22030      }
22031    },
22032    supports: {
22033      align: true,
22034      html: false
22035    },
22036    editorStyle: "wp-block-latest-posts-editor",
22037    style: "wp-block-latest-posts"
22038  };
22039  const {
22040    name: latest_posts_name
22041  } = latest_posts_metadata;
22042  
22043  const latest_posts_settings = {
22044    icon: post_list,
22045    example: {},
22046    edit: LatestPostsEdit,
22047    deprecated: latest_posts_deprecated
22048  };
22049  
22050  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/deprecated.js
22051  
22052  
22053  /**
22054   * WordPress dependencies
22055   */
22056  
22057  /**
22058   * Internal dependencies
22059   */
22060  
22061  
22062  const v0 = {
22063    attributes: {
22064      ordered: {
22065        type: 'boolean',
22066        default: false,
22067        __experimentalRole: 'content'
22068      },
22069      values: {
22070        type: 'string',
22071        source: 'html',
22072        selector: 'ol,ul',
22073        multiline: 'li',
22074        __unstableMultilineWrapperTags: ['ol', 'ul'],
22075        default: '',
22076        __experimentalRole: 'content'
22077      },
22078      type: {
22079        type: 'string'
22080      },
22081      start: {
22082        type: 'number'
22083      },
22084      reversed: {
22085        type: 'boolean'
22086      },
22087      placeholder: {
22088        type: 'string'
22089      }
22090    },
22091    supports: {
22092      anchor: true,
22093      className: false,
22094      typography: {
22095        fontSize: true,
22096        __experimentalFontFamily: true
22097      },
22098      color: {
22099        gradients: true,
22100        link: true
22101      },
22102      __unstablePasteTextInline: true,
22103      __experimentalSelector: 'ol,ul',
22104      __experimentalSlashInserter: true
22105    },
22106  
22107    save(_ref) {
22108      let {
22109        attributes
22110      } = _ref;
22111      const {
22112        ordered,
22113        values,
22114        type,
22115        reversed,
22116        start
22117      } = attributes;
22118      const TagName = ordered ? 'ol' : 'ul';
22119      return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
22120        type,
22121        reversed,
22122        start
22123      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
22124        value: values,
22125        multiline: "li"
22126      }));
22127    },
22128  
22129    migrate: migrate_font_family,
22130  
22131    isEligible(_ref2) {
22132      var _style$typography;
22133  
22134      let {
22135        style
22136      } = _ref2;
22137      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
22138    }
22139  
22140  };
22141  /**
22142   * New deprecations need to be placed first
22143   * for them to have higher priority.
22144   *
22145   * Old deprecations may need to be updated as well.
22146   *
22147   * See block-deprecation.md
22148   */
22149  
22150  /* harmony default export */ var list_deprecated = ([v0]);
22151  
22152  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js
22153  
22154  
22155  /**
22156   * WordPress dependencies
22157   */
22158  
22159  const formatListBulletsRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22160    xmlns: "http://www.w3.org/2000/svg",
22161    viewBox: "0 0 24 24"
22162  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22163    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"
22164  }));
22165  /* harmony default export */ var format_list_bullets_rtl = (formatListBulletsRTL);
22166  
22167  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js
22168  
22169  
22170  /**
22171   * WordPress dependencies
22172   */
22173  
22174  const formatListBullets = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22175    xmlns: "http://www.w3.org/2000/svg",
22176    viewBox: "0 0 24 24"
22177  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22178    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"
22179  }));
22180  /* harmony default export */ var format_list_bullets = (formatListBullets);
22181  
22182  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js
22183  
22184  
22185  /**
22186   * WordPress dependencies
22187   */
22188  
22189  const formatListNumberedRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22190    xmlns: "http://www.w3.org/2000/svg",
22191    viewBox: "0 0 24 24"
22192  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22193    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"
22194  }));
22195  /* harmony default export */ var format_list_numbered_rtl = (formatListNumberedRTL);
22196  
22197  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js
22198  
22199  
22200  /**
22201   * WordPress dependencies
22202   */
22203  
22204  const formatListNumbered = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22205    xmlns: "http://www.w3.org/2000/svg",
22206    viewBox: "0 0 24 24"
22207  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22208    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"
22209  }));
22210  /* harmony default export */ var format_list_numbered = (formatListNumbered);
22211  
22212  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js
22213  
22214  
22215  /**
22216   * WordPress dependencies
22217   */
22218  
22219  const formatOutdentRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22220    xmlns: "http://www.w3.org/2000/svg",
22221    viewBox: "0 0 24 24"
22222  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22223    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"
22224  }));
22225  /* harmony default export */ var format_outdent_rtl = (formatOutdentRTL);
22226  
22227  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent.js
22228  
22229  
22230  /**
22231   * WordPress dependencies
22232   */
22233  
22234  const formatOutdent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22235    xmlns: "http://www.w3.org/2000/svg",
22236    viewBox: "0 0 24 24"
22237  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22238    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"
22239  }));
22240  /* harmony default export */ var format_outdent = (formatOutdent);
22241  
22242  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js
22243  
22244  
22245  /**
22246   * WordPress dependencies
22247   */
22248  
22249  const formatIndentRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22250    xmlns: "http://www.w3.org/2000/svg",
22251    viewBox: "0 0 24 24"
22252  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22253    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"
22254  }));
22255  /* harmony default export */ var format_indent_rtl = (formatIndentRTL);
22256  
22257  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent.js
22258  
22259  
22260  /**
22261   * WordPress dependencies
22262   */
22263  
22264  const formatIndent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22265    xmlns: "http://www.w3.org/2000/svg",
22266    viewBox: "0 0 24 24"
22267  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22268    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"
22269  }));
22270  /* harmony default export */ var format_indent = (formatIndent);
22271  
22272  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js
22273  
22274  
22275  /**
22276   * WordPress dependencies
22277   */
22278  
22279  
22280  
22281  
22282  const OrderedListSettings = _ref => {
22283    let {
22284      setAttributes,
22285      reversed,
22286      start
22287    } = _ref;
22288    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
22289      title: (0,external_wp_i18n_namespaceObject.__)('Ordered list settings')
22290    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
22291      label: (0,external_wp_i18n_namespaceObject.__)('Start value'),
22292      type: "number",
22293      onChange: value => {
22294        const int = parseInt(value, 10);
22295        setAttributes({
22296          // It should be possible to unset the value,
22297          // e.g. with an empty string.
22298          start: isNaN(int) ? undefined : int
22299        });
22300      },
22301      value: Number.isInteger(start) ? start.toString(10) : '',
22302      step: "1"
22303    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
22304      label: (0,external_wp_i18n_namespaceObject.__)('Reverse list numbering'),
22305      checked: reversed || false,
22306      onChange: value => {
22307        setAttributes({
22308          // Unset the attribute if not reversed.
22309          reversed: value || undefined
22310        });
22311      }
22312    })));
22313  };
22314  
22315  /* harmony default export */ var ordered_list_settings = (OrderedListSettings);
22316  
22317  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/edit.js
22318  
22319  
22320  
22321  /**
22322   * WordPress dependencies
22323   */
22324  
22325  
22326  
22327  
22328  
22329  
22330  /**
22331   * Internal dependencies
22332   */
22333  
22334  
22335  
22336  function ListEdit(_ref) {
22337    let {
22338      attributes,
22339      setAttributes,
22340      mergeBlocks,
22341      onReplace,
22342      style
22343    } = _ref;
22344    const {
22345      ordered,
22346      values,
22347      type,
22348      reversed,
22349      start,
22350      placeholder
22351    } = attributes;
22352    const tagName = ordered ? 'ol' : 'ul';
22353  
22354    const controls = _ref2 => {
22355      let {
22356        value,
22357        onChange,
22358        onFocus
22359      } = _ref2;
22360      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
22361        type: "primary",
22362        character: "[",
22363        onUse: () => {
22364          onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value));
22365        }
22366      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
22367        type: "primary",
22368        character: "]",
22369        onUse: () => {
22370          onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, {
22371            type: tagName
22372          }));
22373        }
22374      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
22375        type: "primary",
22376        character: "m",
22377        onUse: () => {
22378          onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, {
22379            type: tagName
22380          }));
22381        }
22382      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
22383        type: "primaryShift",
22384        character: "m",
22385        onUse: () => {
22386          onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value));
22387        }
22388      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
22389        group: "block"
22390      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
22391        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_bullets_rtl : format_list_bullets,
22392        title: (0,external_wp_i18n_namespaceObject.__)('Unordered'),
22393        describedBy: (0,external_wp_i18n_namespaceObject.__)('Convert to unordered list'),
22394        isActive: (0,external_wp_richText_namespaceObject.__unstableIsActiveListType)(value, 'ul', tagName),
22395        onClick: () => {
22396          onChange((0,external_wp_richText_namespaceObject.__unstableChangeListType)(value, {
22397            type: 'ul'
22398          }));
22399          onFocus();
22400  
22401          if ((0,external_wp_richText_namespaceObject.__unstableIsListRootSelected)(value)) {
22402            setAttributes({
22403              ordered: false
22404            });
22405          }
22406        }
22407      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
22408        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_numbered_rtl : format_list_numbered,
22409        title: (0,external_wp_i18n_namespaceObject.__)('Ordered'),
22410        describedBy: (0,external_wp_i18n_namespaceObject.__)('Convert to ordered list'),
22411        isActive: (0,external_wp_richText_namespaceObject.__unstableIsActiveListType)(value, 'ol', tagName),
22412        onClick: () => {
22413          onChange((0,external_wp_richText_namespaceObject.__unstableChangeListType)(value, {
22414            type: 'ol'
22415          }));
22416          onFocus();
22417  
22418          if ((0,external_wp_richText_namespaceObject.__unstableIsListRootSelected)(value)) {
22419            setAttributes({
22420              ordered: true
22421            });
22422          }
22423        }
22424      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
22425        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
22426        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
22427        describedBy: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
22428        shortcut: (0,external_wp_i18n_namespaceObject._x)('Backspace', 'keyboard key'),
22429        isDisabled: !(0,external_wp_richText_namespaceObject.__unstableCanOutdentListItems)(value),
22430        onClick: () => {
22431          onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value));
22432          onFocus();
22433        }
22434      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
22435        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_indent_rtl : format_indent,
22436        title: (0,external_wp_i18n_namespaceObject.__)('Indent'),
22437        describedBy: (0,external_wp_i18n_namespaceObject.__)('Indent list item'),
22438        shortcut: (0,external_wp_i18n_namespaceObject._x)('Space', 'keyboard key'),
22439        isDisabled: !(0,external_wp_richText_namespaceObject.__unstableCanIndentListItems)(value),
22440        onClick: () => {
22441          onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, {
22442            type: tagName
22443          }));
22444          onFocus();
22445        }
22446      })));
22447    };
22448  
22449    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
22450      style
22451    });
22452    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({
22453      identifier: "values",
22454      multiline: "li",
22455      tagName: tagName,
22456      onChange: nextValues => setAttributes({
22457        values: nextValues
22458      }),
22459      value: values,
22460      "aria-label": (0,external_wp_i18n_namespaceObject.__)('List text'),
22461      placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('List'),
22462      onMerge: mergeBlocks,
22463      onSplit: value => (0,external_wp_blocks_namespaceObject.createBlock)(list_name, { ...attributes,
22464        values: value
22465      }),
22466      __unstableOnSplitMiddle: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'),
22467      onReplace: onReplace,
22468      onRemove: () => onReplace([]),
22469      start: start,
22470      reversed: reversed,
22471      type: type
22472    }, blockProps), controls), ordered && (0,external_wp_element_namespaceObject.createElement)(ordered_list_settings, {
22473      setAttributes: setAttributes,
22474      ordered: ordered,
22475      reversed: reversed,
22476      start: start,
22477      placeholder: placeholder
22478    }));
22479  }
22480  
22481  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/save.js
22482  
22483  
22484  /**
22485   * WordPress dependencies
22486   */
22487  
22488  function list_save_save(_ref) {
22489    let {
22490      attributes
22491    } = _ref;
22492    const {
22493      ordered,
22494      values,
22495      type,
22496      reversed,
22497      start
22498    } = attributes;
22499    const TagName = ordered ? 'ol' : 'ul';
22500    return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({
22501      type,
22502      reversed,
22503      start
22504    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
22505      value: values,
22506      multiline: "li"
22507    }));
22508  }
22509  
22510  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/transforms.js
22511  /**
22512   * WordPress dependencies
22513   */
22514  
22515  
22516  
22517  function getListContentSchema(_ref) {
22518    let {
22519      phrasingContentSchema
22520    } = _ref;
22521    const listContentSchema = { ...phrasingContentSchema,
22522      ul: {},
22523      ol: {
22524        attributes: ['type', 'start', 'reversed']
22525      }
22526    }; // Recursion is needed.
22527    // Possible: ul > li > ul.
22528    // Impossible: ul > ul.
22529  
22530    ['ul', 'ol'].forEach(tag => {
22531      listContentSchema[tag].children = {
22532        li: {
22533          children: listContentSchema
22534        }
22535      };
22536    });
22537    return listContentSchema;
22538  }
22539  
22540  const list_transforms_transforms = {
22541    from: [{
22542      type: 'block',
22543      isMultiBlock: true,
22544      blocks: ['core/paragraph', 'core/heading'],
22545      transform: blockAttributes => {
22546        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
22547          values: (0,external_wp_richText_namespaceObject.toHTMLString)({
22548            value: (0,external_wp_richText_namespaceObject.join)(blockAttributes.map(_ref2 => {
22549              let {
22550                content
22551              } = _ref2;
22552              const value = (0,external_wp_richText_namespaceObject.create)({
22553                html: content
22554              });
22555  
22556              if (blockAttributes.length > 1) {
22557                return value;
22558              } // When converting only one block, transform
22559              // every line to a list item.
22560  
22561  
22562              return (0,external_wp_richText_namespaceObject.replace)(value, /\n/g, external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR);
22563            }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR),
22564            multilineTag: 'li'
22565          }),
22566          anchor: blockAttributes.anchor
22567        });
22568      }
22569    }, {
22570      type: 'block',
22571      blocks: ['core/quote', 'core/pullquote'],
22572      transform: _ref3 => {
22573        let {
22574          value,
22575          anchor
22576        } = _ref3;
22577        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
22578          values: (0,external_wp_richText_namespaceObject.toHTMLString)({
22579            value: (0,external_wp_richText_namespaceObject.create)({
22580              html: value,
22581              multilineTag: 'p'
22582            }),
22583            multilineTag: 'li'
22584          }),
22585          anchor
22586        });
22587      }
22588    }, {
22589      type: 'raw',
22590      selector: 'ol,ul',
22591      schema: args => ({
22592        ol: getListContentSchema(args).ol,
22593        ul: getListContentSchema(args).ul
22594      }),
22595  
22596      transform(node) {
22597        const attributes = {
22598          ordered: node.nodeName === 'OL',
22599          anchor: node.id === '' ? undefined : node.id
22600        };
22601  
22602        if (attributes.ordered) {
22603          const type = node.getAttribute('type');
22604  
22605          if (type) {
22606            attributes.type = type;
22607          }
22608  
22609          if (node.getAttribute('reversed') !== null) {
22610            attributes.reversed = true;
22611          }
22612  
22613          const start = parseInt(node.getAttribute('start'), 10);
22614  
22615          if (!isNaN(start) && ( // start=1 only makes sense if the list is reversed.
22616          start !== 1 || attributes.reversed)) {
22617            attributes.start = start;
22618          }
22619        }
22620  
22621        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { ...(0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/list', node.outerHTML),
22622          ...attributes
22623        });
22624      }
22625  
22626    }, ...['*', '-'].map(prefix => ({
22627      type: 'prefix',
22628      prefix,
22629  
22630      transform(content) {
22631        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
22632          values: `<li>$content}</li>`
22633        });
22634      }
22635  
22636    })), ...['1.', '1)'].map(prefix => ({
22637      type: 'prefix',
22638      prefix,
22639  
22640      transform(content) {
22641        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
22642          ordered: true,
22643          values: `<li>$content}</li>`
22644        });
22645      }
22646  
22647    }))],
22648    to: [{
22649      type: 'block',
22650      blocks: ['core/paragraph'],
22651      transform: _ref4 => {
22652        let {
22653          values
22654        } = _ref4;
22655        return (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
22656          html: values,
22657          multilineTag: 'li',
22658          multilineWrapperTags: ['ul', 'ol']
22659        }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR).map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
22660          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
22661            value: piece
22662          })
22663        }));
22664      }
22665    }, {
22666      type: 'block',
22667      blocks: ['core/heading'],
22668      transform: _ref5 => {
22669        let {
22670          values
22671        } = _ref5;
22672        return (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
22673          html: values,
22674          multilineTag: 'li',
22675          multilineWrapperTags: ['ul', 'ol']
22676        }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR).map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
22677          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
22678            value: piece
22679          })
22680        }));
22681      }
22682    }, {
22683      type: 'block',
22684      blocks: ['core/quote'],
22685      transform: _ref6 => {
22686        let {
22687          values,
22688          anchor
22689        } = _ref6;
22690        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
22691          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
22692            value: (0,external_wp_richText_namespaceObject.create)({
22693              html: values,
22694              multilineTag: 'li',
22695              multilineWrapperTags: ['ul', 'ol']
22696            }),
22697            multilineTag: 'p'
22698          }),
22699          anchor
22700        });
22701      }
22702    }, {
22703      type: 'block',
22704      blocks: ['core/pullquote'],
22705      transform: _ref7 => {
22706        let {
22707          values,
22708          anchor
22709        } = _ref7;
22710        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
22711          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
22712            value: (0,external_wp_richText_namespaceObject.create)({
22713              html: values,
22714              multilineTag: 'li',
22715              multilineWrapperTags: ['ul', 'ol']
22716            }),
22717            multilineTag: 'p'
22718          }),
22719          anchor
22720        });
22721      }
22722    }]
22723  };
22724  /* harmony default export */ var list_transforms = (list_transforms_transforms);
22725  
22726  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/index.js
22727  /**
22728   * WordPress dependencies
22729   */
22730  
22731  /**
22732   * Internal dependencies
22733   */
22734  
22735  
22736  
22737  const list_metadata = {
22738    $schema: "https://schemas.wp.org/trunk/block.json",
22739    apiVersion: 2,
22740    name: "core/list",
22741    title: "List",
22742    category: "text",
22743    description: "Create a bulleted or numbered list.",
22744    keywords: ["bullet list", "ordered list", "numbered list"],
22745    textdomain: "default",
22746    attributes: {
22747      ordered: {
22748        type: "boolean",
22749        "default": false,
22750        __experimentalRole: "content"
22751      },
22752      values: {
22753        type: "string",
22754        source: "html",
22755        selector: "ol,ul",
22756        multiline: "li",
22757        __unstableMultilineWrapperTags: ["ol", "ul"],
22758        "default": "",
22759        __experimentalRole: "content"
22760      },
22761      type: {
22762        type: "string"
22763      },
22764      start: {
22765        type: "number"
22766      },
22767      reversed: {
22768        type: "boolean"
22769      },
22770      placeholder: {
22771        type: "string"
22772      }
22773    },
22774    supports: {
22775      anchor: true,
22776      className: false,
22777      typography: {
22778        fontSize: true,
22779        __experimentalFontFamily: true,
22780        lineHeight: true,
22781        __experimentalFontStyle: true,
22782        __experimentalFontWeight: true,
22783        __experimentalLetterSpacing: true,
22784        __experimentalTextTransform: true,
22785        __experimentalDefaultControls: {
22786          fontSize: true
22787        }
22788      },
22789      color: {
22790        gradients: true,
22791        link: true,
22792        __experimentalDefaultControls: {
22793          background: true,
22794          text: true
22795        }
22796      },
22797      __unstablePasteTextInline: true,
22798      __experimentalSelector: "ol,ul",
22799      __experimentalSlashInserter: true
22800    },
22801    editorStyle: "wp-block-list-editor",
22802    style: "wp-block-list"
22803  };
22804  
22805  
22806  
22807  const {
22808    name: list_name
22809  } = list_metadata;
22810  
22811  const settingsV1 = {
22812    icon: library_list,
22813    example: {
22814      attributes: {
22815        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>'
22816      }
22817    },
22818    transforms: list_transforms,
22819  
22820    merge(attributes, attributesToMerge) {
22821      const {
22822        values
22823      } = attributesToMerge;
22824  
22825      if (!values || values === '<li></li>') {
22826        return attributes;
22827      }
22828  
22829      return { ...attributes,
22830        values: attributes.values + values
22831      };
22832    },
22833  
22834    edit: ListEdit,
22835    save: list_save_save,
22836    deprecated: list_deprecated
22837  };
22838  let list_settings = settingsV1;
22839  
22840  if (false) { var _window; }
22841  
22842  
22843  
22844  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/login.js
22845  
22846  
22847  /**
22848   * WordPress dependencies
22849   */
22850  
22851  const login = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22852    xmlns: "http://www.w3.org/2000/svg",
22853    viewBox: "0 0 24 24"
22854  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22855    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"
22856  }));
22857  /* harmony default export */ var library_login = (login);
22858  
22859  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/edit.js
22860  
22861  
22862  /**
22863   * WordPress dependencies
22864   */
22865  
22866  
22867  
22868  function LoginOutEdit(_ref) {
22869    let {
22870      attributes,
22871      setAttributes
22872    } = _ref;
22873    const {
22874      displayLoginAsForm,
22875      redirectToCurrent
22876    } = attributes;
22877    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, {
22878      title: (0,external_wp_i18n_namespaceObject.__)('Login/out settings')
22879    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
22880      label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
22881      checked: displayLoginAsForm,
22882      onChange: () => setAttributes({
22883        displayLoginAsForm: !displayLoginAsForm
22884      })
22885    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
22886      label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
22887      checked: redirectToCurrent,
22888      onChange: () => setAttributes({
22889        redirectToCurrent: !redirectToCurrent
22890      })
22891    }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
22892      className: 'logged-in'
22893    }), (0,external_wp_element_namespaceObject.createElement)("a", {
22894      href: "#login-pseudo-link"
22895    }, (0,external_wp_i18n_namespaceObject.__)('Log out'))));
22896  }
22897  
22898  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/index.js
22899  /**
22900   * WordPress dependencies
22901   */
22902  
22903  /**
22904   * Internal dependencies
22905   */
22906  
22907  
22908  const loginout_metadata = {
22909    $schema: "https://schemas.wp.org/trunk/block.json",
22910    apiVersion: 2,
22911    name: "core/loginout",
22912    title: "Login/out",
22913    category: "theme",
22914    description: "Show login & logout links.",
22915    keywords: ["login", "logout", "form"],
22916    textdomain: "default",
22917    attributes: {
22918      displayLoginAsForm: {
22919        type: "boolean",
22920        "default": false
22921      },
22922      redirectToCurrent: {
22923        type: "boolean",
22924        "default": true
22925      }
22926    },
22927    supports: {
22928      className: true,
22929      typography: {
22930        fontSize: false
22931      }
22932    }
22933  };
22934  const {
22935    name: loginout_name
22936  } = loginout_metadata;
22937  
22938  const loginout_settings = {
22939    icon: library_login,
22940    edit: LoginOutEdit
22941  };
22942  
22943  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media-and-text.js
22944  
22945  
22946  /**
22947   * WordPress dependencies
22948   */
22949  
22950  const mediaAndText = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
22951    xmlns: "http://www.w3.org/2000/svg",
22952    viewBox: "0 0 24 24"
22953  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
22954    d: "M3 18h8V6H3v12zM14 7.5V9h7V7.5h-7zm0 5.3h7v-1.5h-7v1.5zm0 3.7h7V15h-7v1.5z"
22955  }));
22956  /* harmony default export */ var media_and_text = (mediaAndText);
22957  
22958  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container-icon.js
22959  
22960  
22961  /**
22962   * WordPress dependencies
22963   */
22964  
22965  /* harmony default export */ var media_container_icon = ((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
22966    xmlns: "http://www.w3.org/2000/svg",
22967    viewBox: "0 0 24 24"
22968  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
22969    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"
22970  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
22971    d: "M14 20H4V10h3V8H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3h-2z"
22972  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
22973    d: "M5 19h8l-1.59-2H9.24l-.84 1.1L7 16.3 5 19z"
22974  })));
22975  
22976  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js
22977  
22978  
22979  
22980  /**
22981   * External dependencies
22982   */
22983  
22984  
22985  /**
22986   * WordPress dependencies
22987   */
22988  
22989  
22990  
22991  
22992  
22993  
22994  
22995  
22996  /**
22997   * Internal dependencies
22998   */
22999  
23000  
23001  /**
23002   * Constants
23003   */
23004  
23005  const media_container_ALLOWED_MEDIA_TYPES = ['image', 'video'];
23006  function imageFillStyles(url, focalPoint) {
23007    return url ? {
23008      backgroundImage: `url($url})`,
23009      backgroundPosition: focalPoint ? `$focalPoint.x * 100}% $focalPoint.y * 100}%` : `50% 50%`
23010    } : {};
23011  }
23012  const ResizableBoxContainer = (0,external_wp_element_namespaceObject.forwardRef)((_ref, ref) => {
23013    let {
23014      isSelected,
23015      isStackedOnMobile,
23016      ...props
23017    } = _ref;
23018    const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
23019    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({
23020      ref: ref,
23021      showHandle: isSelected && (!isMobile || !isStackedOnMobile)
23022    }, props));
23023  });
23024  
23025  function ToolbarEditButton(_ref2) {
23026    let {
23027      mediaId,
23028      mediaUrl,
23029      onSelectMedia
23030    } = _ref2;
23031    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
23032      group: "other"
23033    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
23034      mediaId: mediaId,
23035      mediaURL: mediaUrl,
23036      allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
23037      accept: "image/*,video/*",
23038      onSelect: onSelectMedia
23039    }));
23040  }
23041  
23042  function PlaceholderContainer(_ref3) {
23043    let {
23044      className,
23045      noticeOperations,
23046      noticeUI,
23047      mediaUrl,
23048      onSelectMedia
23049    } = _ref3;
23050  
23051    const onUploadError = message => {
23052      noticeOperations.removeAllNotices();
23053      noticeOperations.createErrorNotice(message);
23054    };
23055  
23056    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
23057      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
23058        icon: media_container_icon
23059      }),
23060      labels: {
23061        title: (0,external_wp_i18n_namespaceObject.__)('Media area')
23062      },
23063      className: className,
23064      onSelect: onSelectMedia,
23065      accept: "image/*,video/*",
23066      allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
23067      notices: noticeUI,
23068      onError: onUploadError,
23069      disableMediaButtons: mediaUrl
23070    });
23071  }
23072  
23073  function MediaContainer(props, ref) {
23074    const {
23075      className,
23076      commitWidthChange,
23077      focalPoint,
23078      imageFill,
23079      isSelected,
23080      isStackedOnMobile,
23081      mediaAlt,
23082      mediaId,
23083      mediaPosition,
23084      mediaType,
23085      mediaUrl,
23086      mediaWidth,
23087      onSelectMedia,
23088      onWidthChange
23089    } = props;
23090    const isTemporaryMedia = !mediaId && (0,external_wp_blob_namespaceObject.isBlobURL)(mediaUrl);
23091    const {
23092      toggleSelection
23093    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
23094  
23095    if (mediaUrl) {
23096      const onResizeStart = () => {
23097        toggleSelection(false);
23098      };
23099  
23100      const onResize = (event, direction, elt) => {
23101        onWidthChange(parseInt(elt.style.width));
23102      };
23103  
23104      const onResizeStop = (event, direction, elt) => {
23105        toggleSelection(true);
23106        commitWidthChange(parseInt(elt.style.width));
23107      };
23108  
23109      const enablePositions = {
23110        right: mediaPosition === 'left',
23111        left: mediaPosition === 'right'
23112      };
23113      const backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
23114      const mediaTypeRenderers = {
23115        image: () => (0,external_wp_element_namespaceObject.createElement)("img", {
23116          src: mediaUrl,
23117          alt: mediaAlt
23118        }),
23119        video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
23120          controls: true,
23121          src: mediaUrl
23122        })
23123      };
23124      return (0,external_wp_element_namespaceObject.createElement)(ResizableBoxContainer, {
23125        as: "figure",
23126        className: classnames_default()(className, 'editor-media-container__resizer', {
23127          'is-transient': isTemporaryMedia
23128        }),
23129        style: backgroundStyles,
23130        size: {
23131          width: mediaWidth + '%'
23132        },
23133        minWidth: "10%",
23134        maxWidth: "100%",
23135        enable: enablePositions,
23136        onResizeStart: onResizeStart,
23137        onResize: onResize,
23138        onResizeStop: onResizeStop,
23139        axis: "x",
23140        isSelected: isSelected,
23141        isStackedOnMobile: isStackedOnMobile,
23142        ref: ref
23143      }, (0,external_wp_element_namespaceObject.createElement)(ToolbarEditButton, {
23144        onSelectMedia: onSelectMedia,
23145        mediaUrl: mediaUrl,
23146        mediaId: mediaId
23147      }), (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));
23148    }
23149  
23150    return (0,external_wp_element_namespaceObject.createElement)(PlaceholderContainer, props);
23151  }
23152  
23153  /* harmony default export */ var media_container = ((0,external_wp_components_namespaceObject.withNotices)((0,external_wp_element_namespaceObject.forwardRef)(MediaContainer)));
23154  
23155  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js
23156  
23157  
23158  /**
23159   * External dependencies
23160   */
23161  
23162  
23163  /**
23164   * WordPress dependencies
23165   */
23166  
23167  
23168  /**
23169   * Internal dependencies
23170   */
23171  
23172  
23173  const DEFAULT_MEDIA_WIDTH = 50;
23174  
23175  const media_text_deprecated_migrateCustomColors = attributes => {
23176    if (!attributes.customBackgroundColor) {
23177      return attributes;
23178    }
23179  
23180    const style = {
23181      color: {
23182        background: attributes.customBackgroundColor
23183      }
23184    };
23185    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customBackgroundColor']),
23186      style
23187    };
23188  };
23189  
23190  const baseAttributes = {
23191    align: {
23192      type: 'string',
23193      default: 'wide'
23194    },
23195    backgroundColor: {
23196      type: 'string'
23197    },
23198    mediaAlt: {
23199      type: 'string',
23200      source: 'attribute',
23201      selector: 'figure img',
23202      attribute: 'alt',
23203      default: ''
23204    },
23205    mediaPosition: {
23206      type: 'string',
23207      default: 'left'
23208    },
23209    mediaId: {
23210      type: 'number'
23211    },
23212    mediaType: {
23213      type: 'string'
23214    },
23215    mediaWidth: {
23216      type: 'number',
23217      default: 50
23218    },
23219    isStackedOnMobile: {
23220      type: 'boolean',
23221      default: true
23222    }
23223  };
23224  /* harmony default export */ var media_text_deprecated = ([{
23225    attributes: { ...baseAttributes,
23226      customBackgroundColor: {
23227        type: 'string'
23228      },
23229      mediaLink: {
23230        type: 'string'
23231      },
23232      linkDestination: {
23233        type: 'string'
23234      },
23235      linkTarget: {
23236        type: 'string',
23237        source: 'attribute',
23238        selector: 'figure a',
23239        attribute: 'target'
23240      },
23241      href: {
23242        type: 'string',
23243        source: 'attribute',
23244        selector: 'figure a',
23245        attribute: 'href'
23246      },
23247      rel: {
23248        type: 'string',
23249        source: 'attribute',
23250        selector: 'figure a',
23251        attribute: 'rel'
23252      },
23253      linkClass: {
23254        type: 'string',
23255        source: 'attribute',
23256        selector: 'figure a',
23257        attribute: 'class'
23258      },
23259      verticalAlignment: {
23260        type: 'string'
23261      },
23262      imageFill: {
23263        type: 'boolean'
23264      },
23265      focalPoint: {
23266        type: 'object'
23267      }
23268    },
23269    migrate: media_text_deprecated_migrateCustomColors,
23270  
23271    save(_ref) {
23272      let {
23273        attributes
23274      } = _ref;
23275      const {
23276        backgroundColor,
23277        customBackgroundColor,
23278        isStackedOnMobile,
23279        mediaAlt,
23280        mediaPosition,
23281        mediaType,
23282        mediaUrl,
23283        mediaWidth,
23284        mediaId,
23285        verticalAlignment,
23286        imageFill,
23287        focalPoint,
23288        linkClass,
23289        href,
23290        linkTarget,
23291        rel
23292      } = attributes;
23293      const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
23294      let image = (0,external_wp_element_namespaceObject.createElement)("img", {
23295        src: mediaUrl,
23296        alt: mediaAlt,
23297        className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
23298      });
23299  
23300      if (href) {
23301        image = (0,external_wp_element_namespaceObject.createElement)("a", {
23302          className: linkClass,
23303          href: href,
23304          target: linkTarget,
23305          rel: newRel
23306        }, image);
23307      }
23308  
23309      const mediaTypeRenders = {
23310        image: () => image,
23311        video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
23312          controls: true,
23313          src: mediaUrl
23314        })
23315      };
23316      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23317      const className = classnames_default()({
23318        'has-media-on-the-right': 'right' === mediaPosition,
23319        'has-background': backgroundClass || customBackgroundColor,
23320        [backgroundClass]: backgroundClass,
23321        'is-stacked-on-mobile': isStackedOnMobile,
23322        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
23323        'is-image-fill': imageFill
23324      });
23325      const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
23326      let gridTemplateColumns;
23327  
23328      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
23329        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
23330      }
23331  
23332      const style = {
23333        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23334        gridTemplateColumns
23335      };
23336      return (0,external_wp_element_namespaceObject.createElement)("div", {
23337        className: className,
23338        style: style
23339      }, (0,external_wp_element_namespaceObject.createElement)("figure", {
23340        className: "wp-block-media-text__media",
23341        style: backgroundStyles
23342      }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", {
23343        className: "wp-block-media-text__content"
23344      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
23345    }
23346  
23347  }, {
23348    attributes: { ...baseAttributes,
23349      customBackgroundColor: {
23350        type: 'string'
23351      },
23352      mediaUrl: {
23353        type: 'string',
23354        source: 'attribute',
23355        selector: 'figure video,figure img',
23356        attribute: 'src'
23357      },
23358      verticalAlignment: {
23359        type: 'string'
23360      },
23361      imageFill: {
23362        type: 'boolean'
23363      },
23364      focalPoint: {
23365        type: 'object'
23366      }
23367    },
23368    migrate: media_text_deprecated_migrateCustomColors,
23369  
23370    save(_ref2) {
23371      let {
23372        attributes
23373      } = _ref2;
23374      const {
23375        backgroundColor,
23376        customBackgroundColor,
23377        isStackedOnMobile,
23378        mediaAlt,
23379        mediaPosition,
23380        mediaType,
23381        mediaUrl,
23382        mediaWidth,
23383        mediaId,
23384        verticalAlignment,
23385        imageFill,
23386        focalPoint
23387      } = attributes;
23388      const mediaTypeRenders = {
23389        image: () => (0,external_wp_element_namespaceObject.createElement)("img", {
23390          src: mediaUrl,
23391          alt: mediaAlt,
23392          className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
23393        }),
23394        video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
23395          controls: true,
23396          src: mediaUrl
23397        })
23398      };
23399      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23400      const className = classnames_default()({
23401        'has-media-on-the-right': 'right' === mediaPosition,
23402        [backgroundClass]: backgroundClass,
23403        'is-stacked-on-mobile': isStackedOnMobile,
23404        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
23405        'is-image-fill': imageFill
23406      });
23407      const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
23408      let gridTemplateColumns;
23409  
23410      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
23411        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
23412      }
23413  
23414      const style = {
23415        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23416        gridTemplateColumns
23417      };
23418      return (0,external_wp_element_namespaceObject.createElement)("div", {
23419        className: className,
23420        style: style
23421      }, (0,external_wp_element_namespaceObject.createElement)("figure", {
23422        className: "wp-block-media-text__media",
23423        style: backgroundStyles
23424      }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", {
23425        className: "wp-block-media-text__content"
23426      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
23427    }
23428  
23429  }, {
23430    attributes: { ...baseAttributes,
23431      customBackgroundColor: {
23432        type: 'string'
23433      },
23434      mediaUrl: {
23435        type: 'string',
23436        source: 'attribute',
23437        selector: 'figure video,figure img',
23438        attribute: 'src'
23439      }
23440    },
23441  
23442    save(_ref3) {
23443      let {
23444        attributes
23445      } = _ref3;
23446      const {
23447        backgroundColor,
23448        customBackgroundColor,
23449        isStackedOnMobile,
23450        mediaAlt,
23451        mediaPosition,
23452        mediaType,
23453        mediaUrl,
23454        mediaWidth
23455      } = attributes;
23456      const mediaTypeRenders = {
23457        image: () => (0,external_wp_element_namespaceObject.createElement)("img", {
23458          src: mediaUrl,
23459          alt: mediaAlt
23460        }),
23461        video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
23462          controls: true,
23463          src: mediaUrl
23464        })
23465      };
23466      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23467      const className = classnames_default()({
23468        'has-media-on-the-right': 'right' === mediaPosition,
23469        [backgroundClass]: backgroundClass,
23470        'is-stacked-on-mobile': isStackedOnMobile
23471      });
23472      let gridTemplateColumns;
23473  
23474      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
23475        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
23476      }
23477  
23478      const style = {
23479        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23480        gridTemplateColumns
23481      };
23482      return (0,external_wp_element_namespaceObject.createElement)("div", {
23483        className: className,
23484        style: style
23485      }, (0,external_wp_element_namespaceObject.createElement)("figure", {
23486        className: "wp-block-media-text__media"
23487      }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", {
23488        className: "wp-block-media-text__content"
23489      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)));
23490    }
23491  
23492  }]);
23493  
23494  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-left.js
23495  
23496  
23497  /**
23498   * WordPress dependencies
23499   */
23500  
23501  const pullLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
23502    xmlns: "http://www.w3.org/2000/svg",
23503    viewBox: "0 0 24 24"
23504  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
23505    d: "M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z"
23506  }));
23507  /* harmony default export */ var pull_left = (pullLeft);
23508  
23509  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-right.js
23510  
23511  
23512  /**
23513   * WordPress dependencies
23514   */
23515  
23516  const pullRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
23517    xmlns: "http://www.w3.org/2000/svg",
23518    viewBox: "0 0 24 24"
23519  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
23520    d: "M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z"
23521  }));
23522  /* harmony default export */ var pull_right = (pullRight);
23523  
23524  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/constants.js
23525  const DEFAULT_MEDIA_SIZE_SLUG = 'full';
23526  
23527  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/edit.js
23528  
23529  
23530  /**
23531   * External dependencies
23532   */
23533  
23534  
23535  /**
23536   * WordPress dependencies
23537   */
23538  
23539  
23540  
23541  
23542  
23543  
23544  
23545  
23546  
23547  /**
23548   * Internal dependencies
23549   */
23550  
23551  
23552  
23553  /**
23554   * Constants
23555   */
23556  
23557  const media_text_edit_TEMPLATE = [['core/paragraph', {
23558    fontSize: 'large',
23559    placeholder: (0,external_wp_i18n_namespaceObject._x)('Content…', 'content placeholder')
23560  }]]; // this limits the resize to a safe zone to avoid making broken layouts
23561  
23562  const WIDTH_CONSTRAINT_PERCENTAGE = 15;
23563  
23564  const applyWidthConstraints = width => Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE));
23565  
23566  const edit_LINK_DESTINATION_MEDIA = 'media';
23567  const edit_LINK_DESTINATION_ATTACHMENT = 'attachment';
23568  
23569  function getImageSourceUrlBySizeSlug(image, slug) {
23570    var _image$media_details, _image$media_details$, _image$media_details$2;
23571  
23572    // eslint-disable-next-line camelcase
23573    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;
23574  }
23575  
23576  function edit_attributesFromMedia(_ref) {
23577    let {
23578      attributes: {
23579        linkDestination,
23580        href
23581      },
23582      setAttributes
23583    } = _ref;
23584    return media => {
23585      if (!media || !media.url) {
23586        setAttributes({
23587          mediaAlt: undefined,
23588          mediaId: undefined,
23589          mediaType: undefined,
23590          mediaUrl: undefined,
23591          mediaLink: undefined,
23592          href: undefined,
23593          focalPoint: undefined
23594        });
23595        return;
23596      }
23597  
23598      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
23599        media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
23600      }
23601  
23602      let mediaType;
23603      let src; // For media selections originated from a file upload.
23604  
23605      if (media.media_type) {
23606        if (media.media_type === 'image') {
23607          mediaType = 'image';
23608        } else {
23609          // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
23610          // video contain the media type of 'file' in the object returned from the rest api.
23611          mediaType = 'video';
23612        }
23613      } else {
23614        // For media selections originated from existing files in the media library.
23615        mediaType = media.type;
23616      }
23617  
23618      if (mediaType === 'image') {
23619        var _media$sizes, _media$sizes$large, _media$media_details, _media$media_details$, _media$media_details$2;
23620  
23621        // Try the "large" size URL, falling back to the "full" size URL below.
23622        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
23623        (_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);
23624      }
23625  
23626      let newHref = href;
23627  
23628      if (linkDestination === edit_LINK_DESTINATION_MEDIA) {
23629        // Update the media link.
23630        newHref = media.url;
23631      } // Check if the image is linked to the attachment page.
23632  
23633  
23634      if (linkDestination === edit_LINK_DESTINATION_ATTACHMENT) {
23635        // Update the media link.
23636        newHref = media.link;
23637      }
23638  
23639      setAttributes({
23640        mediaAlt: media.alt,
23641        mediaId: media.id,
23642        mediaType,
23643        mediaUrl: src || media.url,
23644        mediaLink: media.link || undefined,
23645        href: newHref,
23646        focalPoint: undefined
23647      });
23648    };
23649  }
23650  
23651  function MediaTextEdit(_ref2) {
23652    let {
23653      attributes,
23654      isSelected,
23655      setAttributes
23656    } = _ref2;
23657    const {
23658      focalPoint,
23659      href,
23660      imageFill,
23661      isStackedOnMobile,
23662      linkClass,
23663      linkDestination,
23664      linkTarget,
23665      mediaAlt,
23666      mediaId,
23667      mediaPosition,
23668      mediaType,
23669      mediaUrl,
23670      mediaWidth,
23671      rel,
23672      verticalAlignment
23673    } = attributes;
23674    const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
23675    const image = (0,external_wp_data_namespaceObject.useSelect)(select => mediaId && isSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(mediaId, {
23676      context: 'view'
23677    }) : null, [isSelected, mediaId]);
23678    const refMediaContainer = (0,external_wp_element_namespaceObject.useRef)();
23679  
23680    const imperativeFocalPointPreview = value => {
23681      const {
23682        style
23683      } = refMediaContainer.current.resizable;
23684      const {
23685        x,
23686        y
23687      } = value;
23688      style.backgroundPosition = `$x * 100}% $y * 100}%`;
23689    };
23690  
23691    const [temporaryMediaWidth, setTemporaryMediaWidth] = (0,external_wp_element_namespaceObject.useState)(null);
23692    const onSelectMedia = edit_attributesFromMedia({
23693      attributes,
23694      setAttributes
23695    });
23696  
23697    const onSetHref = props => {
23698      setAttributes(props);
23699    };
23700  
23701    const onWidthChange = width => {
23702      setTemporaryMediaWidth(applyWidthConstraints(width));
23703    };
23704  
23705    const commitWidthChange = width => {
23706      setAttributes({
23707        mediaWidth: applyWidthConstraints(width)
23708      });
23709      setTemporaryMediaWidth(applyWidthConstraints(width));
23710    };
23711  
23712    const classNames = classnames_default()({
23713      'has-media-on-the-right': 'right' === mediaPosition,
23714      'is-selected': isSelected,
23715      'is-stacked-on-mobile': isStackedOnMobile,
23716      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
23717      'is-image-fill': imageFill
23718    });
23719    const widthString = `$temporaryMediaWidth || mediaWidth}%`;
23720    const gridTemplateColumns = 'right' === mediaPosition ? `1fr $widthString}` : `$widthString} 1fr`;
23721    const style = {
23722      gridTemplateColumns,
23723      msGridColumns: gridTemplateColumns
23724    };
23725  
23726    const onMediaAltChange = newMediaAlt => {
23727      setAttributes({
23728        mediaAlt: newMediaAlt
23729      });
23730    };
23731  
23732    const onVerticalAlignmentChange = alignment => {
23733      setAttributes({
23734        verticalAlignment: alignment
23735      });
23736    };
23737  
23738    const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => {
23739      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
23740      return settings === null || settings === void 0 ? void 0 : settings.imageSizes;
23741    }, []);
23742    const imageSizeOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref3 => {
23743      let {
23744        slug
23745      } = _ref3;
23746      return getImageSourceUrlBySizeSlug(image, slug);
23747    }), _ref4 => {
23748      let {
23749        name,
23750        slug
23751      } = _ref4;
23752      return {
23753        value: slug,
23754        label: name
23755      };
23756    });
23757  
23758    const updateImage = newMediaSizeSlug => {
23759      const newUrl = getImageSourceUrlBySizeSlug(image, newMediaSizeSlug);
23760  
23761      if (!newUrl) {
23762        return null;
23763      }
23764  
23765      setAttributes({
23766        mediaUrl: newUrl,
23767        mediaSizeSlug: newMediaSizeSlug
23768      });
23769    };
23770  
23771    const mediaTextGeneralSettings = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
23772      title: (0,external_wp_i18n_namespaceObject.__)('Media & Text settings')
23773    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
23774      label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
23775      checked: isStackedOnMobile,
23776      onChange: () => setAttributes({
23777        isStackedOnMobile: !isStackedOnMobile
23778      })
23779    }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
23780      label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill entire column'),
23781      checked: imageFill,
23782      onChange: () => setAttributes({
23783        imageFill: !imageFill
23784      })
23785    }), imageFill && mediaUrl && mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FocalPointPicker, {
23786      label: (0,external_wp_i18n_namespaceObject.__)('Focal point picker'),
23787      url: mediaUrl,
23788      value: focalPoint,
23789      onChange: value => setAttributes({
23790        focalPoint: value
23791      }),
23792      onDragStart: imperativeFocalPointPreview,
23793      onDrag: imperativeFocalPointPreview
23794    }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
23795      label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'),
23796      value: mediaAlt,
23797      onChange: onMediaAltChange,
23798      help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
23799        href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
23800      }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.'))
23801    }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
23802      onChangeImage: updateImage,
23803      slug: mediaSizeSlug,
23804      imageSizeOptions: imageSizeOptions,
23805      isResizable: false
23806    }), mediaUrl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
23807      label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
23808      value: temporaryMediaWidth || mediaWidth,
23809      onChange: commitWidthChange,
23810      min: WIDTH_CONSTRAINT_PERCENTAGE,
23811      max: 100 - WIDTH_CONSTRAINT_PERCENTAGE
23812    }));
23813    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
23814      className: classNames,
23815      style
23816    });
23817    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
23818      className: 'wp-block-media-text__content'
23819    }, {
23820      template: media_text_edit_TEMPLATE
23821    });
23822    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, {
23823      group: "block"
23824    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentControl, {
23825      onChange: onVerticalAlignmentChange,
23826      value: verticalAlignment
23827    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
23828      icon: pull_left,
23829      title: (0,external_wp_i18n_namespaceObject.__)('Show media on left'),
23830      isActive: mediaPosition === 'left',
23831      onClick: () => setAttributes({
23832        mediaPosition: 'left'
23833      })
23834    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
23835      icon: pull_right,
23836      title: (0,external_wp_i18n_namespaceObject.__)('Show media on right'),
23837      isActive: mediaPosition === 'right',
23838      onClick: () => setAttributes({
23839        mediaPosition: 'right'
23840      })
23841    }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
23842      url: href || '',
23843      onChangeUrl: onSetHref,
23844      linkDestination: linkDestination,
23845      mediaType: mediaType,
23846      mediaUrl: image && image.source_url,
23847      mediaLink: image && image.link,
23848      linkTarget: linkTarget,
23849      linkClass: linkClass,
23850      rel: rel
23851    })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(media_container, {
23852      className: "wp-block-media-text__media",
23853      onSelectMedia: onSelectMedia,
23854      onWidthChange: onWidthChange,
23855      commitWidthChange: commitWidthChange,
23856      ref: refMediaContainer,
23857      focalPoint,
23858      imageFill,
23859      isSelected,
23860      isStackedOnMobile,
23861      mediaAlt,
23862      mediaId,
23863      mediaPosition,
23864      mediaType,
23865      mediaUrl,
23866      mediaWidth
23867    }), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
23868  }
23869  
23870  /* harmony default export */ var media_text_edit = (MediaTextEdit);
23871  
23872  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/save.js
23873  
23874  
23875  /**
23876   * External dependencies
23877   */
23878  
23879  
23880  /**
23881   * WordPress dependencies
23882   */
23883  
23884  
23885  /**
23886   * Internal dependencies
23887   */
23888  
23889  
23890  
23891  const save_DEFAULT_MEDIA_WIDTH = 50;
23892  function media_text_save_save(_ref) {
23893    let {
23894      attributes
23895    } = _ref;
23896    const {
23897      isStackedOnMobile,
23898      mediaAlt,
23899      mediaPosition,
23900      mediaType,
23901      mediaUrl,
23902      mediaWidth,
23903      mediaId,
23904      verticalAlignment,
23905      imageFill,
23906      focalPoint,
23907      linkClass,
23908      href,
23909      linkTarget,
23910      rel
23911    } = attributes;
23912    const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
23913    const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel;
23914    const imageClasses = classnames_default()({
23915      [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
23916      [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
23917    });
23918    let image = (0,external_wp_element_namespaceObject.createElement)("img", {
23919      src: mediaUrl,
23920      alt: mediaAlt,
23921      className: imageClasses || null
23922    });
23923  
23924    if (href) {
23925      image = (0,external_wp_element_namespaceObject.createElement)("a", {
23926        className: linkClass,
23927        href: href,
23928        target: linkTarget,
23929        rel: newRel
23930      }, image);
23931    }
23932  
23933    const mediaTypeRenders = {
23934      image: () => image,
23935      video: () => (0,external_wp_element_namespaceObject.createElement)("video", {
23936        controls: true,
23937        src: mediaUrl
23938      })
23939    };
23940    const className = classnames_default()({
23941      'has-media-on-the-right': 'right' === mediaPosition,
23942      'is-stacked-on-mobile': isStackedOnMobile,
23943      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
23944      'is-image-fill': imageFill
23945    });
23946    const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
23947    let gridTemplateColumns;
23948  
23949    if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) {
23950      gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
23951    }
23952  
23953    const style = {
23954      gridTemplateColumns
23955    };
23956    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
23957      className,
23958      style
23959    }), (0,external_wp_element_namespaceObject.createElement)("figure", {
23960      className: "wp-block-media-text__media",
23961      style: backgroundStyles
23962    }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
23963      className: 'wp-block-media-text__content'
23964    })));
23965  }
23966  
23967  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js
23968  /**
23969   * WordPress dependencies
23970   */
23971  
23972  const media_text_transforms_transforms = {
23973    from: [{
23974      type: 'block',
23975      blocks: ['core/image'],
23976      transform: _ref => {
23977        let {
23978          alt,
23979          url,
23980          id,
23981          anchor
23982        } = _ref;
23983        return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
23984          mediaAlt: alt,
23985          mediaId: id,
23986          mediaUrl: url,
23987          mediaType: 'image',
23988          anchor
23989        });
23990      }
23991    }, {
23992      type: 'block',
23993      blocks: ['core/video'],
23994      transform: _ref2 => {
23995        let {
23996          src,
23997          id,
23998          anchor
23999        } = _ref2;
24000        return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
24001          mediaId: id,
24002          mediaUrl: src,
24003          mediaType: 'video',
24004          anchor
24005        });
24006      }
24007    }],
24008    to: [{
24009      type: 'block',
24010      blocks: ['core/image'],
24011      isMatch: _ref3 => {
24012        let {
24013          mediaType,
24014          mediaUrl
24015        } = _ref3;
24016        return !mediaUrl || mediaType === 'image';
24017      },
24018      transform: _ref4 => {
24019        let {
24020          mediaAlt,
24021          mediaId,
24022          mediaUrl,
24023          anchor
24024        } = _ref4;
24025        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
24026          alt: mediaAlt,
24027          id: mediaId,
24028          url: mediaUrl,
24029          anchor
24030        });
24031      }
24032    }, {
24033      type: 'block',
24034      blocks: ['core/video'],
24035      isMatch: _ref5 => {
24036        let {
24037          mediaType,
24038          mediaUrl
24039        } = _ref5;
24040        return !mediaUrl || mediaType === 'video';
24041      },
24042      transform: _ref6 => {
24043        let {
24044          mediaId,
24045          mediaUrl,
24046          anchor
24047        } = _ref6;
24048        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
24049          id: mediaId,
24050          src: mediaUrl,
24051          anchor
24052        });
24053      }
24054    }]
24055  };
24056  /* harmony default export */ var media_text_transforms = (media_text_transforms_transforms);
24057  
24058  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/index.js
24059  /**
24060   * WordPress dependencies
24061   */
24062  
24063  
24064  /**
24065   * Internal dependencies
24066   */
24067  
24068  
24069  
24070  const media_text_metadata = {
24071    $schema: "https://schemas.wp.org/trunk/block.json",
24072    apiVersion: 2,
24073    name: "core/media-text",
24074    title: "Media & Text",
24075    category: "media",
24076    description: "Set media and words side-by-side for a richer layout.",
24077    keywords: ["image", "video"],
24078    textdomain: "default",
24079    attributes: {
24080      align: {
24081        type: "string",
24082        "default": "wide"
24083      },
24084      mediaAlt: {
24085        type: "string",
24086        source: "attribute",
24087        selector: "figure img",
24088        attribute: "alt",
24089        "default": ""
24090      },
24091      mediaPosition: {
24092        type: "string",
24093        "default": "left"
24094      },
24095      mediaId: {
24096        type: "number"
24097      },
24098      mediaUrl: {
24099        type: "string",
24100        source: "attribute",
24101        selector: "figure video,figure img",
24102        attribute: "src"
24103      },
24104      mediaLink: {
24105        type: "string"
24106      },
24107      linkDestination: {
24108        type: "string"
24109      },
24110      linkTarget: {
24111        type: "string",
24112        source: "attribute",
24113        selector: "figure a",
24114        attribute: "target"
24115      },
24116      href: {
24117        type: "string",
24118        source: "attribute",
24119        selector: "figure a",
24120        attribute: "href"
24121      },
24122      rel: {
24123        type: "string",
24124        source: "attribute",
24125        selector: "figure a",
24126        attribute: "rel"
24127      },
24128      linkClass: {
24129        type: "string",
24130        source: "attribute",
24131        selector: "figure a",
24132        attribute: "class"
24133      },
24134      mediaType: {
24135        type: "string"
24136      },
24137      mediaWidth: {
24138        type: "number",
24139        "default": 50
24140      },
24141      mediaSizeSlug: {
24142        type: "string"
24143      },
24144      isStackedOnMobile: {
24145        type: "boolean",
24146        "default": true
24147      },
24148      verticalAlignment: {
24149        type: "string"
24150      },
24151      imageFill: {
24152        type: "boolean"
24153      },
24154      focalPoint: {
24155        type: "object"
24156      }
24157    },
24158    supports: {
24159      anchor: true,
24160      align: ["wide", "full"],
24161      html: false,
24162      color: {
24163        gradients: true,
24164        link: true,
24165        __experimentalDefaultControls: {
24166          background: true,
24167          text: true
24168        }
24169      }
24170    },
24171    editorStyle: "wp-block-media-text-editor",
24172    style: "wp-block-media-text"
24173  };
24174  
24175  
24176  const {
24177    name: media_text_name
24178  } = media_text_metadata;
24179  
24180  const media_text_settings = {
24181    icon: media_and_text,
24182    example: {
24183      viewportWidth: 601,
24184      // Columns collapse "@media (max-width: 600px)".
24185      attributes: {
24186        mediaType: 'image',
24187        mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg'
24188      },
24189      innerBlocks: [{
24190        name: 'core/paragraph',
24191        attributes: {
24192          content: (0,external_wp_i18n_namespaceObject.__)('The wren<br>Earns his living<br>Noiselessly.')
24193        }
24194      }, {
24195        name: 'core/paragraph',
24196        attributes: {
24197          content: (0,external_wp_i18n_namespaceObject.__)('— Kobayashi Issa (一茶)')
24198        }
24199      }]
24200    },
24201    transforms: media_text_transforms,
24202    edit: media_text_edit,
24203    save: media_text_save_save,
24204    deprecated: media_text_deprecated
24205  };
24206  
24207  ;// CONCATENATED MODULE: external ["wp","dom"]
24208  var external_wp_dom_namespaceObject = window["wp"]["dom"];
24209  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/edit.js
24210  
24211  
24212  /**
24213   * WordPress dependencies
24214   */
24215  
24216  
24217  
24218  
24219  
24220  
24221  
24222  
24223  function MissingBlockWarning(_ref) {
24224    let {
24225      attributes,
24226      convertToHTML
24227    } = _ref;
24228    const {
24229      originalName,
24230      originalUndelimitedContent
24231    } = attributes;
24232    const hasContent = !!originalUndelimitedContent;
24233    const hasHTMLBlock = (0,external_wp_blocks_namespaceObject.getBlockType)('core/html');
24234    const actions = [];
24235    let messageHTML;
24236  
24237    if (hasContent && hasHTMLBlock) {
24238      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(
24239      /* translators: %s: block name */
24240      (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);
24241      actions.push((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
24242        key: "convert",
24243        onClick: convertToHTML,
24244        variant: "primary"
24245      }, (0,external_wp_i18n_namespaceObject.__)('Keep as HTML')));
24246    } else {
24247      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(
24248      /* translators: %s: block name */
24249      (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);
24250    }
24251  
24252    return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
24253      className: 'has-warning'
24254    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, {
24255      actions: actions
24256    }, messageHTML), (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(originalUndelimitedContent)));
24257  }
24258  
24259  const MissingEdit = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, _ref2) => {
24260    let {
24261      clientId,
24262      attributes
24263    } = _ref2;
24264    const {
24265      replaceBlock
24266    } = dispatch(external_wp_blockEditor_namespaceObject.store);
24267    return {
24268      convertToHTML() {
24269        replaceBlock(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
24270          content: attributes.originalUndelimitedContent
24271        }));
24272      }
24273  
24274    };
24275  })(MissingBlockWarning);
24276  /* harmony default export */ var missing_edit = (MissingEdit);
24277  
24278  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/save.js
24279  
24280  
24281  /**
24282   * WordPress dependencies
24283   */
24284  
24285  function missing_save_save(_ref) {
24286    let {
24287      attributes
24288    } = _ref;
24289    // Preserve the missing block's content.
24290    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.originalContent);
24291  }
24292  
24293  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/index.js
24294  /**
24295   * WordPress dependencies
24296   */
24297  
24298  /**
24299   * Internal dependencies
24300   */
24301  
24302  
24303  const missing_metadata = {
24304    $schema: "https://schemas.wp.org/trunk/block.json",
24305    apiVersion: 2,
24306    name: "core/missing",
24307    title: "Unsupported",
24308    category: "text",
24309    description: "Your site doesn\u2019t include support for this block.",
24310    textdomain: "default",
24311    attributes: {
24312      originalName: {
24313        type: "string"
24314      },
24315      originalUndelimitedContent: {
24316        type: "string"
24317      },
24318      originalContent: {
24319        type: "string",
24320        source: "html"
24321      }
24322    },
24323    supports: {
24324      className: false,
24325      customClassName: false,
24326      inserter: false,
24327      html: false,
24328      reusable: false
24329    }
24330  };
24331  
24332  const {
24333    name: missing_name
24334  } = missing_metadata;
24335  
24336  const missing_settings = {
24337    name: missing_name,
24338  
24339    __experimentalLabel(attributes, _ref) {
24340      let {
24341        context
24342      } = _ref;
24343  
24344      if (context === 'accessibility') {
24345        const {
24346          originalName
24347        } = attributes;
24348        const originalBlockType = originalName ? (0,external_wp_blocks_namespaceObject.getBlockType)(originalName) : undefined;
24349  
24350        if (originalBlockType) {
24351          return originalBlockType.settings.title || originalName;
24352        }
24353  
24354        return '';
24355      }
24356    },
24357  
24358    edit: missing_edit,
24359    save: missing_save_save
24360  };
24361  
24362  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more.js
24363  
24364  
24365  /**
24366   * WordPress dependencies
24367   */
24368  
24369  const more = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
24370    viewBox: "0 0 24 24",
24371    xmlns: "http://www.w3.org/2000/svg"
24372  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
24373    d: "M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z"
24374  }));
24375  /* harmony default export */ var library_more = (more);
24376  
24377  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/edit.js
24378  
24379  
24380  /**
24381   * WordPress dependencies
24382   */
24383  
24384  
24385  
24386  
24387  
24388  
24389  const DEFAULT_TEXT = (0,external_wp_i18n_namespaceObject.__)('Read more');
24390  
24391  function MoreEdit(_ref) {
24392    let {
24393      attributes: {
24394        customText,
24395        noTeaser
24396      },
24397      insertBlocksAfter,
24398      setAttributes
24399    } = _ref;
24400  
24401    const onChangeInput = event => {
24402      setAttributes({
24403        customText: event.target.value !== '' ? event.target.value : undefined
24404      });
24405    };
24406  
24407    const onKeyDown = _ref2 => {
24408      let {
24409        keyCode
24410      } = _ref2;
24411  
24412      if (keyCode === external_wp_keycodes_namespaceObject.ENTER) {
24413        insertBlocksAfter([(0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())]);
24414      }
24415    };
24416  
24417    const getHideExcerptHelp = checked => checked ? (0,external_wp_i18n_namespaceObject.__)('The excerpt is hidden.') : (0,external_wp_i18n_namespaceObject.__)('The excerpt is visible.');
24418  
24419    const toggleHideExcerpt = () => setAttributes({
24420      noTeaser: !noTeaser
24421    });
24422  
24423    const style = {
24424      width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em`
24425    };
24426    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, {
24427      label: (0,external_wp_i18n_namespaceObject.__)('Hide the excerpt on the full content page'),
24428      checked: !!noTeaser,
24429      onChange: toggleHideExcerpt,
24430      help: getHideExcerptHelp
24431    }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", {
24432      className: "wp-block-more"
24433    }, (0,external_wp_element_namespaceObject.createElement)("input", {
24434      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Read more link text'),
24435      type: "text",
24436      value: customText,
24437      placeholder: DEFAULT_TEXT,
24438      onChange: onChangeInput,
24439      onKeyDown: onKeyDown,
24440      style: style
24441    }))));
24442  }
24443  
24444  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/save.js
24445  
24446  
24447  /**
24448   * External dependencies
24449   */
24450  
24451  /**
24452   * WordPress dependencies
24453   */
24454  
24455  
24456  function more_save_save(_ref) {
24457    let {
24458      attributes: {
24459        customText,
24460        noTeaser
24461      }
24462    } = _ref;
24463    const moreTag = customText ? `<!--more $customText}-->` : '<!--more-->';
24464    const noTeaserTag = noTeaser ? '<!--noteaser-->' : '';
24465    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_lodash_namespaceObject.compact)([moreTag, noTeaserTag]).join('\n'));
24466  }
24467  
24468  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/transforms.js
24469  /**
24470   * WordPress dependencies
24471   */
24472  
24473  const more_transforms_transforms = {
24474    from: [{
24475      type: 'raw',
24476      schema: {
24477        'wp-block': {
24478          attributes: ['data-block']
24479        }
24480      },
24481      isMatch: node => node.dataset && node.dataset.block === 'core/more',
24482  
24483      transform(node) {
24484        const {
24485          customText,
24486          noTeaser
24487        } = node.dataset;
24488        const attrs = {}; // Don't copy unless defined and not an empty string.
24489  
24490        if (customText) {
24491          attrs.customText = customText;
24492        } // Special handling for boolean.
24493  
24494  
24495        if (noTeaser === '') {
24496          attrs.noTeaser = true;
24497        }
24498  
24499        return (0,external_wp_blocks_namespaceObject.createBlock)('core/more', attrs);
24500      }
24501  
24502    }]
24503  };
24504  /* harmony default export */ var more_transforms = (more_transforms_transforms);
24505  
24506  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/index.js
24507  /**
24508   * WordPress dependencies
24509   */
24510  
24511  /**
24512   * Internal dependencies
24513   */
24514  
24515  
24516  const more_metadata = {
24517    $schema: "https://schemas.wp.org/trunk/block.json",
24518    apiVersion: 2,
24519    name: "core/more",
24520    title: "More",
24521    category: "design",
24522    description: "Content before this block will be shown in the excerpt on your archives page.",
24523    keywords: ["read more"],
24524    textdomain: "default",
24525    attributes: {
24526      customText: {
24527        type: "string"
24528      },
24529      noTeaser: {
24530        type: "boolean",
24531        "default": false
24532      }
24533    },
24534    supports: {
24535      customClassName: false,
24536      className: false,
24537      html: false,
24538      multiple: false
24539    },
24540    editorStyle: "wp-block-more-editor"
24541  };
24542  
24543  
24544  const {
24545    name: more_name
24546  } = more_metadata;
24547  
24548  const more_settings = {
24549    icon: library_more,
24550    example: {},
24551  
24552    __experimentalLabel(attributes, _ref) {
24553      let {
24554        context
24555      } = _ref;
24556  
24557      if (context === 'accessibility') {
24558        return attributes.customText;
24559      }
24560    },
24561  
24562    transforms: more_transforms,
24563    edit: MoreEdit,
24564    save: more_save_save
24565  };
24566  
24567  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/navigation.js
24568  
24569  
24570  /**
24571   * WordPress dependencies
24572   */
24573  
24574  const navigation = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
24575    viewBox: "0 0 24 24",
24576    xmlns: "http://www.w3.org/2000/svg"
24577  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
24578    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"
24579  }));
24580  /* harmony default export */ var library_navigation = (navigation);
24581  
24582  ;// CONCATENATED MODULE: external ["wp","a11y"]
24583  var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
24584  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js
24585  /**
24586   * WordPress dependencies
24587   */
24588  
24589  
24590  function useNavigationMenu(ref) {
24591    return (0,external_wp_data_namespaceObject.useSelect)(select => {
24592      var _navigationMenu;
24593  
24594      const {
24595        getEntityRecord,
24596        getEditedEntityRecord,
24597        getEntityRecords,
24598        hasFinishedResolution,
24599        isResolving,
24600        canUser
24601      } = select(external_wp_coreData_namespaceObject.store);
24602      const navigationMenuSingleArgs = ['postType', 'wp_navigation', ref];
24603      const rawNavigationMenu = ref ? getEntityRecord(...navigationMenuSingleArgs) : null;
24604      let navigationMenu = ref ? getEditedEntityRecord(...navigationMenuSingleArgs) : null; // getEditedEntityRecord will return the post regardless of status.
24605      // Therefore if the found post is not published then we should ignore it.
24606  
24607      if (((_navigationMenu = navigationMenu) === null || _navigationMenu === void 0 ? void 0 : _navigationMenu.status) !== 'publish') {
24608        navigationMenu = null;
24609      }
24610  
24611      const hasResolvedNavigationMenu = ref ? hasFinishedResolution('getEditedEntityRecord', navigationMenuSingleArgs) : false;
24612      const navigationMenuMultipleArgs = ['postType', 'wp_navigation', {
24613        per_page: -1,
24614        status: 'publish'
24615      }];
24616      const navigationMenus = getEntityRecords(...navigationMenuMultipleArgs);
24617      const canSwitchNavigationMenu = ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0;
24618      return {
24619        isNavigationMenuResolved: hasResolvedNavigationMenu,
24620        isNavigationMenuMissing: !ref || hasResolvedNavigationMenu && !rawNavigationMenu,
24621        canSwitchNavigationMenu,
24622        isResolvingNavigationMenus: isResolving('getEntityRecords', navigationMenuMultipleArgs),
24623        hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs),
24624        navigationMenu,
24625        navigationMenus,
24626        canUserUpdateNavigationMenu: ref ? canUser('update', 'navigation', ref) : undefined,
24627        hasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution('canUser', ['update', 'navigation', ref]),
24628        canUserDeleteNavigationMenu: ref ? canUser('delete', 'navigation', ref) : undefined,
24629        hasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution('canUser', ['delete', 'navigation', ref]),
24630        canUserCreateNavigationMenu: canUser('create', 'navigation'),
24631        isResolvingCanUserCreateNavigationMenu: isResolving('canUser', ['create', 'navigation']),
24632        hasResolvedCanUserCreateNavigationMenu: hasFinishedResolution('canUser', ['create', 'navigation'])
24633      };
24634    }, [ref]);
24635  }
24636  
24637  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-entities.js
24638  /**
24639   * WordPress dependencies
24640   */
24641  
24642  /**
24643   * @typedef {Object} NavigationEntitiesData
24644   * @property {Array|undefined} pages                - a collection of WP Post entity objects of post type "Page".
24645   * @property {boolean}         isResolvingPages     - indicates whether the request to fetch pages is currently resolving.
24646   * @property {boolean}         hasResolvedPages     - indicates whether the request to fetch pages has finished resolving.
24647   * @property {Array|undefined} menus                - a collection of Menu entity objects.
24648   * @property {boolean}         isResolvingMenus     - indicates whether the request to fetch menus is currently resolving.
24649   * @property {boolean}         hasResolvedMenus     - indicates whether the request to fetch menus has finished resolving.
24650   * @property {Array|undefined} menusItems           - a collection of Menu Item entity objects for the current menuId.
24651   * @property {boolean}         hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.
24652   * @property {boolean}         hasPages             - indicates whether there is currently any data for pages.
24653   * @property {boolean}         hasMenus             - indicates whether there is currently any data for menus.
24654   */
24655  
24656  /**
24657   * Manages fetching and resolution state for all entities required
24658   * for the Navigation block.
24659   *
24660   * @param {number} menuId the menu for which to retrieve menuItem data.
24661   * @return { NavigationEntitiesData } the entity data.
24662   */
24663  
24664  function useNavigationEntities(menuId) {
24665    const {
24666      records: menus,
24667      isResolving: isResolvingMenus,
24668      hasResolved: hasResolvedMenus
24669    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('root', 'menu', {
24670      per_page: -1,
24671      context: 'view'
24672    });
24673    const {
24674      records: pages,
24675      isResolving: isResolvingPages,
24676      hasResolved: hasResolvedPages
24677    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', {
24678      parent: 0,
24679      order: 'asc',
24680      orderby: 'id',
24681      per_page: -1,
24682      context: 'view'
24683    });
24684    const {
24685      records: menuItems,
24686      hasResolved: hasResolvedMenuItems
24687    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('root', 'menuItem', {
24688      menus: menuId,
24689      per_page: -1,
24690      context: 'view'
24691    }, {
24692      enabled: !!menuId
24693    });
24694    return {
24695      pages,
24696      isResolvingPages,
24697      hasResolvedPages,
24698      hasPages: !!(hasResolvedPages && pages !== null && pages !== void 0 && pages.length),
24699      menus,
24700      isResolvingMenus,
24701      hasResolvedMenus,
24702      hasMenus: !!(hasResolvedMenus && menus !== null && menus !== void 0 && menus.length),
24703      menuItems,
24704      hasResolvedMenuItems
24705    };
24706  }
24707  
24708  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
24709  /**
24710   * WordPress dependencies
24711   */
24712  
24713  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
24714  
24715  /**
24716   * Return an SVG icon.
24717   *
24718   * @param {IconProps} props icon is the SVG component to render
24719   *                          size is a number specifiying the icon size in pixels
24720   *                          Other props will be passed to wrapped SVG component
24721   *
24722   * @return {JSX.Element}  Icon component
24723   */
24724  
24725  function Icon(_ref) {
24726    let {
24727      icon,
24728      size = 24,
24729      ...props
24730    } = _ref;
24731    return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
24732      width: size,
24733      height: size,
24734      ...props
24735    });
24736  }
24737  
24738  /* harmony default export */ var icon = (Icon);
24739  
24740  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/placeholder-preview.js
24741  
24742  
24743  /**
24744   * WordPress dependencies
24745   */
24746  
24747  
24748  
24749  const PlaceholderPreview = _ref => {
24750    let {
24751      isVisible = true
24752    } = _ref;
24753    return (0,external_wp_element_namespaceObject.createElement)("div", {
24754      "aria-hidden": !isVisible ? true : undefined,
24755      className: "wp-block-navigation-placeholder__preview"
24756    }, (0,external_wp_element_namespaceObject.createElement)("div", {
24757      className: "wp-block-navigation-placeholder__actions__indicator"
24758    }, (0,external_wp_element_namespaceObject.createElement)(icon, {
24759      icon: library_navigation
24760    }), (0,external_wp_i18n_namespaceObject.__)('Navigation')));
24761  };
24762  
24763  /* harmony default export */ var placeholder_preview = (PlaceholderPreview);
24764  
24765  ;// CONCATENATED MODULE: external ["wp","htmlEntities"]
24766  var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
24767  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-selector.js
24768  
24769  
24770  /**
24771   * WordPress dependencies
24772   */
24773  
24774  
24775  
24776  
24777  
24778  /**
24779   * Internal dependencies
24780   */
24781  
24782  
24783  
24784  
24785  function NavigationMenuSelector(_ref, forwardedRef) {
24786    let {
24787      currentMenuId,
24788      onSelect,
24789      onCreateNew,
24790      showManageActions = false,
24791      actionLabel,
24792      toggleProps = {}
24793    } = _ref;
24794  
24795    /* translators: %s: The name of a menu. */
24796    const createActionLabel = (0,external_wp_i18n_namespaceObject.__)("Create from '%s'");
24797  
24798    actionLabel = actionLabel || createActionLabel;
24799    const {
24800      menus: classicMenus
24801    } = useNavigationEntities();
24802    const {
24803      navigationMenus,
24804      canUserCreateNavigationMenu,
24805      canUserUpdateNavigationMenu,
24806      canSwitchNavigationMenu
24807    } = useNavigationMenu();
24808    const handleSelect = (0,external_wp_element_namespaceObject.useCallback)(_onClose => selectedId => {
24809      _onClose();
24810  
24811      onSelect(navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.find(post => post.id === selectedId));
24812    }, [navigationMenus]);
24813    const handleSelectClassic = (0,external_wp_element_namespaceObject.useCallback)((_onClose, menu) => () => {
24814      _onClose();
24815  
24816      onSelect(menu);
24817    }, []);
24818    const menuChoices = (0,external_wp_element_namespaceObject.useMemo)(() => {
24819      return (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.map(_ref2 => {
24820        let {
24821          id,
24822          title
24823        } = _ref2;
24824        const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title.rendered);
24825        return {
24826          value: id,
24827          label,
24828          ariaLabel: (0,external_wp_i18n_namespaceObject.sprintf)(actionLabel, label)
24829        };
24830      })) || [];
24831    }, [navigationMenus]);
24832    const hasNavigationMenus = !!(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length);
24833    const hasClassicMenus = !!(classicMenus !== null && classicMenus !== void 0 && classicMenus.length);
24834    const showNavigationMenus = !!canSwitchNavigationMenu;
24835    const showClassicMenus = !!canUserCreateNavigationMenu;
24836    const hasManagePermissions = canUserCreateNavigationMenu || canUserUpdateNavigationMenu; // Show the selector if:
24837    // - has switch or create permissions and there are block or classic menus.
24838    // - user has create or update permisisons and component should show the menu actions.
24839  
24840    const showSelectMenus = (canSwitchNavigationMenu || canUserCreateNavigationMenu) && (hasNavigationMenus || hasClassicMenus) || hasManagePermissions && showManageActions;
24841  
24842    if (!showSelectMenus) {
24843      return null;
24844    }
24845  
24846    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
24847      ref: forwardedRef,
24848      label: (0,external_wp_i18n_namespaceObject.__)('Select Menu'),
24849      text: (0,external_wp_i18n_namespaceObject.__)('Select Menu'),
24850      icon: null,
24851      toggleProps: toggleProps
24852    }, _ref3 => {
24853      let {
24854        onClose
24855      } = _ref3;
24856      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, {
24857        label: (0,external_wp_i18n_namespaceObject.__)('Menus')
24858      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, {
24859        value: currentMenuId,
24860        onSelect: handleSelect(onClose),
24861        choices: menuChoices
24862      })), showClassicMenus && hasClassicMenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
24863        label: (0,external_wp_i18n_namespaceObject.__)('Classic Menus')
24864      }, classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.map(menu => {
24865        const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(menu.name);
24866        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
24867          onClick: handleSelectClassic(onClose, menu),
24868          key: menu.id,
24869          "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(createActionLabel, label)
24870        }, label);
24871      })), showManageActions && hasManagePermissions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
24872        label: (0,external_wp_i18n_namespaceObject.__)('Tools')
24873      }, canUserCreateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
24874        onClick: onCreateNew
24875      }, (0,external_wp_i18n_namespaceObject.__)('Create new menu')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
24876        href: (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', {
24877          post_type: 'wp_navigation'
24878        })
24879      }, (0,external_wp_i18n_namespaceObject.__)('Manage menus'))));
24880    });
24881  }
24882  
24883  /* harmony default export */ var navigation_menu_selector = ((0,external_wp_element_namespaceObject.forwardRef)(NavigationMenuSelector));
24884  
24885  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/index.js
24886  
24887  
24888  /**
24889   * WordPress dependencies
24890   */
24891  
24892  
24893  
24894  
24895  
24896  /**
24897   * Internal dependencies
24898   */
24899  
24900  
24901  
24902  
24903  function NavigationPlaceholder(_ref) {
24904    let {
24905      isSelected,
24906      currentMenuId,
24907      clientId,
24908      canUserCreateNavigationMenu = false,
24909      isResolvingCanUserCreateNavigationMenu,
24910      onFinish,
24911      onCreateEmpty
24912    } = _ref;
24913    const {
24914      isResolvingMenus,
24915      hasResolvedMenus
24916    } = useNavigationEntities();
24917    (0,external_wp_element_namespaceObject.useEffect)(() => {
24918      if (!isSelected) {
24919        return;
24920      }
24921  
24922      if (isResolvingMenus) {
24923        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Loading Navigation block setup options.'));
24924      }
24925  
24926      if (hasResolvedMenus) {
24927        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Navigation block setup options ready.'));
24928      }
24929    }, [isResolvingMenus, isSelected]);
24930    const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenu;
24931    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
24932      className: "wp-block-navigation-placeholder"
24933    }, (0,external_wp_element_namespaceObject.createElement)(placeholder_preview, {
24934      isVisible: !isSelected
24935    }), (0,external_wp_element_namespaceObject.createElement)("div", {
24936      "aria-hidden": !isSelected ? true : undefined,
24937      className: "wp-block-navigation-placeholder__controls"
24938    }, (0,external_wp_element_namespaceObject.createElement)("div", {
24939      className: "wp-block-navigation-placeholder__actions"
24940    }, (0,external_wp_element_namespaceObject.createElement)("div", {
24941      className: "wp-block-navigation-placeholder__actions__indicator"
24942    }, (0,external_wp_element_namespaceObject.createElement)(icon, {
24943      icon: library_navigation
24944    }), " ", (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, {
24945      currentMenuId: currentMenuId,
24946      clientId: clientId,
24947      onSelect: onFinish,
24948      toggleProps: {
24949        variant: 'tertiary',
24950        iconPosition: 'right',
24951        className: 'wp-block-navigation-placeholder__actions__dropdown'
24952      }
24953    }), (0,external_wp_element_namespaceObject.createElement)("hr", null), canUserCreateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
24954      variant: "tertiary",
24955      onClick: onCreateEmpty
24956    }, (0,external_wp_i18n_namespaceObject.__)('Start empty'))))));
24957  }
24958  
24959  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
24960  
24961  
24962  /**
24963   * WordPress dependencies
24964   */
24965  
24966  const close_close = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
24967    xmlns: "http://www.w3.org/2000/svg",
24968    viewBox: "0 0 24 24"
24969  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
24970    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"
24971  }));
24972  /* harmony default export */ var library_close = (close_close);
24973  
24974  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-icon.js
24975  
24976  
24977  /**
24978   * WordPress dependencies
24979   */
24980  
24981  function OverlayMenuIcon() {
24982    return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
24983      xmlns: "http://www.w3.org/2000/svg",
24984      viewBox: "0 0 24 24",
24985      width: "24",
24986      height: "24",
24987      "aria-hidden": "true",
24988      focusable: "false"
24989    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, {
24990      x: "4",
24991      y: "7.5",
24992      width: "16",
24993      height: "1.5"
24994    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, {
24995      x: "4",
24996      y: "15",
24997      width: "16",
24998      height: "1.5"
24999    }));
25000  }
25001  
25002  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/responsive-wrapper.js
25003  
25004  
25005  /**
25006   * External dependencies
25007   */
25008  
25009  /**
25010   * WordPress dependencies
25011   */
25012  
25013  
25014  
25015  
25016  /**
25017   * Internal dependencies
25018   */
25019  
25020  
25021  function ResponsiveWrapper(_ref) {
25022    let {
25023      children,
25024      id,
25025      isOpen,
25026      isResponsive,
25027      onToggle,
25028      isHiddenByDefault,
25029      classNames,
25030      styles,
25031      hasIcon
25032    } = _ref;
25033  
25034    if (!isResponsive) {
25035      return children;
25036    }
25037  
25038    const responsiveContainerClasses = classnames_default()('wp-block-navigation__responsive-container', classNames, {
25039      'is-menu-open': isOpen,
25040      'hidden-by-default': isHiddenByDefault
25041    });
25042    const openButtonClasses = classnames_default()('wp-block-navigation__responsive-container-open', {
25043      'always-shown': isHiddenByDefault
25044    });
25045    const modalId = `$id}-modal`;
25046    const dialogProps = {
25047      className: 'wp-block-navigation__responsive-dialog',
25048      ...(isOpen && {
25049        role: 'dialog',
25050        'aria-modal': true,
25051        'aria-label': (0,external_wp_i18n_namespaceObject.__)('Menu')
25052      })
25053    };
25054    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, {
25055      "aria-haspopup": "true",
25056      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Open menu'),
25057      className: openButtonClasses,
25058      onClick: () => onToggle(true)
25059    }, hasIcon && (0,external_wp_element_namespaceObject.createElement)(OverlayMenuIcon, null), !hasIcon && (0,external_wp_element_namespaceObject.createElement)("span", {
25060      className: "wp-block-navigation__toggle_button_label"
25061    }, (0,external_wp_i18n_namespaceObject.__)('Menu'))), (0,external_wp_element_namespaceObject.createElement)("div", {
25062      className: responsiveContainerClasses,
25063      style: styles,
25064      id: modalId
25065    }, (0,external_wp_element_namespaceObject.createElement)("div", {
25066      className: "wp-block-navigation__responsive-close",
25067      tabIndex: "-1"
25068    }, (0,external_wp_element_namespaceObject.createElement)("div", dialogProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
25069      className: "wp-block-navigation__responsive-container-close",
25070      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close menu'),
25071      onClick: () => onToggle(false)
25072    }, (0,external_wp_element_namespaceObject.createElement)(icon, {
25073      icon: library_close
25074    })), (0,external_wp_element_namespaceObject.createElement)("div", {
25075      className: "wp-block-navigation__responsive-container-content",
25076      id: `$modalId}-content`
25077    }, children)))));
25078  }
25079  
25080  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/inner-blocks.js
25081  
25082  
25083  /**
25084   * WordPress dependencies
25085   */
25086  
25087  
25088  
25089  
25090  /**
25091   * Internal dependencies
25092   */
25093  
25094  
25095  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'];
25096  const inner_blocks_DEFAULT_BLOCK = {
25097    name: 'core/navigation-link'
25098  };
25099  const LAYOUT = {
25100    type: 'default',
25101    alignments: []
25102  };
25103  function NavigationInnerBlocks(_ref) {
25104    let {
25105      clientId,
25106      hasCustomPlaceholder,
25107      orientation
25108    } = _ref;
25109    const {
25110      isImmediateParentOfSelectedBlock,
25111      selectedBlockHasChildren,
25112      isSelected
25113    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
25114      const {
25115        getBlockCount,
25116        hasSelectedInnerBlock,
25117        getSelectedBlockClientId
25118      } = select(external_wp_blockEditor_namespaceObject.store);
25119      const selectedBlockId = getSelectedBlockClientId();
25120      return {
25121        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
25122        selectedBlockHasChildren: !!getBlockCount(selectedBlockId),
25123        // This prop is already available but computing it here ensures it's
25124        // fresh compared to isImmediateParentOfSelectedBlock.
25125        isSelected: selectedBlockId === clientId
25126      };
25127    }, [clientId]);
25128    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_navigation');
25129    const shouldDirectInsert = (0,external_wp_element_namespaceObject.useMemo)(() => blocks.every(_ref2 => {
25130      let {
25131        name
25132      } = _ref2;
25133      return name === 'core/navigation-link' || name === 'core/navigation-submenu' || name === 'core/page-list';
25134    }), [blocks]); // When the block is selected itself or has a top level item selected that
25135    // doesn't itself have children, show the standard appender. Else show no
25136    // appender.
25137  
25138    const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren;
25139    const placeholder = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_element_namespaceObject.createElement)(placeholder_preview, null), []);
25140    const hasMenuItems = !!(blocks !== null && blocks !== void 0 && blocks.length); // If there is a `ref` attribute pointing to a `wp_navigation` but
25141    // that menu has no **items** (i.e. empty) then show a placeholder.
25142    // The block must also be selected else the placeholder will display
25143    // alongside the appender.
25144  
25145    const showPlaceholder = !hasCustomPlaceholder && !hasMenuItems && !isSelected;
25146    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
25147      className: 'wp-block-navigation__container'
25148    }, {
25149      value: blocks,
25150      onInput,
25151      onChange,
25152      allowedBlocks: inner_blocks_ALLOWED_BLOCKS,
25153      __experimentalDefaultBlock: inner_blocks_DEFAULT_BLOCK,
25154      __experimentalDirectInsert: shouldDirectInsert,
25155      orientation,
25156      // As an exception to other blocks which feature nesting, show
25157      // the block appender even when a child block is selected.
25158      // This should be a temporary fix, to be replaced by improvements to
25159      // the sibling inserter.
25160      // See https://github.com/WordPress/gutenberg/issues/37572.
25161      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender.
25162      parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
25163      // Template lock set to false here so that the Nav
25164      // Block on the experimental menus screen does not
25165      // inherit templateLock={ 'all' }.
25166      templateLock: false,
25167      __experimentalLayout: LAYOUT,
25168      placeholder: showPlaceholder ? placeholder : undefined
25169    });
25170    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, {
25171      clientId: clientId,
25172      tagName: 'div',
25173      wrapperProps: innerBlocksProps
25174    });
25175  }
25176  
25177  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-name-control.js
25178  
25179  
25180  /**
25181   * WordPress dependencies
25182   */
25183  
25184  
25185  
25186  function NavigationMenuNameControl() {
25187    const [title, updateTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
25188    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
25189      label: (0,external_wp_i18n_namespaceObject.__)('Menu name'),
25190      value: title,
25191      onChange: updateTitle
25192    });
25193  }
25194  
25195  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/create-template-part-id.js
25196  /**
25197   * Generates a template part Id based on slug and theme inputs.
25198   *
25199   * @param {string} theme the template part's theme.
25200   * @param {string} slug  the template part's slug
25201   * @return {string|null} the template part's Id.
25202   */
25203  function createTemplatePartId(theme, slug) {
25204    return theme && slug ? theme + '//' + slug : null;
25205  }
25206  
25207  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-template-part-area-label.js
25208  /**
25209   * WordPress dependencies
25210   */
25211  
25212  
25213  
25214  /**
25215   * Internal dependencies
25216   */
25217  // TODO: this util should perhaps be refactored somewhere like core-data.
25218  
25219  
25220  function useTemplatePartAreaLabel(clientId) {
25221    return (0,external_wp_data_namespaceObject.useSelect)(select => {
25222      // Use the lack of a clientId as an opportunity to bypass the rest
25223      // of this hook.
25224      if (!clientId) {
25225        return;
25226      }
25227  
25228      const {
25229        getBlock,
25230        getBlockParentsByBlockName
25231      } = select(external_wp_blockEditor_namespaceObject.store);
25232      const withAscendingResults = true;
25233      const parentTemplatePartClientIds = getBlockParentsByBlockName(clientId, 'core/template-part', withAscendingResults);
25234  
25235      if (!(parentTemplatePartClientIds !== null && parentTemplatePartClientIds !== void 0 && parentTemplatePartClientIds.length)) {
25236        return;
25237      } // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
25238      // Blocks can be loaded into a *non-post* block editor.
25239      // This code is lifted from this file:
25240      // packages/block-library/src/template-part/edit/advanced-controls.js
25241      // eslint-disable-next-line @wordpress/data-no-store-string-literals
25242  
25243  
25244      const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();
25245  
25246      const {
25247        getEditedEntityRecord
25248      } = select(external_wp_coreData_namespaceObject.store);
25249  
25250      for (const templatePartClientId of parentTemplatePartClientIds) {
25251        const templatePartBlock = getBlock(templatePartClientId); // The 'area' usually isn't stored on the block, but instead
25252        // on the entity.
25253  
25254        const {
25255          theme,
25256          slug
25257        } = templatePartBlock.attributes;
25258        const templatePartEntityId = createTemplatePartId(theme, slug);
25259        const templatePartEntity = getEditedEntityRecord('postType', 'wp_template_part', templatePartEntityId); // Look up the `label` for the area in the defined areas so
25260        // that an internationalized label can be used.
25261  
25262        if (templatePartEntity !== null && templatePartEntity !== void 0 && templatePartEntity.area) {
25263          var _definedAreas$find;
25264  
25265          return (_definedAreas$find = definedAreas.find(definedArea => definedArea.area !== 'uncategorized' && definedArea.area === templatePartEntity.area)) === null || _definedAreas$find === void 0 ? void 0 : _definedAreas$find.label;
25266        }
25267      }
25268    }, [clientId]);
25269  }
25270  
25271  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-generate-default-navigation-title.js
25272  /**
25273   * WordPress dependencies
25274   */
25275  
25276  
25277  
25278  
25279  
25280  /**
25281   * Internal dependencies
25282   */
25283  
25284  
25285  const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
25286    status: 'draft',
25287    per_page: -1
25288  }];
25289  const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', {
25290    per_page: -1,
25291    status: 'publish'
25292  }];
25293  function useGenerateDefaultNavigationTitle(clientId) {
25294    // The block will be disabled in a block preview, use this as a way of
25295    // avoiding the side-effects of this component for block previews.
25296    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
25297    // arg to bypass the expensive `useTemplateArea` code. The hook will return
25298    // early.
25299  
25300    const area = useTemplatePartAreaLabel(isDisabled ? undefined : clientId);
25301    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
25302    return (0,external_wp_element_namespaceObject.useCallback)(async () => {
25303      // Ensure other navigation menus have loaded so an
25304      // accurate name can be created.
25305      if (isDisabled) {
25306        return '';
25307      }
25308  
25309      const {
25310        getEntityRecords
25311      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
25312      const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]);
25313      const title = area ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
25314      (0,external_wp_i18n_namespaceObject.__)('%s navigation'), area) : // translators: 'navigation' as in website navigation.
25315      (0,external_wp_i18n_namespaceObject.__)('Navigation'); // Determine how many menus start with the automatic title.
25316  
25317      const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => {
25318        var _menu$title, _menu$title$raw;
25319  
25320        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;
25321      }, 0); // Append a number to the end of the title if a menu with
25322      // the same name exists.
25323  
25324      const titleWithCount = matchingMenuTitleCount > 0 ? `$title} $matchingMenuTitleCount + 1}` : title;
25325      return titleWithCount || '';
25326    }, [isDisabled, area]);
25327  }
25328  
25329  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-create-navigation-menu.js
25330  /**
25331   * WordPress dependencies
25332   */
25333  
25334  
25335  
25336  
25337  /**
25338   * Internal dependencies
25339   */
25340  
25341  
25342  const CREATE_NAVIGATION_MENU_SUCCESS = 'success';
25343  const CREATE_NAVIGATION_MENU_ERROR = 'error';
25344  const CREATE_NAVIGATION_MENU_PENDING = 'pending';
25345  const CREATE_NAVIGATION_MENU_IDLE = 'idle';
25346  function useCreateNavigationMenu(clientId) {
25347    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CREATE_NAVIGATION_MENU_IDLE);
25348    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
25349    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
25350    const {
25351      saveEntityRecord
25352    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
25353    const generateDefaultTitle = useGenerateDefaultNavigationTitle(clientId); // This callback uses data from the two placeholder steps and only creates
25354    // a new navigation menu when the user completes the final step.
25355  
25356    const create = (0,external_wp_element_namespaceObject.useCallback)(async function () {
25357      let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
25358      let blocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
25359  
25360      // Guard against creating Navigations without a title.
25361      // Note you can pass no title, but if one is passed it must be
25362      // a string otherwise the title may end up being empty.
25363      if (title && typeof title !== 'string') {
25364        setError('Invalid title supplied when creating Navigation Menu.');
25365        setStatus(CREATE_NAVIGATION_MENU_ERROR);
25366        throw new Error(`Value of supplied title argument was not a string.`);
25367      }
25368  
25369      setStatus(CREATE_NAVIGATION_MENU_PENDING);
25370      setValue(null);
25371      setError(null);
25372  
25373      if (!title) {
25374        title = await generateDefaultTitle().catch(err => {
25375          setError(err === null || err === void 0 ? void 0 : err.message);
25376          setStatus(CREATE_NAVIGATION_MENU_ERROR);
25377          throw new Error('Failed to create title when saving new Navigation Menu.', {
25378            cause: err
25379          });
25380        });
25381      }
25382  
25383      const record = {
25384        title,
25385        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
25386        status: 'publish'
25387      }; // Return affords ability to await on this function directly
25388  
25389      return saveEntityRecord('postType', 'wp_navigation', record).then(response => {
25390        setValue(response);
25391        setStatus(CREATE_NAVIGATION_MENU_SUCCESS);
25392        return response;
25393      }).catch(err => {
25394        setError(err === null || err === void 0 ? void 0 : err.message);
25395        setStatus(CREATE_NAVIGATION_MENU_ERROR);
25396        throw new Error('Unable to save new Navigation Menu', {
25397          cause: err
25398        });
25399      });
25400    }, [external_wp_blocks_namespaceObject.serialize, saveEntityRecord]);
25401    return {
25402      create,
25403      status,
25404      value,
25405      error
25406    };
25407  }
25408  
25409  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/unsaved-inner-blocks.js
25410  
25411  
25412  /**
25413   * External dependencies
25414   */
25415  
25416  /**
25417   * WordPress dependencies
25418   */
25419  
25420  
25421  
25422  
25423  
25424  
25425  /**
25426   * Internal dependencies
25427   */
25428  
25429  
25430  
25431  const EMPTY_OBJECT = {};
25432  const unsaved_inner_blocks_DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
25433    status: 'draft',
25434    per_page: -1
25435  }];
25436  const unsaved_inner_blocks_DEFAULT_BLOCK = {
25437    name: 'core/navigation-link'
25438  };
25439  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'];
25440  function UnsavedInnerBlocks(_ref) {
25441    let {
25442      blockProps,
25443      blocks,
25444      clientId,
25445      hasSavedUnsavedInnerBlocks,
25446      onSave,
25447      hasSelection
25448    } = _ref;
25449    const originalBlocks = (0,external_wp_element_namespaceObject.useRef)();
25450    (0,external_wp_element_namespaceObject.useEffect)(() => {
25451      // Initially store the uncontrolled inner blocks for
25452      // dirty state comparison.
25453      if (!(originalBlocks !== null && originalBlocks !== void 0 && originalBlocks.current)) {
25454        originalBlocks.current = blocks;
25455      }
25456    }, [blocks]); // If the current inner blocks object is different in any way
25457    // from the original inner blocks from the post content then the
25458    // user has made changes to the inner blocks. At this point the inner
25459    // blocks can be considered "dirty".
25460  
25461    const innerBlocksAreDirty = blocks !== originalBlocks.current;
25462    const shouldDirectInsert = (0,external_wp_element_namespaceObject.useMemo)(() => blocks.every(_ref2 => {
25463      let {
25464        name
25465      } = _ref2;
25466      return name === 'core/navigation-link' || name === 'core/navigation-submenu' || name === 'core/page-list';
25467    }), [blocks]); // The block will be disabled in a block preview, use this as a way of
25468    // avoiding the side-effects of this component for block previews.
25469  
25470    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
25471    const savingLock = (0,external_wp_element_namespaceObject.useRef)(false);
25472    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
25473      renderAppender: hasSelection ? undefined : false,
25474      allowedBlocks: unsaved_inner_blocks_ALLOWED_BLOCKS,
25475      __experimentalDefaultBlock: unsaved_inner_blocks_DEFAULT_BLOCK,
25476      __experimentalDirectInsert: shouldDirectInsert
25477    });
25478    const {
25479      isSaving,
25480      draftNavigationMenus,
25481      hasResolvedDraftNavigationMenus
25482    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
25483      if (isDisabled) {
25484        return EMPTY_OBJECT;
25485      }
25486  
25487      const {
25488        getEntityRecords,
25489        hasFinishedResolution,
25490        isSavingEntityRecord
25491      } = select(external_wp_coreData_namespaceObject.store);
25492      return {
25493        isSaving: isSavingEntityRecord('postType', 'wp_navigation'),
25494        draftNavigationMenus: getEntityRecords(...unsaved_inner_blocks_DRAFT_MENU_PARAMS),
25495        hasResolvedDraftNavigationMenus: hasFinishedResolution('getEntityRecords', unsaved_inner_blocks_DRAFT_MENU_PARAMS)
25496      };
25497    }, [isDisabled]);
25498    const {
25499      hasResolvedNavigationMenus,
25500      navigationMenus
25501    } = useNavigationMenu();
25502    const {
25503      create: createNavigationMenu
25504    } = useCreateNavigationMenu(clientId); // Automatically save the uncontrolled blocks.
25505  
25506    (0,external_wp_element_namespaceObject.useEffect)(async () => {
25507      // The block will be disabled when used in a BlockPreview.
25508      // In this case avoid automatic creation of a wp_navigation post.
25509      // Otherwise the user will be spammed with lots of menus!
25510      //
25511      // Also ensure other navigation menus have loaded so an
25512      // accurate name can be created.
25513      //
25514      // Don't try saving when another save is already
25515      // in progress.
25516      //
25517      // And finally only create the menu when the block is selected,
25518      // which is an indication they want to start editing.
25519      if (isDisabled || hasSavedUnsavedInnerBlocks || isSaving || savingLock.current || !hasResolvedDraftNavigationMenus || !hasResolvedNavigationMenus || !hasSelection || !innerBlocksAreDirty) {
25520        return;
25521      }
25522  
25523      savingLock.current = true;
25524      const menu = await createNavigationMenu(null, blocks);
25525      onSave(menu);
25526      savingLock.current = false;
25527    }, [isDisabled, isSaving, hasResolvedDraftNavigationMenus, hasResolvedNavigationMenus, draftNavigationMenus, navigationMenus, hasSelection, createNavigationMenu, blocks]);
25528    const Wrapper = isSaving ? external_wp_components_namespaceObject.Disabled : 'div';
25529    return (0,external_wp_element_namespaceObject.createElement)(Wrapper, {
25530      className: "wp-block-navigation__unsaved-changes"
25531    }, (0,external_wp_element_namespaceObject.createElement)("div", {
25532      className: classnames_default()('wp-block-navigation__unsaved-changes-overlay', {
25533        'is-saving': isSaving
25534      })
25535    }, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)), isSaving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
25536  }
25537  
25538  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-delete-control.js
25539  
25540  
25541  /**
25542   * WordPress dependencies
25543   */
25544  
25545  
25546  
25547  
25548  
25549  function NavigationMenuDeleteControl(_ref) {
25550    let {
25551      onDelete
25552    } = _ref;
25553    const [isConfirmModalVisible, setIsConfirmModalVisible] = (0,external_wp_element_namespaceObject.useState)(false);
25554    const id = (0,external_wp_coreData_namespaceObject.useEntityId)('postType', 'wp_navigation');
25555    const [title] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
25556    const {
25557      deleteEntityRecord
25558    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
25559    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
25560      className: "wp-block-navigation-delete-menu-button",
25561      variant: "secondary",
25562      isDestructive: true,
25563      onClick: () => {
25564        setIsConfirmModalVisible(true);
25565      }
25566    }, (0,external_wp_i18n_namespaceObject.__)('Delete menu')), isConfirmModalVisible && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
25567      title: (0,external_wp_i18n_namespaceObject.sprintf)(
25568      /* translators: %s: the name of a menu to delete */
25569      (0,external_wp_i18n_namespaceObject.__)('Delete %s'), title),
25570      closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
25571      onRequestClose: () => setIsConfirmModalVisible(false)
25572    }, (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, {
25573      justify: "flex-end"
25574    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
25575      variant: "secondary",
25576      onClick: () => {
25577        setIsConfirmModalVisible(false);
25578      }
25579    }, (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, {
25580      variant: "primary",
25581      onClick: () => {
25582        deleteEntityRecord('postType', 'wp_navigation', id, {
25583          force: true
25584        });
25585        onDelete(title);
25586      }
25587    }, (0,external_wp_i18n_namespaceObject.__)('Confirm'))))));
25588  }
25589  
25590  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-navigation-notice.js
25591  /**
25592   * WordPress dependencies
25593   */
25594  
25595  
25596  
25597  
25598  function useNavigationNotice() {
25599    let {
25600      name,
25601      message = ''
25602    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
25603    const noticeRef = (0,external_wp_element_namespaceObject.useRef)();
25604    const {
25605      createWarningNotice,
25606      removeNotice
25607    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
25608  
25609    const showNotice = customMsg => {
25610      if (noticeRef.current) {
25611        return;
25612      }
25613  
25614      noticeRef.current = name;
25615      createWarningNotice(customMsg || message, {
25616        id: noticeRef.current,
25617        type: 'snackbar'
25618      });
25619    };
25620  
25621    const hideNotice = () => {
25622      if (!noticeRef.current) {
25623        return;
25624      }
25625  
25626      removeNotice(noticeRef.current);
25627      noticeRef.current = null;
25628    };
25629  
25630    return [showNotice, hideNotice];
25631  }
25632  
25633  /* harmony default export */ var use_navigation_notice = (useNavigationNotice);
25634  
25635  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/menu-items-to-blocks.js
25636  /**
25637   * External dependencies
25638   */
25639  
25640  /**
25641   * WordPress dependencies
25642   */
25643  
25644  
25645  
25646  /**
25647   * Convert a flat menu item structure to a nested blocks structure.
25648   *
25649   * @param {Object[]} menuItems An array of menu items.
25650   *
25651   * @return {WPBlock[]} An array of blocks.
25652   */
25653  
25654  function menuItemsToBlocks(menuItems) {
25655    if (!menuItems) {
25656      return null;
25657    }
25658  
25659    const menuTree = createDataTree(menuItems);
25660    const blocks = mapMenuItemsToBlocks(menuTree);
25661    return (0,external_wp_hooks_namespaceObject.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems);
25662  }
25663  /**
25664   * A recursive function that maps menu item nodes to blocks.
25665   *
25666   * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.
25667   * @return {Object} Object containing innerBlocks and mapping.
25668   */
25669  
25670  function mapMenuItemsToBlocks(menuItems) {
25671    let mapping = {}; // The menuItem should be in menu_order sort order.
25672  
25673    const sortedItems = (0,external_lodash_namespaceObject.sortBy)(menuItems, 'menu_order');
25674    const innerBlocks = sortedItems.map(menuItem => {
25675      var _menuItem$children, _menuItem$children2;
25676  
25677      if (menuItem.type === 'block') {
25678        const [block] = (0,external_wp_blocks_namespaceObject.parse)(menuItem.content.raw);
25679  
25680        if (!block) {
25681          return (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', {
25682            content: menuItem.content
25683          });
25684        }
25685  
25686        return block;
25687      }
25688  
25689      const attributes = menuItemToBlockAttributes(menuItem); // If there are children recurse to build those nested blocks.
25690  
25691      const {
25692        innerBlocks: nestedBlocks = [],
25693        // alias to avoid shadowing
25694        mapping: nestedMapping = {} // alias to avoid shadowing
25695  
25696      } = (_menuItem$children = menuItem.children) !== null && _menuItem$children !== void 0 && _menuItem$children.length ? mapMenuItemsToBlocks(menuItem.children) : {}; // Update parent mapping with nested mapping.
25697  
25698      mapping = { ...mapping,
25699        ...nestedMapping
25700      };
25701      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".
25702  
25703      const block = (0,external_wp_blocks_namespaceObject.createBlock)(blockType, attributes, nestedBlocks); // Create mapping for menuItem -> block.
25704  
25705      mapping[menuItem.id] = block.clientId;
25706      return block;
25707    });
25708    return {
25709      innerBlocks,
25710      mapping
25711    };
25712  }
25713  /**
25714   * A WP nav_menu_item object.
25715   * For more documentation on the individual fields present on a menu item please see:
25716   * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789
25717   *
25718   * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.
25719   *
25720   * @typedef WPNavMenuItem
25721   *
25722   * @property {Object} title       stores the raw and rendered versions of the title/label for this menu item.
25723   * @property {Array}  xfn         the XFN relationships expressed in the link of this menu item.
25724   * @property {Array}  classes     the HTML class attributes for this menu item.
25725   * @property {string} attr_title  the HTML title attribute for this menu item.
25726   * @property {string} object      The type of object originally represented, such as 'category', 'post', or 'attachment'.
25727   * @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.
25728   * @property {string} description The description of this menu item.
25729   * @property {string} url         The URL to which this menu item points.
25730   * @property {string} type        The family of objects originally represented, such as 'post_type' or 'taxonomy'.
25731   * @property {string} target      The target attribute of the link element for this menu item.
25732   */
25733  
25734  /**
25735   * Convert block attributes to menu item.
25736   *
25737   * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.
25738   * @return {Object} the block attributes converted from the WPNavMenuItem item.
25739   */
25740  
25741  
25742  function menuItemToBlockAttributes(_ref) {
25743    var _object;
25744  
25745    let {
25746      title: menuItemTitleField,
25747      xfn,
25748      classes,
25749      // eslint-disable-next-line camelcase
25750      attr_title,
25751      object,
25752      // eslint-disable-next-line camelcase
25753      object_id,
25754      description,
25755      url,
25756      type: menuItemTypeField,
25757      target
25758    } = _ref;
25759  
25760    // For historical reasons, the `core/navigation-link` variation type is `tag`
25761    // whereas WP Core expects `post_tag` as the `object` type.
25762    // To avoid writing a block migration we perform a conversion here.
25763    // See also inverse equivalent in `blockAttributesToMenuItem`.
25764    if (object && object === 'post_tag') {
25765      object = 'tag';
25766    }
25767  
25768    return {
25769      label: (menuItemTitleField === null || menuItemTitleField === void 0 ? void 0 : menuItemTitleField.rendered) || '',
25770      ...(((_object = object) === null || _object === void 0 ? void 0 : _object.length) && {
25771        type: object
25772      }),
25773      kind: (menuItemTypeField === null || menuItemTypeField === void 0 ? void 0 : menuItemTypeField.replace('_', '-')) || 'custom',
25774      url: url || '',
25775      ...((xfn === null || xfn === void 0 ? void 0 : xfn.length) && xfn.join(' ').trim() && {
25776        rel: xfn.join(' ').trim()
25777      }),
25778      ...((classes === null || classes === void 0 ? void 0 : classes.length) && classes.join(' ').trim() && {
25779        className: classes.join(' ').trim()
25780      }),
25781  
25782      /* eslint-disable camelcase */
25783      ...((attr_title === null || attr_title === void 0 ? void 0 : attr_title.length) && {
25784        title: attr_title
25785      }),
25786      ...(object_id && 'custom' !== object && {
25787        id: object_id
25788      }),
25789  
25790      /* eslint-enable camelcase */
25791      ...((description === null || description === void 0 ? void 0 : description.length) && {
25792        description
25793      }),
25794      ...(target === '_blank' && {
25795        opensInNewTab: true
25796      })
25797    };
25798  }
25799  /**
25800   * Creates a nested, hierarchical tree representation from unstructured data that
25801   * has an inherent relationship defined between individual items.
25802   *
25803   * For example, by default, each element in the dataset should have an `id` and
25804   * `parent` property where the `parent` property indicates a relationship between
25805   * the current item and another item with a matching `id` properties.
25806   *
25807   * This is useful for building linked lists of data from flat data structures.
25808   *
25809   * @param {Array}  dataset  linked data to be rearranged into a hierarchical tree based on relational fields.
25810   * @param {string} id       the property which uniquely identifies each entry within the array.
25811   * @param {*}      relation the property which identifies how the current item is related to other items in the data (if at all).
25812   * @return {Array} a nested array of parent/child relationships
25813   */
25814  
25815  
25816  function createDataTree(dataset) {
25817    let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
25818    let relation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'parent';
25819    const hashTable = Object.create(null);
25820    const dataTree = [];
25821  
25822    for (const data of dataset) {
25823      hashTable[data[id]] = { ...data,
25824        children: []
25825      };
25826  
25827      if (data[relation]) {
25828        hashTable[data[relation]] = hashTable[data[relation]] || {};
25829        hashTable[data[relation]].children = hashTable[data[relation]].children || [];
25830        hashTable[data[relation]].children.push(hashTable[data[id]]);
25831      } else {
25832        dataTree.push(hashTable[data[id]]);
25833      }
25834    }
25835  
25836    return dataTree;
25837  }
25838  
25839  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js
25840  /**
25841   * WordPress dependencies
25842   */
25843  
25844  
25845  
25846  
25847  /**
25848   * Internal dependencies
25849   */
25850  
25851  
25852  
25853  const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
25854  const CLASSIC_MENU_CONVERSION_ERROR = 'error';
25855  const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
25856  const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
25857  
25858  function useConvertClassicToBlockMenu(clientId) {
25859    const {
25860      create: createNavigationMenu
25861    } = useCreateNavigationMenu(clientId);
25862    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
25863    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CLASSIC_MENU_CONVERSION_IDLE);
25864    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
25865    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
25866  
25867    async function convertClassicMenuToBlockMenu(menuId, menuName) {
25868      let navigationMenu;
25869      let classicMenuItems; // 1. Fetch the classic Menu items.
25870  
25871      try {
25872        classicMenuItems = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getMenuItems({
25873          menus: menuId,
25874          per_page: -1,
25875          context: 'view'
25876        });
25877      } catch (err) {
25878        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
25879        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName), {
25880          cause: err
25881        });
25882      } // Handle offline response which resolves to `null`.
25883  
25884  
25885      if (classicMenuItems === null) {
25886        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
25887        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName));
25888      } // 2. Convert the classic items into blocks.
25889  
25890  
25891      const {
25892        innerBlocks
25893      } = menuItemsToBlocks(classicMenuItems); // 3. Create the `wp_navigation` Post with the blocks.
25894  
25895      try {
25896        navigationMenu = await createNavigationMenu(menuName, innerBlocks);
25897      } catch (err) {
25898        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
25899        (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
25900          cause: err
25901        });
25902      }
25903  
25904      return navigationMenu;
25905    }
25906  
25907    const convert = (0,external_wp_element_namespaceObject.useCallback)((menuId, menuName) => {
25908      if (!menuId || !menuName) {
25909        setError('Unable to convert menu. Missing menu details.');
25910        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
25911        return;
25912      }
25913  
25914      setStatus(CLASSIC_MENU_CONVERSION_PENDING);
25915      setValue(null);
25916      setError(null);
25917      convertClassicMenuToBlockMenu(menuId, menuName).then(navMenu => {
25918        setValue(navMenu);
25919        setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
25920      }).catch(err => {
25921        setError(err === null || err === void 0 ? void 0 : err.message);
25922        setStatus(CLASSIC_MENU_CONVERSION_ERROR); // Rethrow error for debugging.
25923  
25924        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
25925        (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
25926          cause: err
25927        });
25928      });
25929    }, [clientId]);
25930    return {
25931      convert,
25932      status,
25933      value,
25934      error
25935    };
25936  }
25937  
25938  /* harmony default export */ var use_convert_classic_menu_to_block_menu = (useConvertClassicToBlockMenu);
25939  
25940  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/index.js
25941  
25942  
25943  /**
25944   * External dependencies
25945   */
25946  
25947  /**
25948   * WordPress dependencies
25949   */
25950  
25951  
25952  
25953  
25954  
25955  
25956  
25957  
25958  /**
25959   * Internal dependencies
25960   */
25961  
25962  
25963  
25964  
25965  
25966  
25967  
25968  
25969  
25970  
25971  
25972  
25973  
25974  
25975  const EMPTY_ARRAY = [];
25976  
25977  function getComputedStyle(node) {
25978    return node.ownerDocument.defaultView.getComputedStyle(node);
25979  }
25980  
25981  function detectColors(colorsDetectionElement, setColor, setBackground) {
25982    if (!colorsDetectionElement) {
25983      return;
25984    }
25985  
25986    setColor(getComputedStyle(colorsDetectionElement).color);
25987    let backgroundColorNode = colorsDetectionElement;
25988    let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
25989  
25990    while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) {
25991      backgroundColorNode = backgroundColorNode.parentNode;
25992      backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
25993    }
25994  
25995    setBackground(backgroundColor);
25996  }
25997  
25998  function Navigation(_ref) {
25999    var _attributes$style, _attributes$style$typ;
26000  
26001    let {
26002      attributes,
26003      setAttributes,
26004      clientId,
26005      isSelected,
26006      className,
26007      backgroundColor,
26008      setBackgroundColor,
26009      textColor,
26010      setTextColor,
26011      overlayBackgroundColor,
26012      setOverlayBackgroundColor,
26013      overlayTextColor,
26014      setOverlayTextColor,
26015      // These props are used by the navigation editor to override specific
26016      // navigation block settings.
26017      hasSubmenuIndicatorSetting = true,
26018      hasColorSettings = true,
26019      customPlaceholder: CustomPlaceholder = null
26020    } = _ref;
26021    const {
26022      openSubmenusOnClick,
26023      overlayMenu,
26024      showSubmenuIcon,
26025      layout: {
26026        justifyContent,
26027        orientation = 'horizontal',
26028        flexWrap = 'wrap'
26029      } = {},
26030      hasIcon
26031    } = attributes;
26032    const ref = attributes.ref;
26033    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
26034  
26035    const setRef = postId => {
26036      setAttributes({
26037        ref: postId
26038      });
26039    };
26040  
26041    const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(`navigationMenu/$ref}`); // Preload classic menus, so that they don't suddenly pop-in when viewing
26042    // the Select Menu dropdown.
26043  
26044    useNavigationEntities();
26045    const [showNavigationMenuDeleteNotice] = use_navigation_notice({
26046      name: 'block-library/core/navigation/delete'
26047    });
26048    const [showNavigationMenuCreateNotice, hideNavigationMenuCreateNotice] = use_navigation_notice({
26049      name: 'block-library/core/navigation/create'
26050    });
26051    const {
26052      create: createNavigationMenu,
26053      status: createNavigationMenuStatus,
26054      error: createNavigationMenuError,
26055      value: createNavigationMenuPost
26056    } = useCreateNavigationMenu(clientId);
26057    const isCreatingNavigationMenu = createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;
26058    (0,external_wp_element_namespaceObject.useEffect)(() => {
26059      hideNavigationMenuCreateNotice();
26060  
26061      if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING) {
26062        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)(`Creating Navigation Menu.`));
26063      }
26064  
26065      if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS) {
26066        setRef(createNavigationMenuPost.id);
26067        selectBlock(clientId);
26068        showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu successfully created.`));
26069      }
26070  
26071      if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR) {
26072        showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)('Failed to create Navigation Menu.'));
26073      }
26074    }, [createNavigationMenu, createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost]);
26075    const {
26076      hasUncontrolledInnerBlocks,
26077      uncontrolledInnerBlocks,
26078      isInnerBlockSelected,
26079      hasSubmenus
26080    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
26081      const {
26082        getBlock,
26083        getBlocks,
26084        hasSelectedInnerBlock
26085      } = select(external_wp_blockEditor_namespaceObject.store); // This relies on the fact that `getBlock` won't return controlled
26086      // inner blocks, while `getBlocks` does. It might be more stable to
26087      // introduce a selector like `getUncontrolledInnerBlocks`, just in
26088      // case `getBlock` is fixed.
26089  
26090      const _uncontrolledInnerBlocks = getBlock(clientId).innerBlocks;
26091  
26092      const _hasUncontrolledInnerBlocks = !!(_uncontrolledInnerBlocks !== null && _uncontrolledInnerBlocks !== void 0 && _uncontrolledInnerBlocks.length);
26093  
26094      const _controlledInnerBlocks = _hasUncontrolledInnerBlocks ? EMPTY_ARRAY : getBlocks(clientId);
26095  
26096      const innerBlocks = _hasUncontrolledInnerBlocks ? _uncontrolledInnerBlocks : _controlledInnerBlocks;
26097      return {
26098        hasSubmenus: !!innerBlocks.find(block => block.name === 'core/navigation-submenu'),
26099        hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
26100        uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
26101        isInnerBlockSelected: hasSelectedInnerBlock(clientId, true)
26102      };
26103    }, [clientId]);
26104    const {
26105      replaceInnerBlocks,
26106      selectBlock,
26107      __unstableMarkNextChangeAsNotPersistent
26108    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
26109    const [hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks] = (0,external_wp_element_namespaceObject.useState)(false);
26110    const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0,external_wp_element_namespaceObject.useState)(false);
26111    const [overlayMenuPreview, setOverlayMenuPreview] = (0,external_wp_element_namespaceObject.useState)(false);
26112    const {
26113      hasResolvedNavigationMenus,
26114      isNavigationMenuResolved,
26115      isNavigationMenuMissing,
26116      navigationMenus,
26117      navigationMenu,
26118      canUserUpdateNavigationMenu,
26119      hasResolvedCanUserUpdateNavigationMenu,
26120      canUserDeleteNavigationMenu,
26121      hasResolvedCanUserDeleteNavigationMenu,
26122      canUserCreateNavigationMenu,
26123      isResolvingCanUserCreateNavigationMenu,
26124      hasResolvedCanUserCreateNavigationMenu
26125    } = useNavigationMenu(ref); // Attempt to retrieve and prioritize any existing navigation menu unless
26126    // a specific ref is allocated or the user is explicitly creating a new menu. The aim is
26127    // for the block to "just work" from a user perspective using existing data.
26128  
26129    (0,external_wp_element_namespaceObject.useEffect)(() => {
26130      if (isCreatingNavigationMenu || ref || !(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length) || (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1) {
26131        return;
26132      }
26133  
26134      setRef(navigationMenus[0].id);
26135    }, [navigationMenus]);
26136    const navRef = (0,external_wp_element_namespaceObject.useRef)();
26137    const isDraftNavigationMenu = (navigationMenu === null || navigationMenu === void 0 ? void 0 : navigationMenu.status) === 'draft';
26138    const {
26139      convert,
26140      status: classicMenuConversionStatus,
26141      error: classicMenuConversionError,
26142      value: classicMenuConversionResult
26143    } = use_convert_classic_menu_to_block_menu(clientId);
26144    const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING; // The standard HTML5 tag for the block wrapper.
26145  
26146    const TagName = 'nav'; // "placeholder" shown if:
26147    // - there is no ref attribute pointing to a Navigation Post.
26148    // - there is no classic menu conversion process in progress.
26149    // - there is no menu creation process in progress.
26150    // - there are no uncontrolled blocks.
26151  
26152    const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && !hasUncontrolledInnerBlocks;
26153    const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // "loading" state:
26154    // - there is a menu creation process in progress.
26155    // - there is a classic menu conversion process in progress.
26156    // OR
26157    // - there is a ref attribute pointing to a Navigation Post
26158    // - the Navigation Post isn't available (hasn't resolved) yet.
26159  
26160    const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu);
26161    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;
26162    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
26163      ref: navRef,
26164      className: classnames_default()(className, {
26165        'items-justified-right': justifyContent === 'right',
26166        'items-justified-space-between': justifyContent === 'space-between',
26167        'items-justified-left': justifyContent === 'left',
26168        'items-justified-center': justifyContent === 'center',
26169        'is-vertical': orientation === 'vertical',
26170        'no-wrap': flexWrap === 'nowrap',
26171        'is-responsive': 'never' !== overlayMenu,
26172        'has-text-color': !!textColor.color || !!(textColor !== null && textColor !== void 0 && textColor.class),
26173        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor === null || textColor === void 0 ? void 0 : textColor.slug)]: !!(textColor !== null && textColor !== void 0 && textColor.slug),
26174        'has-background': !!backgroundColor.color || backgroundColor.class,
26175        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.slug)]: !!(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug),
26176        [`has-text-decoration-$textDecoration}`]: textDecoration
26177      }),
26178      style: {
26179        color: !(textColor !== null && textColor !== void 0 && textColor.slug) && (textColor === null || textColor === void 0 ? void 0 : textColor.color),
26180        backgroundColor: !(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug) && (backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.color)
26181      }
26182    });
26183    const overlayClassnames = classnames_default()({
26184      'has-text-color': !!overlayTextColor.color || !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.class),
26185      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', overlayTextColor === null || overlayTextColor === void 0 ? void 0 : overlayTextColor.slug)]: !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.slug),
26186      'has-background': !!overlayBackgroundColor.color || (overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.class),
26187      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.slug)]: !!(overlayBackgroundColor !== null && overlayBackgroundColor !== void 0 && overlayBackgroundColor.slug)
26188    });
26189    const overlayStyles = {
26190      color: !(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.slug) && (overlayTextColor === null || overlayTextColor === void 0 ? void 0 : overlayTextColor.color),
26191      backgroundColor: !(overlayBackgroundColor !== null && overlayBackgroundColor !== void 0 && overlayBackgroundColor.slug) && (overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.color) && overlayBackgroundColor.color
26192    }; // Turn on contrast checker for web only since it's not supported on mobile yet.
26193  
26194    const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web';
26195    const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
26196    const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)();
26197    const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
26198    const [detectedOverlayColor, setDetectedOverlayColor] = (0,external_wp_element_namespaceObject.useState)();
26199    const [showClassicMenuConversionErrorNotice, hideClassicMenuConversionErrorNotice] = use_navigation_notice({
26200      name: 'block-library/core/navigation/classic-menu-conversion/error'
26201    });
26202  
26203    function handleUpdateMenu(menuId) {
26204      setRef(menuId);
26205      selectBlock(clientId);
26206    }
26207  
26208    (0,external_wp_element_namespaceObject.useEffect)(() => {
26209      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING) {
26210        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu importing.'));
26211      }
26212  
26213      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS && classicMenuConversionResult) {
26214        handleUpdateMenu(classicMenuConversionResult === null || classicMenuConversionResult === void 0 ? void 0 : classicMenuConversionResult.id);
26215        hideClassicMenuConversionErrorNotice();
26216        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu imported successfully.'));
26217      }
26218  
26219      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) {
26220        showClassicMenuConversionErrorNotice(classicMenuConversionError);
26221        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu import failed.'));
26222      }
26223    }, [classicMenuConversionStatus, classicMenuConversionResult, classicMenuConversionError]); // Spacer block needs orientation from context. This is a patch until
26224    // https://github.com/WordPress/gutenberg/issues/36197 is addressed.
26225  
26226    (0,external_wp_element_namespaceObject.useEffect)(() => {
26227      if (orientation) {
26228        __unstableMarkNextChangeAsNotPersistent();
26229  
26230        setAttributes({
26231          orientation
26232        });
26233      }
26234    }, [orientation]);
26235    (0,external_wp_element_namespaceObject.useEffect)(() => {
26236      var _navRef$current;
26237  
26238      if (!enableContrastChecking) {
26239        return;
26240      }
26241  
26242      detectColors(navRef.current, setDetectedColor, setDetectedBackgroundColor);
26243      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"]');
26244  
26245      if (subMenuElement) {
26246        detectColors(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor);
26247      }
26248    });
26249    const [showCantEditNotice, hideCantEditNotice] = use_navigation_notice({
26250      name: 'block-library/core/navigation/permissions/update',
26251      message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to edit this Menu. Any changes made will not be saved.')
26252    });
26253    const [showCantCreateNotice, hideCantCreateNotice] = use_navigation_notice({
26254      name: 'block-library/core/navigation/permissions/create',
26255      message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Navigation Menus.')
26256    });
26257    (0,external_wp_element_namespaceObject.useEffect)(() => {
26258      if (!isSelected && !isInnerBlockSelected) {
26259        hideCantEditNotice();
26260        hideCantCreateNotice();
26261      }
26262  
26263      if (isSelected || isInnerBlockSelected) {
26264        if (hasResolvedCanUserUpdateNavigationMenu && !canUserUpdateNavigationMenu) {
26265          showCantEditNotice();
26266        }
26267  
26268        if (!ref && hasResolvedCanUserCreateNavigationMenu && !canUserCreateNavigationMenu) {
26269          showCantCreateNotice();
26270        }
26271      }
26272    }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenu, hasResolvedCanUserCreateNavigationMenu, ref]);
26273    const navigationSelectorRef = (0,external_wp_element_namespaceObject.useRef)();
26274    const [shouldFocusNavigationSelector, setShouldFocusNavigationSelector] = (0,external_wp_element_namespaceObject.useState)(false);
26275    const handleSelectNavigation = (0,external_wp_element_namespaceObject.useCallback)(navPostOrClassicMenu => {
26276      if (!navPostOrClassicMenu) {
26277        return;
26278      }
26279  
26280      const isClassicMenu = navPostOrClassicMenu.hasOwnProperty('auto_add');
26281  
26282      if (isClassicMenu) {
26283        convert(navPostOrClassicMenu.id, navPostOrClassicMenu.name);
26284      } else {
26285        handleUpdateMenu(navPostOrClassicMenu.id);
26286      }
26287  
26288      setShouldFocusNavigationSelector(true);
26289    }, [convert, handleUpdateMenu]); // Focus support after menu selection.
26290  
26291    (0,external_wp_element_namespaceObject.useEffect)(() => {
26292      var _navigationSelectorRe;
26293  
26294      if (isDraftNavigationMenu || !isEntityAvailable || !shouldFocusNavigationSelector) {
26295        return;
26296      }
26297  
26298      navigationSelectorRef === null || navigationSelectorRef === void 0 ? void 0 : (_navigationSelectorRe = navigationSelectorRef.current) === null || _navigationSelectorRe === void 0 ? void 0 : _navigationSelectorRe.focus();
26299      setShouldFocusNavigationSelector(false);
26300    }, [isDraftNavigationMenu, isEntityAvailable, shouldFocusNavigationSelector]);
26301    const resetToEmptyBlock = (0,external_wp_element_namespaceObject.useCallback)(() => {
26302      registry.batch(() => {
26303        setAttributes({
26304          ref: undefined
26305        });
26306  
26307        if (!ref) {
26308          replaceInnerBlocks(clientId, []);
26309        }
26310      });
26311    }, [clientId, ref]); // If the block has inner blocks, but no menu id, then these blocks are either:
26312    // - inserted via a pattern.
26313    // - inserted directly via Code View (or otherwise).
26314    // - from an older version of navigation block added before the block used a wp_navigation entity.
26315    // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
26316    // that automatically saves the menu as an entity when changes are made to the inner blocks.
26317  
26318    const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
26319  
26320    if (hasUnsavedBlocks) {
26321      return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(ResponsiveWrapper, {
26322        id: clientId,
26323        onToggle: setResponsiveMenuVisibility,
26324        isOpen: isResponsiveMenuOpen,
26325        isResponsive: 'never' !== overlayMenu,
26326        isHiddenByDefault: 'always' === overlayMenu,
26327        classNames: overlayClassnames,
26328        styles: overlayStyles
26329      }, (0,external_wp_element_namespaceObject.createElement)(UnsavedInnerBlocks, {
26330        blockProps: blockProps,
26331        blocks: uncontrolledInnerBlocks,
26332        clientId: clientId,
26333        navigationMenus: navigationMenus,
26334        hasSelection: isSelected || isInnerBlockSelected,
26335        hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks,
26336        onSave: post => {
26337          // Set some state used as a guard to prevent the creation of multiple posts.
26338          setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity.
26339  
26340          setRef(post.id);
26341          showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)(`New Navigation Menu created.`));
26342        }
26343      })));
26344    } // Show a warning if the selected menu is no longer available.
26345    // TODO - the user should be able to select a new one?
26346  
26347  
26348    if (ref && isNavigationMenuMissing) {
26349      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, {
26350        onClick: resetToEmptyBlock,
26351        variant: "link"
26352      }, (0,external_wp_i18n_namespaceObject.__)('Create a new menu?'))));
26353    }
26354  
26355    if (isEntityAvailable && hasAlreadyRendered) {
26356      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.')));
26357    }
26358  
26359    const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : NavigationPlaceholder;
26360    const isResponsive = 'never' !== overlayMenu;
26361    const overlayMenuPreviewClasses = classnames_default()('wp-block-navigation__overlay-menu-preview', {
26362      open: overlayMenuPreview
26363    });
26364  
26365    if (isPlaceholder) {
26366      return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(PlaceholderComponent, {
26367        isSelected: isSelected,
26368        currentMenuId: ref,
26369        clientId: clientId,
26370        canUserCreateNavigationMenu: canUserCreateNavigationMenu,
26371        isResolvingCanUserCreateNavigationMenu: isResolvingCanUserCreateNavigationMenu,
26372        onFinish: handleSelectNavigation,
26373        onCreateEmpty: () => createNavigationMenu('', [])
26374      }));
26375    }
26376  
26377    return (0,external_wp_element_namespaceObject.createElement)(external_wp_coreData_namespaceObject.EntityProvider, {
26378      kind: "postType",
26379      type: "wp_navigation",
26380      id: ref
26381    }, (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, {
26382      className: "wp-block-navigation__toolbar-menu-selector"
26383    }, (0,external_wp_element_namespaceObject.createElement)(navigation_menu_selector, {
26384      ref: navigationSelectorRef,
26385      currentMenuId: ref,
26386      clientId: clientId,
26387      onSelect: handleSelectNavigation,
26388      onCreateNew: resetToEmptyBlock
26389      /* translators: %s: The name of a menu. */
26390      ,
26391      actionLabel: (0,external_wp_i18n_namespaceObject.__)("Switch to '%s'"),
26392      showManageActions: true
26393    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, hasSubmenuIndicatorSetting && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
26394      title: (0,external_wp_i18n_namespaceObject.__)('Display')
26395    }, isResponsive && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
26396      className: overlayMenuPreviewClasses,
26397      onClick: () => {
26398        setOverlayMenuPreview(!overlayMenuPreview);
26399      }
26400    }, 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, {
26401      label: (0,external_wp_i18n_namespaceObject.__)('Show icon button'),
26402      help: (0,external_wp_i18n_namespaceObject.__)('Configure the visual appearance of the button opening the overlay menu.'),
26403      onChange: value => setAttributes({
26404        hasIcon: value
26405      }),
26406      checked: hasIcon
26407    }), (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, {
26408      label: (0,external_wp_i18n_namespaceObject.__)('Configure overlay menu'),
26409      value: overlayMenu,
26410      help: (0,external_wp_i18n_namespaceObject.__)('Collapses the navigation options in a menu icon opening an overlay.'),
26411      onChange: value => setAttributes({
26412        overlayMenu: value
26413      }),
26414      isBlock: true,
26415      hideLabelFromVision: true
26416    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
26417      value: "never",
26418      label: (0,external_wp_i18n_namespaceObject.__)('Off')
26419    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
26420      value: "mobile",
26421      label: (0,external_wp_i18n_namespaceObject.__)('Mobile')
26422    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
26423      value: "always",
26424      label: (0,external_wp_i18n_namespaceObject.__)('Always')
26425    })), 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, {
26426      checked: openSubmenusOnClick,
26427      onChange: value => {
26428        setAttributes({
26429          openSubmenusOnClick: value,
26430          ...(value && {
26431            showSubmenuIcon: true
26432          }) // Make sure arrows are shown when we toggle this on.
26433  
26434        });
26435      },
26436      label: (0,external_wp_i18n_namespaceObject.__)('Open on click')
26437    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
26438      checked: showSubmenuIcon,
26439      onChange: value => {
26440        setAttributes({
26441          showSubmenuIcon: value
26442        });
26443      },
26444      disabled: attributes.openSubmenusOnClick,
26445      label: (0,external_wp_i18n_namespaceObject.__)('Show arrow')
26446    }))), hasColorSettings && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PanelColorSettings, {
26447      __experimentalHasMultipleOrigins: true,
26448      __experimentalIsRenderedInSidebar: true,
26449      title: (0,external_wp_i18n_namespaceObject.__)('Color'),
26450      initialOpen: false,
26451      colorSettings: [{
26452        value: textColor.color,
26453        onChange: setTextColor,
26454        label: (0,external_wp_i18n_namespaceObject.__)('Text')
26455      }, {
26456        value: backgroundColor.color,
26457        onChange: setBackgroundColor,
26458        label: (0,external_wp_i18n_namespaceObject.__)('Background')
26459      }, {
26460        value: overlayTextColor.color,
26461        onChange: setOverlayTextColor,
26462        label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay text')
26463      }, {
26464        value: overlayBackgroundColor.color,
26465        onChange: setOverlayBackgroundColor,
26466        label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay background')
26467      }]
26468    }, enableContrastChecking && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
26469      backgroundColor: detectedBackgroundColor,
26470      textColor: detectedColor
26471    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
26472      backgroundColor: detectedOverlayBackgroundColor,
26473      textColor: detectedOverlayColor
26474    })))), isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
26475      __experimentalGroup: "advanced"
26476    }, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuNameControl, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuDeleteControl, {
26477      onDelete: function () {
26478        let deletedMenuTitle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
26479        resetToEmptyBlock();
26480        showNavigationMenuDeleteNotice((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
26481        (0,external_wp_i18n_namespaceObject.__)('Navigation menu %s successfully deleted.'), deletedMenuTitle));
26482      }
26483    })), isLoading && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, {
26484      className: "wp-block-navigation__loading-indicator"
26485    })), !isLoading && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(ResponsiveWrapper, {
26486      id: clientId,
26487      onToggle: setResponsiveMenuVisibility,
26488      label: (0,external_wp_i18n_namespaceObject.__)('Menu'),
26489      hasIcon: hasIcon,
26490      isOpen: isResponsiveMenuOpen,
26491      isResponsive: isResponsive,
26492      isHiddenByDefault: 'always' === overlayMenu,
26493      classNames: overlayClassnames,
26494      styles: overlayStyles
26495    }, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(NavigationInnerBlocks, {
26496      clientId: clientId,
26497      hasCustomPlaceholder: !!CustomPlaceholder,
26498      orientation: orientation
26499    })))));
26500  }
26501  
26502  /* harmony default export */ var navigation_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)({
26503    textColor: 'color'
26504  }, {
26505    backgroundColor: 'color'
26506  }, {
26507    overlayBackgroundColor: 'color'
26508  }, {
26509    overlayTextColor: 'color'
26510  })(Navigation));
26511  
26512  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/save.js
26513  
26514  
26515  /**
26516   * WordPress dependencies
26517   */
26518  
26519  function navigation_save_save(_ref) {
26520    let {
26521      attributes
26522    } = _ref;
26523  
26524    if (attributes.ref) {
26525      // Avoid rendering inner blocks when a ref is defined.
26526      // When this id is defined the inner blocks are loaded from the
26527      // `wp_navigation` entity rather than the hard-coded block html.
26528      return;
26529    }
26530  
26531    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
26532  }
26533  
26534  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/deprecated.js
26535  
26536  
26537  /**
26538   * External dependencies
26539   */
26540  
26541  /**
26542   * WordPress dependencies
26543   */
26544  
26545  
26546  
26547  /**
26548   * Internal dependencies
26549   */
26550  
26551  
26552  const TYPOGRAPHY_PRESET_DEPRECATION_MAP = {
26553    fontStyle: 'var:preset|font-style|',
26554    fontWeight: 'var:preset|font-weight|',
26555    textDecoration: 'var:preset|text-decoration|',
26556    textTransform: 'var:preset|text-transform|'
26557  };
26558  
26559  const migrateIdToRef = _ref => {
26560    let {
26561      navigationMenuId,
26562      ...attributes
26563    } = _ref;
26564    return { ...attributes,
26565      ref: navigationMenuId
26566    };
26567  };
26568  
26569  const deprecated_migrateWithLayout = attributes => {
26570    if (!!attributes.layout) {
26571      return attributes;
26572    }
26573  
26574    const {
26575      itemsJustification,
26576      orientation,
26577      ...updatedAttributes
26578    } = attributes;
26579  
26580    if (itemsJustification || orientation) {
26581      Object.assign(updatedAttributes, {
26582        layout: {
26583          type: 'flex',
26584          ...(itemsJustification && {
26585            justifyContent: itemsJustification
26586          }),
26587          ...(orientation && {
26588            orientation
26589          })
26590        }
26591      });
26592    }
26593  
26594    return updatedAttributes;
26595  };
26596  
26597  const navigation_deprecated_v6 = {
26598    attributes: {
26599      navigationMenuId: {
26600        type: 'number'
26601      },
26602      textColor: {
26603        type: 'string'
26604      },
26605      customTextColor: {
26606        type: 'string'
26607      },
26608      rgbTextColor: {
26609        type: 'string'
26610      },
26611      backgroundColor: {
26612        type: 'string'
26613      },
26614      customBackgroundColor: {
26615        type: 'string'
26616      },
26617      rgbBackgroundColor: {
26618        type: 'string'
26619      },
26620      showSubmenuIcon: {
26621        type: 'boolean',
26622        default: true
26623      },
26624      openSubmenusOnClick: {
26625        type: 'boolean',
26626        default: false
26627      },
26628      overlayMenu: {
26629        type: 'string',
26630        default: 'mobile'
26631      },
26632      __unstableLocation: {
26633        type: 'string'
26634      },
26635      overlayBackgroundColor: {
26636        type: 'string'
26637      },
26638      customOverlayBackgroundColor: {
26639        type: 'string'
26640      },
26641      overlayTextColor: {
26642        type: 'string'
26643      },
26644      customOverlayTextColor: {
26645        type: 'string'
26646      }
26647    },
26648    supports: {
26649      align: ['wide', 'full'],
26650      anchor: true,
26651      html: false,
26652      inserter: true,
26653      typography: {
26654        fontSize: true,
26655        lineHeight: true,
26656        __experimentalFontStyle: true,
26657        __experimentalFontWeight: true,
26658        __experimentalTextTransform: true,
26659        __experimentalFontFamily: true,
26660        __experimentalTextDecoration: true,
26661        __experimentalDefaultControls: {
26662          fontSize: true
26663        }
26664      },
26665      spacing: {
26666        blockGap: true,
26667        units: ['px', 'em', 'rem', 'vh', 'vw'],
26668        __experimentalDefaultControls: {
26669          blockGap: true
26670        }
26671      },
26672      __experimentalLayout: {
26673        allowSwitching: false,
26674        allowInheriting: false,
26675        default: {
26676          type: 'flex'
26677        }
26678      }
26679    },
26680  
26681    save() {
26682      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
26683    },
26684  
26685    isEligible: _ref2 => {
26686      let {
26687        navigationMenuId
26688      } = _ref2;
26689      return !!navigationMenuId;
26690    },
26691    migrate: migrateIdToRef
26692  };
26693  const navigation_deprecated_v5 = {
26694    attributes: {
26695      navigationMenuId: {
26696        type: 'number'
26697      },
26698      orientation: {
26699        type: 'string',
26700        default: 'horizontal'
26701      },
26702      textColor: {
26703        type: 'string'
26704      },
26705      customTextColor: {
26706        type: 'string'
26707      },
26708      rgbTextColor: {
26709        type: 'string'
26710      },
26711      backgroundColor: {
26712        type: 'string'
26713      },
26714      customBackgroundColor: {
26715        type: 'string'
26716      },
26717      rgbBackgroundColor: {
26718        type: 'string'
26719      },
26720      itemsJustification: {
26721        type: 'string'
26722      },
26723      showSubmenuIcon: {
26724        type: 'boolean',
26725        default: true
26726      },
26727      openSubmenusOnClick: {
26728        type: 'boolean',
26729        default: false
26730      },
26731      overlayMenu: {
26732        type: 'string',
26733        default: 'never'
26734      },
26735      __unstableLocation: {
26736        type: 'string'
26737      },
26738      overlayBackgroundColor: {
26739        type: 'string'
26740      },
26741      customOverlayBackgroundColor: {
26742        type: 'string'
26743      },
26744      overlayTextColor: {
26745        type: 'string'
26746      },
26747      customOverlayTextColor: {
26748        type: 'string'
26749      }
26750    },
26751    supports: {
26752      align: ['wide', 'full'],
26753      anchor: true,
26754      html: false,
26755      inserter: true,
26756      typography: {
26757        fontSize: true,
26758        lineHeight: true,
26759        __experimentalFontStyle: true,
26760        __experimentalFontWeight: true,
26761        __experimentalTextTransform: true,
26762        __experimentalFontFamily: true,
26763        __experimentalTextDecoration: true,
26764        __experimentalDefaultControls: {
26765          fontSize: true
26766        }
26767      },
26768      spacing: {
26769        blockGap: true,
26770        units: ['px', 'em', 'rem', 'vh', 'vw'],
26771        __experimentalDefaultControls: {
26772          blockGap: true
26773        }
26774      }
26775    },
26776  
26777    save() {
26778      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
26779    },
26780  
26781    isEligible: _ref3 => {
26782      let {
26783        itemsJustification,
26784        orientation
26785      } = _ref3;
26786      return !!itemsJustification || !!orientation;
26787    },
26788    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout)
26789  };
26790  const navigation_deprecated_v4 = {
26791    attributes: {
26792      orientation: {
26793        type: 'string',
26794        default: 'horizontal'
26795      },
26796      textColor: {
26797        type: 'string'
26798      },
26799      customTextColor: {
26800        type: 'string'
26801      },
26802      rgbTextColor: {
26803        type: 'string'
26804      },
26805      backgroundColor: {
26806        type: 'string'
26807      },
26808      customBackgroundColor: {
26809        type: 'string'
26810      },
26811      rgbBackgroundColor: {
26812        type: 'string'
26813      },
26814      itemsJustification: {
26815        type: 'string'
26816      },
26817      showSubmenuIcon: {
26818        type: 'boolean',
26819        default: true
26820      },
26821      openSubmenusOnClick: {
26822        type: 'boolean',
26823        default: false
26824      },
26825      overlayMenu: {
26826        type: 'string',
26827        default: 'never'
26828      },
26829      __unstableLocation: {
26830        type: 'string'
26831      },
26832      overlayBackgroundColor: {
26833        type: 'string'
26834      },
26835      customOverlayBackgroundColor: {
26836        type: 'string'
26837      },
26838      overlayTextColor: {
26839        type: 'string'
26840      },
26841      customOverlayTextColor: {
26842        type: 'string'
26843      }
26844    },
26845    supports: {
26846      align: ['wide', 'full'],
26847      anchor: true,
26848      html: false,
26849      inserter: true,
26850      typography: {
26851        fontSize: true,
26852        lineHeight: true,
26853        __experimentalFontStyle: true,
26854        __experimentalFontWeight: true,
26855        __experimentalTextTransform: true,
26856        __experimentalFontFamily: true,
26857        __experimentalTextDecoration: true
26858      },
26859      spacing: {
26860        blockGap: true,
26861        units: ['px', 'em', 'rem', 'vh', 'vw'],
26862        __experimentalDefaultControls: {
26863          blockGap: true
26864        }
26865      }
26866    },
26867  
26868    save() {
26869      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
26870    },
26871  
26872    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family),
26873  
26874    isEligible(_ref4) {
26875      var _style$typography;
26876  
26877      let {
26878        style
26879      } = _ref4;
26880      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
26881    }
26882  
26883  };
26884  
26885  const migrateIsResponsive = function (attributes) {
26886    delete attributes.isResponsive;
26887    return { ...attributes,
26888      overlayMenu: 'mobile'
26889    };
26890  };
26891  
26892  const migrateTypographyPresets = function (attributes) {
26893    return { ...attributes,
26894      style: { ...attributes.style,
26895        typography: (0,external_lodash_namespaceObject.mapValues)(attributes.style.typography, (value, key) => {
26896          const prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[key];
26897  
26898          if (prefix && value.startsWith(prefix)) {
26899            const newValue = value.slice(prefix.length);
26900  
26901            if ('textDecoration' === key && 'strikethrough' === newValue) {
26902              return 'line-through';
26903            }
26904  
26905            return newValue;
26906          }
26907  
26908          return value;
26909        })
26910      }
26911    };
26912  };
26913  
26914  const navigation_deprecated_deprecated = [navigation_deprecated_v6, navigation_deprecated_v5, navigation_deprecated_v4, // Remove `isResponsive` attribute.
26915  {
26916    attributes: {
26917      orientation: {
26918        type: 'string',
26919        default: 'horizontal'
26920      },
26921      textColor: {
26922        type: 'string'
26923      },
26924      customTextColor: {
26925        type: 'string'
26926      },
26927      rgbTextColor: {
26928        type: 'string'
26929      },
26930      backgroundColor: {
26931        type: 'string'
26932      },
26933      customBackgroundColor: {
26934        type: 'string'
26935      },
26936      rgbBackgroundColor: {
26937        type: 'string'
26938      },
26939      itemsJustification: {
26940        type: 'string'
26941      },
26942      showSubmenuIcon: {
26943        type: 'boolean',
26944        default: true
26945      },
26946      openSubmenusOnClick: {
26947        type: 'boolean',
26948        default: false
26949      },
26950      isResponsive: {
26951        type: 'boolean',
26952        default: 'false'
26953      },
26954      __unstableLocation: {
26955        type: 'string'
26956      },
26957      overlayBackgroundColor: {
26958        type: 'string'
26959      },
26960      customOverlayBackgroundColor: {
26961        type: 'string'
26962      },
26963      overlayTextColor: {
26964        type: 'string'
26965      },
26966      customOverlayTextColor: {
26967        type: 'string'
26968      }
26969    },
26970    supports: {
26971      align: ['wide', 'full'],
26972      anchor: true,
26973      html: false,
26974      inserter: true,
26975      typography: {
26976        fontSize: true,
26977        lineHeight: true,
26978        __experimentalFontStyle: true,
26979        __experimentalFontWeight: true,
26980        __experimentalTextTransform: true,
26981        __experimentalFontFamily: true,
26982        __experimentalTextDecoration: true
26983      }
26984    },
26985  
26986    isEligible(attributes) {
26987      return attributes.isResponsive;
26988    },
26989  
26990    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateIsResponsive),
26991  
26992    save() {
26993      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
26994    }
26995  
26996  }, {
26997    attributes: {
26998      orientation: {
26999        type: 'string'
27000      },
27001      textColor: {
27002        type: 'string'
27003      },
27004      customTextColor: {
27005        type: 'string'
27006      },
27007      rgbTextColor: {
27008        type: 'string'
27009      },
27010      backgroundColor: {
27011        type: 'string'
27012      },
27013      customBackgroundColor: {
27014        type: 'string'
27015      },
27016      rgbBackgroundColor: {
27017        type: 'string'
27018      },
27019      itemsJustification: {
27020        type: 'string'
27021      },
27022      showSubmenuIcon: {
27023        type: 'boolean',
27024        default: true
27025      }
27026    },
27027    supports: {
27028      align: ['wide', 'full'],
27029      anchor: true,
27030      html: false,
27031      inserter: true,
27032      fontSize: true,
27033      __experimentalFontStyle: true,
27034      __experimentalFontWeight: true,
27035      __experimentalTextTransform: true,
27036      color: true,
27037      __experimentalFontFamily: true,
27038      __experimentalTextDecoration: true
27039    },
27040  
27041    save() {
27042      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
27043    },
27044  
27045    isEligible(attributes) {
27046      if (!attributes.style || !attributes.style.typography) {
27047        return false;
27048      }
27049  
27050      for (const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP) {
27051        const attributeValue = attributes.style.typography[styleAttribute];
27052  
27053        if (attributeValue && attributeValue.startsWith(TYPOGRAPHY_PRESET_DEPRECATION_MAP[styleAttribute])) {
27054          return true;
27055        }
27056      }
27057  
27058      return false;
27059    },
27060  
27061    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateTypographyPresets)
27062  }, {
27063    attributes: {
27064      className: {
27065        type: 'string'
27066      },
27067      textColor: {
27068        type: 'string'
27069      },
27070      rgbTextColor: {
27071        type: 'string'
27072      },
27073      backgroundColor: {
27074        type: 'string'
27075      },
27076      rgbBackgroundColor: {
27077        type: 'string'
27078      },
27079      fontSize: {
27080        type: 'string'
27081      },
27082      customFontSize: {
27083        type: 'number'
27084      },
27085      itemsJustification: {
27086        type: 'string'
27087      },
27088      showSubmenuIcon: {
27089        type: 'boolean'
27090      }
27091    },
27092  
27093    isEligible(attribute) {
27094      return attribute.rgbTextColor || attribute.rgbBackgroundColor;
27095    },
27096  
27097    supports: {
27098      align: ['wide', 'full'],
27099      anchor: true,
27100      html: false,
27101      inserter: true
27102    },
27103    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, attributes => {
27104      return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['rgbTextColor', 'rgbBackgroundColor']),
27105        customTextColor: attributes.textColor ? undefined : attributes.rgbTextColor,
27106        customBackgroundColor: attributes.backgroundColor ? undefined : attributes.rgbBackgroundColor
27107      };
27108    }),
27109  
27110    save() {
27111      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
27112    }
27113  
27114  }];
27115  /* harmony default export */ var navigation_deprecated = (navigation_deprecated_deprecated);
27116  
27117  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/index.js
27118  /**
27119   * WordPress dependencies
27120   */
27121  
27122  
27123  /**
27124   * Internal dependencies
27125   */
27126  
27127  const navigation_metadata = {
27128    $schema: "https://schemas.wp.org/trunk/block.json",
27129    apiVersion: 2,
27130    name: "core/navigation",
27131    title: "Navigation",
27132    category: "theme",
27133    description: "A collection of blocks that allow visitors to get around your site.",
27134    keywords: ["menu", "navigation", "links"],
27135    textdomain: "default",
27136    attributes: {
27137      ref: {
27138        type: "number"
27139      },
27140      textColor: {
27141        type: "string"
27142      },
27143      customTextColor: {
27144        type: "string"
27145      },
27146      rgbTextColor: {
27147        type: "string"
27148      },
27149      backgroundColor: {
27150        type: "string"
27151      },
27152      customBackgroundColor: {
27153        type: "string"
27154      },
27155      rgbBackgroundColor: {
27156        type: "string"
27157      },
27158      showSubmenuIcon: {
27159        type: "boolean",
27160        "default": true
27161      },
27162      openSubmenusOnClick: {
27163        type: "boolean",
27164        "default": false
27165      },
27166      overlayMenu: {
27167        type: "string",
27168        "default": "mobile"
27169      },
27170      hasIcon: {
27171        type: "boolean",
27172        "default": true
27173      },
27174      __unstableLocation: {
27175        type: "string"
27176      },
27177      overlayBackgroundColor: {
27178        type: "string"
27179      },
27180      customOverlayBackgroundColor: {
27181        type: "string"
27182      },
27183      overlayTextColor: {
27184        type: "string"
27185      },
27186      customOverlayTextColor: {
27187        type: "string"
27188      },
27189      maxNestingLevel: {
27190        type: "number",
27191        "default": 5
27192      }
27193    },
27194    providesContext: {
27195      textColor: "textColor",
27196      customTextColor: "customTextColor",
27197      backgroundColor: "backgroundColor",
27198      customBackgroundColor: "customBackgroundColor",
27199      overlayTextColor: "overlayTextColor",
27200      customOverlayTextColor: "customOverlayTextColor",
27201      overlayBackgroundColor: "overlayBackgroundColor",
27202      customOverlayBackgroundColor: "customOverlayBackgroundColor",
27203      fontSize: "fontSize",
27204      customFontSize: "customFontSize",
27205      showSubmenuIcon: "showSubmenuIcon",
27206      openSubmenusOnClick: "openSubmenusOnClick",
27207      style: "style",
27208      orientation: "orientation",
27209      maxNestingLevel: "maxNestingLevel"
27210    },
27211    supports: {
27212      align: ["wide", "full"],
27213      anchor: true,
27214      html: false,
27215      inserter: true,
27216      typography: {
27217        fontSize: true,
27218        lineHeight: true,
27219        __experimentalFontStyle: true,
27220        __experimentalFontWeight: true,
27221        __experimentalTextTransform: true,
27222        __experimentalFontFamily: true,
27223        __experimentalTextDecoration: true,
27224        __experimentalSkipSerialization: ["textDecoration"],
27225        __experimentalDefaultControls: {
27226          fontSize: true
27227        }
27228      },
27229      spacing: {
27230        blockGap: true,
27231        units: ["px", "em", "rem", "vh", "vw"],
27232        __experimentalDefaultControls: {
27233          blockGap: true
27234        }
27235      },
27236      __experimentalLayout: {
27237        allowSwitching: false,
27238        allowInheriting: false,
27239        allowVerticalAlignment: false,
27240        "default": {
27241          type: "flex"
27242        }
27243      }
27244    },
27245    viewScript: "file:./view.min.js",
27246    editorStyle: "wp-block-navigation-editor",
27247    style: "wp-block-navigation"
27248  };
27249  
27250  
27251  
27252  const {
27253    name: navigation_name
27254  } = navigation_metadata;
27255  
27256  const navigation_settings = {
27257    icon: library_navigation,
27258    example: {
27259      innerBlocks: [{
27260        name: 'core/navigation-link',
27261        attributes: {
27262          // translators: 'Home' as in a website's home page.
27263          label: (0,external_wp_i18n_namespaceObject.__)('Home'),
27264          url: 'https://make.wordpress.org/'
27265        }
27266      }, {
27267        name: 'core/navigation-link',
27268        attributes: {
27269          // translators: 'About' as in a website's about page.
27270          label: (0,external_wp_i18n_namespaceObject.__)('About'),
27271          url: 'https://make.wordpress.org/'
27272        }
27273      }, {
27274        name: 'core/navigation-link',
27275        attributes: {
27276          // translators: 'Contact' as in a website's contact page.
27277          label: (0,external_wp_i18n_namespaceObject.__)('Contact'),
27278          url: 'https://make.wordpress.org/'
27279        }
27280      }]
27281    },
27282    edit: navigation_edit,
27283    save: navigation_save_save,
27284    deprecated: navigation_deprecated
27285  };
27286  
27287  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-link.js
27288  
27289  
27290  /**
27291   * WordPress dependencies
27292   */
27293  
27294  const customLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
27295    xmlns: "https://www.w3.org/2000/svg",
27296    viewBox: "0 0 24 24"
27297  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
27298    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"
27299  }));
27300  /* harmony default export */ var custom_link = (customLink);
27301  
27302  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/add-submenu.js
27303  
27304  
27305  /**
27306   * WordPress dependencies
27307   */
27308  
27309  const addSubmenu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
27310    xmlns: "http://www.w3.org/2000/svg",
27311    viewBox: "0 0 24 24"
27312  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
27313    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"
27314  }));
27315  /* harmony default export */ var add_submenu = (addSubmenu);
27316  
27317  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/edit.js
27318  
27319  
27320  /**
27321   * External dependencies
27322   */
27323  
27324  
27325  /**
27326   * WordPress dependencies
27327   */
27328  
27329  
27330  
27331  
27332  
27333  
27334  
27335  
27336  
27337  
27338  
27339  
27340  /**
27341   * Internal dependencies
27342   */
27343  
27344  const {
27345    name: edit_name
27346  } = {
27347    $schema: "https://schemas.wp.org/trunk/block.json",
27348    apiVersion: 2,
27349    name: "core/navigation-link",
27350    title: "Custom Link",
27351    category: "design",
27352    parent: ["core/navigation"],
27353    description: "Add a page, link, or another item to your navigation.",
27354    textdomain: "default",
27355    attributes: {
27356      label: {
27357        type: "string"
27358      },
27359      type: {
27360        type: "string"
27361      },
27362      description: {
27363        type: "string"
27364      },
27365      rel: {
27366        type: "string"
27367      },
27368      id: {
27369        type: "number"
27370      },
27371      opensInNewTab: {
27372        type: "boolean",
27373        "default": false
27374      },
27375      url: {
27376        type: "string"
27377      },
27378      title: {
27379        type: "string"
27380      },
27381      kind: {
27382        type: "string"
27383      },
27384      isTopLevelLink: {
27385        type: "boolean"
27386      }
27387    },
27388    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
27389    supports: {
27390      reusable: false,
27391      html: false,
27392      __experimentalSlashInserter: true
27393    },
27394    editorStyle: "wp-block-navigation-link-editor",
27395    style: "wp-block-navigation-link"
27396  };
27397  /**
27398   * A React hook to determine if it's dragging within the target element.
27399   *
27400   * @typedef {import('@wordpress/element').RefObject} RefObject
27401   *
27402   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
27403   *
27404   * @return {boolean} Is dragging within the target element.
27405   */
27406  
27407  const useIsDraggingWithin = elementRef => {
27408    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
27409    (0,external_wp_element_namespaceObject.useEffect)(() => {
27410      const {
27411        ownerDocument
27412      } = elementRef.current;
27413  
27414      function handleDragStart(event) {
27415        // Check the first time when the dragging starts.
27416        handleDragEnter(event);
27417      } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
27418  
27419  
27420      function handleDragEnd() {
27421        setIsDraggingWithin(false);
27422      }
27423  
27424      function handleDragEnter(event) {
27425        // Check if the current target is inside the item element.
27426        if (elementRef.current.contains(event.target)) {
27427          setIsDraggingWithin(true);
27428        } else {
27429          setIsDraggingWithin(false);
27430        }
27431      } // Bind these events to the document to catch all drag events.
27432      // Ideally, we can also use `event.relatedTarget`, but sadly that
27433      // doesn't work in Safari.
27434  
27435  
27436      ownerDocument.addEventListener('dragstart', handleDragStart);
27437      ownerDocument.addEventListener('dragend', handleDragEnd);
27438      ownerDocument.addEventListener('dragenter', handleDragEnter);
27439      return () => {
27440        ownerDocument.removeEventListener('dragstart', handleDragStart);
27441        ownerDocument.removeEventListener('dragend', handleDragEnd);
27442        ownerDocument.removeEventListener('dragenter', handleDragEnter);
27443      };
27444    }, []);
27445    return isDraggingWithin;
27446  };
27447  /**
27448   * Given the Link block's type attribute, return the query params to give to
27449   * /wp/v2/search.
27450   *
27451   * @param {string} type Link block's type attribute.
27452   * @param {string} kind Link block's entity of kind (post-type|taxonomy)
27453   * @return {{ type?: string, subtype?: string }} Search query params.
27454   */
27455  
27456  
27457  function getSuggestionsQuery(type, kind) {
27458    switch (type) {
27459      case 'post':
27460      case 'page':
27461        return {
27462          type: 'post',
27463          subtype: type
27464        };
27465  
27466      case 'category':
27467        return {
27468          type: 'term',
27469          subtype: 'category'
27470        };
27471  
27472      case 'tag':
27473        return {
27474          type: 'term',
27475          subtype: 'post_tag'
27476        };
27477  
27478      case 'post_format':
27479        return {
27480          type: 'post-format'
27481        };
27482  
27483      default:
27484        if (kind === 'taxonomy') {
27485          return {
27486            type: 'term',
27487            subtype: type
27488          };
27489        }
27490  
27491        if (kind === 'post-type') {
27492          return {
27493            type: 'post',
27494            subtype: type
27495          };
27496        }
27497  
27498        return {};
27499    }
27500  }
27501  /**
27502   * Determine the colors for a menu.
27503   *
27504   * Order of priority is:
27505   * 1: Overlay custom colors (if submenu)
27506   * 2: Overlay theme colors (if submenu)
27507   * 3: Custom colors
27508   * 4: Theme colors
27509   * 5: Global styles
27510   *
27511   * @param {Object}  context
27512   * @param {boolean} isSubMenu
27513   */
27514  
27515  
27516  function getColors(context, isSubMenu) {
27517    var _style$color, _style$color2;
27518  
27519    const {
27520      textColor,
27521      customTextColor,
27522      backgroundColor,
27523      customBackgroundColor,
27524      overlayTextColor,
27525      customOverlayTextColor,
27526      overlayBackgroundColor,
27527      customOverlayBackgroundColor,
27528      style
27529    } = context;
27530    const colors = {};
27531  
27532    if (isSubMenu && !!customOverlayTextColor) {
27533      colors.customTextColor = customOverlayTextColor;
27534    } else if (isSubMenu && !!overlayTextColor) {
27535      colors.textColor = overlayTextColor;
27536    } else if (!!customTextColor) {
27537      colors.customTextColor = customTextColor;
27538    } else if (!!textColor) {
27539      colors.textColor = textColor;
27540    } else if (!!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text)) {
27541      colors.customTextColor = style.color.text;
27542    }
27543  
27544    if (isSubMenu && !!customOverlayBackgroundColor) {
27545      colors.customBackgroundColor = customOverlayBackgroundColor;
27546    } else if (isSubMenu && !!overlayBackgroundColor) {
27547      colors.backgroundColor = overlayBackgroundColor;
27548    } else if (!!customBackgroundColor) {
27549      colors.customBackgroundColor = customBackgroundColor;
27550    } else if (!!backgroundColor) {
27551      colors.backgroundColor = backgroundColor;
27552    } else if (!!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background)) {
27553      colors.customTextColor = style.color.background;
27554    }
27555  
27556    return colors;
27557  }
27558  /**
27559   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
27560   */
27561  
27562  /**
27563   * Navigation Link Block Attributes
27564   *
27565   * @typedef {Object} WPNavigationLinkBlockAttributes
27566   *
27567   * @property {string}               [label]         Link text.
27568   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
27569   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
27570   * @property {string}               [rel]           The relationship of the linked URL.
27571   * @property {number}               [id]            A post or term id.
27572   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
27573   * @property {string}               [url]           Link href.
27574   * @property {string}               [title]         Link title attribute.
27575   */
27576  
27577  /**
27578   * Link Control onChange handler that updates block attributes when a setting is changed.
27579   *
27580   * @param {Object}                          updatedValue    New block attributes to update.
27581   * @param {Function}                        setAttributes   Block attribute update function.
27582   * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
27583   *
27584   */
27585  
27586  
27587  const updateNavigationLinkBlockAttributes = function () {
27588    let updatedValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27589    let setAttributes = arguments.length > 1 ? arguments[1] : undefined;
27590    let blockAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
27591    const {
27592      label: originalLabel = '',
27593      kind: originalKind = '',
27594      type: originalType = ''
27595    } = blockAttributes;
27596    const {
27597      title = '',
27598      // the title of any provided Post.
27599      url = '',
27600      opensInNewTab,
27601      id,
27602      kind: newKind = originalKind,
27603      type: newType = originalType
27604    } = updatedValue;
27605    const normalizedTitle = title.replace(/http(s?):\/\//gi, '');
27606    const normalizedURL = url.replace(/http(s?):\/\//gi, '');
27607    const escapeTitle = title !== '' && normalizedTitle !== normalizedURL && originalLabel !== title;
27608    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"
27609  
27610    const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
27611    const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
27612    const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
27613    const kind = isCustomLink ? 'custom' : newKind;
27614    setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
27615      ...(url && {
27616        url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(url))
27617      }),
27618      ...(label && {
27619        label
27620      }),
27621      ...(undefined !== opensInNewTab && {
27622        opensInNewTab
27623      }),
27624      ...(id && Number.isInteger(id) && {
27625        id
27626      }),
27627      ...(kind && {
27628        kind
27629      }),
27630      ...(type && type !== 'URL' && {
27631        type
27632      })
27633    });
27634  };
27635  
27636  const useIsInvalidLink = (kind, type, id) => {
27637    const isPostType = kind === 'post-type' || type === 'post' || type === 'page';
27638    const hasId = Number.isInteger(id);
27639    const postStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
27640      var _getEntityRecord;
27641  
27642      if (!isPostType) {
27643        return null;
27644      }
27645  
27646      const {
27647        getEntityRecord
27648      } = select(external_wp_coreData_namespaceObject.store);
27649      return (_getEntityRecord = getEntityRecord('postType', type, id)) === null || _getEntityRecord === void 0 ? void 0 : _getEntityRecord.status;
27650    }, [isPostType, type, id]); // Check Navigation Link validity if:
27651    // 1. Link is 'post-type'.
27652    // 2. It has an id.
27653    // 3. It's neither null, nor undefined, as valid items might be either of those while loading.
27654    // If those conditions are met, check if
27655    // 1. The post status is published.
27656    // 2. The Navigation Link item has no label.
27657    // If either of those is true, invalidate.
27658  
27659    const isInvalid = isPostType && hasId && postStatus && 'trash' === postStatus;
27660    const isDraft = 'draft' === postStatus;
27661    return [isInvalid, isDraft];
27662  };
27663  
27664  const useMissingText = type => {
27665    let missingText = '';
27666  
27667    switch (type) {
27668      case 'post':
27669        /* translators: label for missing post in navigation link block */
27670        missingText = (0,external_wp_i18n_namespaceObject.__)('Select post');
27671        break;
27672  
27673      case 'page':
27674        /* translators: label for missing page in navigation link block */
27675        missingText = (0,external_wp_i18n_namespaceObject.__)('Select page');
27676        break;
27677  
27678      case 'category':
27679        /* translators: label for missing category in navigation link block */
27680        missingText = (0,external_wp_i18n_namespaceObject.__)('Select category');
27681        break;
27682  
27683      case 'tag':
27684        /* translators: label for missing tag in navigation link block */
27685        missingText = (0,external_wp_i18n_namespaceObject.__)('Select tag');
27686        break;
27687  
27688      default:
27689        /* translators: label for missing values in navigation link block */
27690        missingText = (0,external_wp_i18n_namespaceObject.__)('Add link');
27691    }
27692  
27693    return missingText;
27694  };
27695  /**
27696   * Removes HTML from a given string.
27697   * Note the does not provide XSS protection or otherwise attempt
27698   * to filter strings with malicious intent.
27699   *
27700   * See also: https://github.com/WordPress/gutenberg/pull/35539
27701   *
27702   * @param {string} html the string from which HTML should be removed.
27703   * @return {string} the "cleaned" string.
27704   */
27705  
27706  
27707  function navStripHTML(html) {
27708    const doc = document.implementation.createHTMLDocument('');
27709    doc.body.innerHTML = html;
27710    return doc.body.textContent || '';
27711  }
27712  /**
27713   * Add transforms to Link Control
27714   */
27715  
27716  
27717  function LinkControlTransforms(_ref) {
27718    let {
27719      clientId,
27720      replace
27721    } = _ref;
27722    const {
27723      getBlock,
27724      blockTransforms
27725    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27726      const {
27727        getBlock: _getBlock,
27728        getBlockRootClientId,
27729        getBlockTransformItems
27730      } = select(external_wp_blockEditor_namespaceObject.store);
27731      return {
27732        getBlock: _getBlock,
27733        blockTransforms: getBlockTransformItems([_getBlock(clientId)], getBlockRootClientId(clientId))
27734      };
27735    }, [clientId]);
27736    const featuredBlocks = ['core/site-logo', 'core/social-links', 'core/search'];
27737    const transforms = blockTransforms.filter(item => {
27738      return featuredBlocks.includes(item.name);
27739    });
27740  
27741    if (!(transforms !== null && transforms !== void 0 && transforms.length)) {
27742      return null;
27743    }
27744  
27745    return (0,external_wp_element_namespaceObject.createElement)("div", {
27746      className: "link-control-transform"
27747    }, (0,external_wp_element_namespaceObject.createElement)("h3", {
27748      className: "link-control-transform__subheading"
27749    }, (0,external_wp_i18n_namespaceObject.__)('Transform')), (0,external_wp_element_namespaceObject.createElement)("div", {
27750      className: "link-control-transform__items"
27751    }, transforms.map((item, index) => {
27752      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
27753        key: `transform-$index}`,
27754        onClick: () => replace(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), item.name)),
27755        className: "link-control-transform__item"
27756      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
27757        icon: item.icon
27758      }), item.title);
27759    })));
27760  }
27761  
27762  function NavigationLinkEdit(_ref2) {
27763    let {
27764      attributes,
27765      isSelected,
27766      setAttributes,
27767      insertBlocksAfter,
27768      mergeBlocks,
27769      onReplace,
27770      context,
27771      clientId
27772    } = _ref2;
27773    const {
27774      id,
27775      label,
27776      type,
27777      opensInNewTab,
27778      url,
27779      description,
27780      rel,
27781      title,
27782      kind
27783    } = attributes;
27784    const [isInvalid, isDraft] = useIsInvalidLink(kind, type, id);
27785    const {
27786      maxNestingLevel
27787    } = context;
27788    const link = {
27789      url,
27790      opensInNewTab,
27791      title: label && navStripHTML(label) // don't allow HTML to display inside the <LinkControl>
27792  
27793    };
27794    const {
27795      saveEntityRecord
27796    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
27797    const {
27798      replaceBlock,
27799      __unstableMarkNextChangeAsNotPersistent
27800    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
27801    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
27802    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
27803    const isDraggingWithin = useIsDraggingWithin(listItemRef);
27804  
27805    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add link…');
27806  
27807    const ref = (0,external_wp_element_namespaceObject.useRef)();
27808    const {
27809      innerBlocks,
27810      isAtMaxNesting,
27811      isTopLevelLink,
27812      isParentOfSelectedBlock,
27813      hasChildren,
27814      userCanCreatePages,
27815      userCanCreatePosts
27816    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27817      const {
27818        getBlocks,
27819        getBlockCount,
27820        getBlockName,
27821        getBlockRootClientId,
27822        hasSelectedInnerBlock,
27823        getBlockParentsByBlockName
27824      } = select(external_wp_blockEditor_namespaceObject.store);
27825      return {
27826        innerBlocks: getBlocks(clientId),
27827        isAtMaxNesting: getBlockParentsByBlockName(clientId, [edit_name, 'core/navigation-submenu']).length >= maxNestingLevel,
27828        isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation',
27829        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
27830        hasChildren: !!getBlockCount(clientId),
27831        userCanCreatePages: select(external_wp_coreData_namespaceObject.store).canUser('create', 'pages'),
27832        userCanCreatePosts: select(external_wp_coreData_namespaceObject.store).canUser('create', 'posts')
27833      };
27834    }, [clientId]);
27835    (0,external_wp_element_namespaceObject.useEffect)(() => {
27836      // This side-effect should not create an undo level as those should
27837      // only be created via user interactions. Mark this change as
27838      // not persistent to avoid undo level creation.
27839      // See https://github.com/WordPress/gutenberg/issues/34564.
27840      __unstableMarkNextChangeAsNotPersistent();
27841  
27842      setAttributes({
27843        isTopLevelLink
27844      });
27845    }, [isTopLevelLink]);
27846    /**
27847     * Transform to submenu block.
27848     */
27849  
27850    function transformToSubmenu() {
27851      const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
27852      replaceBlock(clientId, newSubmenu);
27853    }
27854  
27855    (0,external_wp_element_namespaceObject.useEffect)(() => {
27856      // Show the LinkControl on mount if the URL is empty
27857      // ( When adding a new menu item)
27858      // This can't be done in the useState call because it conflicts
27859      // with the autofocus behavior of the BlockListBlock component.
27860      if (!url) {
27861        setIsLinkOpen(true);
27862      } // If block has inner blocks, transform to Submenu.
27863  
27864  
27865      if (hasChildren) {
27866        transformToSubmenu();
27867      }
27868    }, []);
27869    /**
27870     * The hook shouldn't be necessary but due to a focus loss happening
27871     * when selecting a suggestion in the link popover, we force close on block unselection.
27872     */
27873  
27874    (0,external_wp_element_namespaceObject.useEffect)(() => {
27875      if (!isSelected) {
27876        setIsLinkOpen(false);
27877      }
27878    }, [isSelected]); // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
27879  
27880    (0,external_wp_element_namespaceObject.useEffect)(() => {
27881      if (isLinkOpen && url) {
27882        // Does this look like a URL and have something TLD-ish?
27883        if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
27884          // Focus and select the label text.
27885          selectLabelText();
27886        } else {
27887          // Focus it (but do not select).
27888          (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(ref.current, true);
27889        }
27890      }
27891    }, [url]);
27892    /**
27893     * Focus the Link label text and select it.
27894     */
27895  
27896    function selectLabelText() {
27897      ref.current.focus();
27898      const {
27899        ownerDocument
27900      } = ref.current;
27901      const {
27902        defaultView
27903      } = ownerDocument;
27904      const selection = defaultView.getSelection();
27905      const range = ownerDocument.createRange(); // Get the range of the current ref contents so we can add this range to the selection.
27906  
27907      range.selectNodeContents(ref.current);
27908      selection.removeAllRanges();
27909      selection.addRange(range);
27910    }
27911    /**
27912     * Removes the current link if set.
27913     */
27914  
27915  
27916    function removeLink() {
27917      // Reset all attributes that comprise the link.
27918      setAttributes({
27919        url: '',
27920        label: '',
27921        id: '',
27922        kind: '',
27923        type: ''
27924      }); // Close the link editing UI.
27925  
27926      setIsLinkOpen(false);
27927    }
27928  
27929    let userCanCreate = false;
27930  
27931    if (!type || type === 'page') {
27932      userCanCreate = userCanCreatePages;
27933    } else if (type === 'post') {
27934      userCanCreate = userCanCreatePosts;
27935    }
27936  
27937    async function handleCreate(pageTitle) {
27938      const postType = type || 'page';
27939      const page = await saveEntityRecord('postType', postType, {
27940        title: pageTitle,
27941        status: 'draft'
27942      });
27943      return {
27944        id: page.id,
27945        type: postType,
27946        title: page.title.rendered,
27947        url: page.link,
27948        kind: 'post-type'
27949      };
27950    }
27951  
27952    const {
27953      textColor,
27954      customTextColor,
27955      backgroundColor,
27956      customBackgroundColor
27957    } = getColors(context, !isTopLevelLink);
27958  
27959    function onKeyDown(event) {
27960      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k') || !url && event.keyCode === external_wp_keycodes_namespaceObject.ENTER) {
27961        setIsLinkOpen(true);
27962      }
27963    }
27964  
27965    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
27966      ref: listItemRef,
27967      className: classnames_default()('wp-block-navigation-item', {
27968        'is-editing': isSelected || isParentOfSelectedBlock,
27969        'is-dragging-within': isDraggingWithin,
27970        'has-link': !!url,
27971        'has-child': hasChildren,
27972        'has-text-color': !!textColor || !!customTextColor,
27973        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
27974        'has-background': !!backgroundColor || customBackgroundColor,
27975        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor
27976      }),
27977      style: {
27978        color: !textColor && customTextColor,
27979        backgroundColor: !backgroundColor && customBackgroundColor
27980      },
27981      onKeyDown
27982    });
27983  
27984    if (!url || isInvalid || isDraft) {
27985      blockProps.onClick = () => setIsLinkOpen(true);
27986    }
27987  
27988    const classes = classnames_default()('wp-block-navigation-item__content', {
27989      'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft
27990    });
27991    const missingText = useMissingText(type, isInvalid, isDraft);
27992    /* translators: Whether the navigation link is Invalid or a Draft. */
27993  
27994    const placeholderText = `($isInvalid ? (0,external_wp_i18n_namespaceObject.__)('Invalid') : (0,external_wp_i18n_namespaceObject.__)('Draft')})`;
27995    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');
27996    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, {
27997      name: "link",
27998      icon: library_link,
27999      title: (0,external_wp_i18n_namespaceObject.__)('Link'),
28000      shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
28001      onClick: () => setIsLinkOpen(true)
28002    }), !isAtMaxNesting && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
28003      name: "submenu",
28004      icon: add_submenu,
28005      title: (0,external_wp_i18n_namespaceObject.__)('Add submenu'),
28006      onClick: transformToSubmenu
28007    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
28008      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
28009    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
28010      value: description || '',
28011      onChange: descriptionValue => {
28012        setAttributes({
28013          description: descriptionValue
28014        });
28015      },
28016      label: (0,external_wp_i18n_namespaceObject.__)('Description'),
28017      help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
28018    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
28019      value: title || '',
28020      onChange: titleValue => {
28021        setAttributes({
28022          title: titleValue
28023        });
28024      },
28025      label: (0,external_wp_i18n_namespaceObject.__)('Link title'),
28026      autoComplete: "off"
28027    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
28028      value: rel || '',
28029      onChange: relValue => {
28030        setAttributes({
28031          rel: relValue
28032        });
28033      },
28034      label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
28035      autoComplete: "off"
28036    }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
28037      className: classes
28038    }, !url ? (0,external_wp_element_namespaceObject.createElement)("div", {
28039      className: "wp-block-navigation-link__placeholder-text"
28040    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, {
28041      position: "top center",
28042      text: tooltipText
28043    }, (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", {
28044      className: "wp-block-navigation-link__missing_text-tooltip"
28045    }, 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, {
28046      ref: ref,
28047      identifier: "label",
28048      className: "wp-block-navigation-item__label",
28049      value: label,
28050      onChange: labelValue => setAttributes({
28051        label: labelValue
28052      }),
28053      onMerge: mergeBlocks,
28054      onReplace: onReplace,
28055      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')),
28056      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
28057      placeholder: itemLabelPlaceholder,
28058      withoutInteractiveFormatting: true,
28059      allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'],
28060      onClick: () => {
28061        if (!url) {
28062          setIsLinkOpen(true);
28063        }
28064      }
28065    }), description && (0,external_wp_element_namespaceObject.createElement)("span", {
28066      className: "wp-block-navigation-item__description"
28067    }, description)), (isInvalid || isDraft) && (0,external_wp_element_namespaceObject.createElement)("div", {
28068      className: "wp-block-navigation-link__placeholder-text wp-block-navigation-link__label"
28069    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.KeyboardShortcuts, {
28070      shortcuts: {
28071        enter: () => isSelected && setIsLinkOpen(true)
28072      }
28073    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, {
28074      position: "top center",
28075      text: tooltipText
28076    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", null,
28077    /* Trim to avoid trailing white space when the placeholder text is not present */
28078    `$label} $placeholderText}`.trim()), (0,external_wp_element_namespaceObject.createElement)("span", {
28079      className: "wp-block-navigation-link__missing_text-tooltip"
28080    }, tooltipText))))), isLinkOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
28081      position: "bottom center",
28082      onClose: () => setIsLinkOpen(false),
28083      anchorRef: listItemRef.current
28084    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
28085      hasTextControl: true,
28086      hasRichPreviews: true,
28087      className: "wp-block-navigation-link__inline-link-input",
28088      value: link,
28089      showInitialSuggestions: true,
28090      withCreateSuggestion: userCanCreate,
28091      createSuggestion: handleCreate,
28092      createSuggestionButtonText: searchTerm => {
28093        let format;
28094  
28095        if (type === 'post') {
28096          /* translators: %s: search term. */
28097          format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
28098        } else {
28099          /* translators: %s: search term. */
28100          format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
28101        }
28102  
28103        return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
28104          mark: (0,external_wp_element_namespaceObject.createElement)("mark", null)
28105        });
28106      },
28107      noDirectEntry: !!type,
28108      noURLSuggestion: !!type,
28109      suggestionsQuery: getSuggestionsQuery(type, kind),
28110      onChange: updatedValue => updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes),
28111      onRemove: removeLink,
28112      renderControlBottom: !url ? () => (0,external_wp_element_namespaceObject.createElement)(LinkControlTransforms, {
28113        clientId: clientId,
28114        replace: replaceBlock
28115      }) : null
28116    })))));
28117  }
28118  
28119  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/save.js
28120  
28121  
28122  /**
28123   * WordPress dependencies
28124   */
28125  
28126  function navigation_link_save_save() {
28127    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
28128  }
28129  
28130  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-title.js
28131  
28132  
28133  /**
28134   * WordPress dependencies
28135   */
28136  
28137  const postTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
28138    viewBox: "0 0 24 24",
28139    xmlns: "http://www.w3.org/2000/svg"
28140  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
28141    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"
28142  }));
28143  /* harmony default export */ var post_title = (postTitle);
28144  
28145  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js
28146  
28147  
28148  /**
28149   * WordPress dependencies
28150   */
28151  
28152  const page = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
28153    xmlns: "http://www.w3.org/2000/svg",
28154    viewBox: "0 0 24 24"
28155  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
28156    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"
28157  }));
28158  /* harmony default export */ var library_page = (page);
28159  
28160  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js
28161  
28162  
28163  /**
28164   * WordPress dependencies
28165   */
28166  
28167  const tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
28168    xmlns: "http://www.w3.org/2000/svg",
28169    viewBox: "0 0 24 24"
28170  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
28171    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"
28172  }));
28173  /* harmony default export */ var library_tag = (tag);
28174  
28175  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-post-type.js
28176  
28177  
28178  /**
28179   * WordPress dependencies
28180   */
28181  
28182  const customPostType = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
28183    xmlns: "http://www.w3.org/2000/svg",
28184    viewBox: "0 0 24 24"
28185  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
28186    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"
28187  }));
28188  /* harmony default export */ var custom_post_type = (customPostType);
28189  
28190  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/fallback-variations.js
28191  /**
28192   * WordPress dependencies
28193   */
28194  
28195   // FALLBACK: this is only used when the server does not understand the variations property in the
28196  // register_block_type call. see navigation-link/index.php.
28197  // Delete this file when supported WP ranges understand the `variations` property when passed to
28198  // register_block_type in index.php.
28199  
28200  const fallbackVariations = [{
28201    name: 'link',
28202    isDefault: true,
28203    title: (0,external_wp_i18n_namespaceObject.__)('Custom Link'),
28204    description: (0,external_wp_i18n_namespaceObject.__)('A link to a custom URL.'),
28205    attributes: {}
28206  }, {
28207    name: 'post',
28208    icon: post_title,
28209    title: (0,external_wp_i18n_namespaceObject.__)('Post Link'),
28210    description: (0,external_wp_i18n_namespaceObject.__)('A link to a post.'),
28211    attributes: {
28212      type: 'post',
28213      kind: 'post-type'
28214    }
28215  }, {
28216    name: 'page',
28217    icon: library_page,
28218    title: (0,external_wp_i18n_namespaceObject.__)('Page Link'),
28219    description: (0,external_wp_i18n_namespaceObject.__)('A link to a page.'),
28220    attributes: {
28221      type: 'page',
28222      kind: 'post-type'
28223    }
28224  }, {
28225    name: 'category',
28226    icon: library_category,
28227    title: (0,external_wp_i18n_namespaceObject.__)('Category Link'),
28228    description: (0,external_wp_i18n_namespaceObject.__)('A link to a category.'),
28229    attributes: {
28230      type: 'category',
28231      kind: 'taxonomy'
28232    }
28233  }, {
28234    name: 'tag',
28235    icon: library_tag,
28236    title: (0,external_wp_i18n_namespaceObject.__)('Tag Link'),
28237    description: (0,external_wp_i18n_namespaceObject.__)('A link to a tag.'),
28238    attributes: {
28239      type: 'tag',
28240      kind: 'taxonomy'
28241    }
28242  }];
28243  /**
28244   * Add `isActive` function to all `navigation link` variations, if not defined.
28245   * `isActive` function is used to find a variation match from a created
28246   *  Block by providing its attributes.
28247   */
28248  
28249  fallbackVariations.forEach(variation => {
28250    if (variation.isActive) return;
28251  
28252    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
28253  });
28254  /* harmony default export */ var fallback_variations = (fallbackVariations);
28255  
28256  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/hooks.js
28257  /**
28258   * WordPress dependencies
28259   */
28260  
28261  /**
28262   * Internal dependencies
28263   */
28264  
28265  
28266  
28267  function getIcon(variationName) {
28268    switch (variationName) {
28269      case 'post':
28270        return post_title;
28271  
28272      case 'page':
28273        return library_page;
28274  
28275      case 'tag':
28276        return library_tag;
28277  
28278      case 'category':
28279        return library_category;
28280  
28281      default:
28282        return custom_post_type;
28283    }
28284  }
28285  
28286  function enhanceNavigationLinkVariations(settings, name) {
28287    if (name !== 'core/navigation-link') {
28288      return settings;
28289    } // Fallback handling may be deleted after supported WP ranges understand the `variations`
28290    // property when passed to register_block_type in index.php.
28291  
28292  
28293    if (!settings.variations) {
28294      return { ...settings,
28295        variations: fallback_variations
28296      };
28297    } // Otherwise decorate server passed variations with an icon and isActive function.
28298  
28299  
28300    if (settings.variations) {
28301      const isActive = (blockAttributes, variationAttributes) => {
28302        return blockAttributes.type === variationAttributes.type;
28303      };
28304  
28305      const variations = settings.variations.map(variation => {
28306        return { ...variation,
28307          ...(!variation.icon && {
28308            icon: getIcon(variation.name)
28309          }),
28310          ...(!variation.isActive && {
28311            isActive
28312          })
28313        };
28314      });
28315      return { ...settings,
28316        variations
28317      };
28318    }
28319  
28320    return settings;
28321  }
28322  
28323  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/transforms.js
28324  /**
28325   * WordPress dependencies
28326   */
28327  
28328  const navigation_link_transforms_transforms = {
28329    from: [{
28330      type: 'block',
28331      blocks: ['core/site-logo'],
28332      transform: () => {
28333        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
28334      }
28335    }, {
28336      type: 'block',
28337      blocks: ['core/spacer'],
28338      transform: () => {
28339        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
28340      }
28341    }, {
28342      type: 'block',
28343      blocks: ['core/home-link'],
28344      transform: () => {
28345        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
28346      }
28347    }, {
28348      type: 'block',
28349      blocks: ['core/social-links'],
28350      transform: () => {
28351        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
28352      }
28353    }, {
28354      type: 'block',
28355      blocks: ['core/search'],
28356      transform: () => {
28357        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
28358      }
28359    }],
28360    to: [{
28361      type: 'block',
28362      blocks: ['core/navigation-submenu'],
28363      transform: (attributes, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks)
28364    }, {
28365      type: 'block',
28366      blocks: ['core/spacer'],
28367      transform: () => {
28368        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
28369      }
28370    }, {
28371      type: 'block',
28372      blocks: ['core/site-logo'],
28373      transform: () => {
28374        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
28375      }
28376    }, {
28377      type: 'block',
28378      blocks: ['core/home-link'],
28379      transform: () => {
28380        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
28381      }
28382    }, {
28383      type: 'block',
28384      blocks: ['core/social-links'],
28385      transform: () => {
28386        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
28387      }
28388    }, {
28389      type: 'block',
28390      blocks: ['core/search'],
28391      transform: () => {
28392        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search', {
28393          showLabel: false,
28394          buttonUseIcon: true,
28395          buttonPosition: 'button-inside'
28396        });
28397      }
28398    }]
28399  };
28400  /* harmony default export */ var navigation_link_transforms = (navigation_link_transforms_transforms);
28401  
28402  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
28403  
28404  
28405  /**
28406   * WordPress dependencies
28407   */
28408  
28409  
28410  
28411  
28412  /**
28413   * Internal dependencies
28414   */
28415  
28416  const navigation_link_metadata = {
28417    $schema: "https://schemas.wp.org/trunk/block.json",
28418    apiVersion: 2,
28419    name: "core/navigation-link",
28420    title: "Custom Link",
28421    category: "design",
28422    parent: ["core/navigation"],
28423    description: "Add a page, link, or another item to your navigation.",
28424    textdomain: "default",
28425    attributes: {
28426      label: {
28427        type: "string"
28428      },
28429      type: {
28430        type: "string"
28431      },
28432      description: {
28433        type: "string"
28434      },
28435      rel: {
28436        type: "string"
28437      },
28438      id: {
28439        type: "number"
28440      },
28441      opensInNewTab: {
28442        type: "boolean",
28443        "default": false
28444      },
28445      url: {
28446        type: "string"
28447      },
28448      title: {
28449        type: "string"
28450      },
28451      kind: {
28452        type: "string"
28453      },
28454      isTopLevelLink: {
28455        type: "boolean"
28456      }
28457    },
28458    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
28459    supports: {
28460      reusable: false,
28461      html: false,
28462      __experimentalSlashInserter: true
28463    },
28464    editorStyle: "wp-block-navigation-link-editor",
28465    style: "wp-block-navigation-link"
28466  };
28467  
28468  
28469  
28470  
28471  const {
28472    name: navigation_link_name
28473  } = navigation_link_metadata;
28474  
28475  const navigation_link_settings = {
28476    icon: custom_link,
28477    __experimentalLabel: _ref => {
28478      let {
28479        label
28480      } = _ref;
28481      return label;
28482    },
28483  
28484    merge(leftAttributes, _ref2) {
28485      let {
28486        label: rightLabel = ''
28487      } = _ref2;
28488      return { ...leftAttributes,
28489        label: leftAttributes.label + rightLabel
28490      };
28491    },
28492  
28493    edit: NavigationLinkEdit,
28494    save: navigation_link_save_save,
28495    example: {
28496      attributes: {
28497        label: (0,external_wp_i18n_namespaceObject._x)('Example Link', 'navigation link preview example'),
28498        url: 'https://example.com'
28499      }
28500    },
28501    deprecated: [{
28502      isEligible(attributes) {
28503        return attributes.nofollow;
28504      },
28505  
28506      attributes: {
28507        label: {
28508          type: 'string'
28509        },
28510        type: {
28511          type: 'string'
28512        },
28513        nofollow: {
28514          type: 'boolean'
28515        },
28516        description: {
28517          type: 'string'
28518        },
28519        id: {
28520          type: 'number'
28521        },
28522        opensInNewTab: {
28523          type: 'boolean',
28524          default: false
28525        },
28526        url: {
28527          type: 'string'
28528        }
28529      },
28530  
28531      migrate(_ref3) {
28532        let {
28533          nofollow,
28534          ...rest
28535        } = _ref3;
28536        return {
28537          rel: nofollow ? 'nofollow' : '',
28538          ...rest
28539        };
28540      },
28541  
28542      save() {
28543        return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
28544      }
28545  
28546    }],
28547    transforms: navigation_link_transforms
28548  }; // importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects
28549  
28550  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);
28551  
28552  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/remove-submenu.js
28553  
28554  
28555  /**
28556   * WordPress dependencies
28557   */
28558  
28559  const removeSubmenu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
28560    xmlns: "http://www.w3.org/2000/svg",
28561    viewBox: "0 0 24 24"
28562  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
28563    fillRule: "evenodd",
28564    clipRule: "evenodd",
28565    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"
28566  }));
28567  /* harmony default export */ var remove_submenu = (removeSubmenu);
28568  
28569  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/icons.js
28570  
28571  
28572  /**
28573   * WordPress dependencies
28574   */
28575  
28576  const ItemSubmenuIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
28577    xmlns: "http://www.w3.org/2000/svg",
28578    width: "12",
28579    height: "12",
28580    viewBox: "0 0 12 12",
28581    fill: "none"
28582  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
28583    d: "M1.50002 4L6.00002 8L10.5 4",
28584    strokeWidth: "1.5"
28585  }));
28586  
28587  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/edit.js
28588  
28589  
28590  /**
28591   * External dependencies
28592   */
28593  
28594  
28595  /**
28596   * WordPress dependencies
28597   */
28598  
28599  
28600  
28601  
28602  
28603  
28604  
28605  
28606  
28607  
28608  
28609  
28610  
28611  /**
28612   * Internal dependencies
28613   */
28614  
28615  
28616  const {
28617    name: navigation_submenu_edit_name
28618  } = {
28619    $schema: "https://schemas.wp.org/trunk/block.json",
28620    apiVersion: 2,
28621    name: "core/navigation-submenu",
28622    title: "Submenu",
28623    category: "design",
28624    parent: ["core/navigation"],
28625    description: "Add a submenu to your navigation.",
28626    textdomain: "default",
28627    attributes: {
28628      label: {
28629        type: "string"
28630      },
28631      type: {
28632        type: "string"
28633      },
28634      description: {
28635        type: "string"
28636      },
28637      rel: {
28638        type: "string"
28639      },
28640      id: {
28641        type: "number"
28642      },
28643      opensInNewTab: {
28644        type: "boolean",
28645        "default": false
28646      },
28647      url: {
28648        type: "string"
28649      },
28650      title: {
28651        type: "string"
28652      },
28653      kind: {
28654        type: "string"
28655      },
28656      isTopLevelItem: {
28657        type: "boolean"
28658      }
28659    },
28660    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
28661    supports: {
28662      reusable: false,
28663      html: false
28664    },
28665    editorStyle: "wp-block-navigation-submenu-editor",
28666    style: "wp-block-navigation-submenu"
28667  };
28668  const navigation_submenu_edit_ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu'];
28669  const edit_DEFAULT_BLOCK = {
28670    name: 'core/navigation-link'
28671  };
28672  /**
28673   * A React hook to determine if it's dragging within the target element.
28674   *
28675   * @typedef {import('@wordpress/element').RefObject} RefObject
28676   *
28677   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
28678   *
28679   * @return {boolean} Is dragging within the target element.
28680   */
28681  
28682  const edit_useIsDraggingWithin = elementRef => {
28683    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
28684    (0,external_wp_element_namespaceObject.useEffect)(() => {
28685      const {
28686        ownerDocument
28687      } = elementRef.current;
28688  
28689      function handleDragStart(event) {
28690        // Check the first time when the dragging starts.
28691        handleDragEnter(event);
28692      } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
28693  
28694  
28695      function handleDragEnd() {
28696        setIsDraggingWithin(false);
28697      }
28698  
28699      function handleDragEnter(event) {
28700        // Check if the current target is inside the item element.
28701        if (elementRef.current.contains(event.target)) {
28702          setIsDraggingWithin(true);
28703        } else {
28704          setIsDraggingWithin(false);
28705        }
28706      } // Bind these events to the document to catch all drag events.
28707      // Ideally, we can also use `event.relatedTarget`, but sadly that
28708      // doesn't work in Safari.
28709  
28710  
28711      ownerDocument.addEventListener('dragstart', handleDragStart);
28712      ownerDocument.addEventListener('dragend', handleDragEnd);
28713      ownerDocument.addEventListener('dragenter', handleDragEnter);
28714      return () => {
28715        ownerDocument.removeEventListener('dragstart', handleDragStart);
28716        ownerDocument.removeEventListener('dragend', handleDragEnd);
28717        ownerDocument.removeEventListener('dragenter', handleDragEnter);
28718      };
28719    }, []);
28720    return isDraggingWithin;
28721  };
28722  /**
28723   * Given the Link block's type attribute, return the query params to give to
28724   * /wp/v2/search.
28725   *
28726   * @param {string} type Link block's type attribute.
28727   * @param {string} kind Link block's entity of kind (post-type|taxonomy)
28728   * @return {{ type?: string, subtype?: string }} Search query params.
28729   */
28730  
28731  
28732  function edit_getSuggestionsQuery(type, kind) {
28733    switch (type) {
28734      case 'post':
28735      case 'page':
28736        return {
28737          type: 'post',
28738          subtype: type
28739        };
28740  
28741      case 'category':
28742        return {
28743          type: 'term',
28744          subtype: 'category'
28745        };
28746  
28747      case 'tag':
28748        return {
28749          type: 'term',
28750          subtype: 'post_tag'
28751        };
28752  
28753      case 'post_format':
28754        return {
28755          type: 'post-format'
28756        };
28757  
28758      default:
28759        if (kind === 'taxonomy') {
28760          return {
28761            type: 'term',
28762            subtype: type
28763          };
28764        }
28765  
28766        if (kind === 'post-type') {
28767          return {
28768            type: 'post',
28769            subtype: type
28770          };
28771        }
28772  
28773        return {};
28774    }
28775  }
28776  /**
28777   * Determine the colors for a menu.
28778   *
28779   * Order of priority is:
28780   * 1: Overlay custom colors (if submenu)
28781   * 2: Overlay theme colors (if submenu)
28782   * 3: Custom colors
28783   * 4: Theme colors
28784   * 5: Global styles
28785   *
28786   * @param {Object}  context
28787   * @param {boolean} isSubMenu
28788   */
28789  
28790  
28791  function edit_getColors(context, isSubMenu) {
28792    var _style$color, _style$color2;
28793  
28794    const {
28795      textColor,
28796      customTextColor,
28797      backgroundColor,
28798      customBackgroundColor,
28799      overlayTextColor,
28800      customOverlayTextColor,
28801      overlayBackgroundColor,
28802      customOverlayBackgroundColor,
28803      style
28804    } = context;
28805    const colors = {};
28806  
28807    if (isSubMenu && !!customOverlayTextColor) {
28808      colors.customTextColor = customOverlayTextColor;
28809    } else if (isSubMenu && !!overlayTextColor) {
28810      colors.textColor = overlayTextColor;
28811    } else if (!!customTextColor) {
28812      colors.customTextColor = customTextColor;
28813    } else if (!!textColor) {
28814      colors.textColor = textColor;
28815    } else if (!!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text)) {
28816      colors.customTextColor = style.color.text;
28817    }
28818  
28819    if (isSubMenu && !!customOverlayBackgroundColor) {
28820      colors.customBackgroundColor = customOverlayBackgroundColor;
28821    } else if (isSubMenu && !!overlayBackgroundColor) {
28822      colors.backgroundColor = overlayBackgroundColor;
28823    } else if (!!customBackgroundColor) {
28824      colors.customBackgroundColor = customBackgroundColor;
28825    } else if (!!backgroundColor) {
28826      colors.backgroundColor = backgroundColor;
28827    } else if (!!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background)) {
28828      colors.customTextColor = style.color.background;
28829    }
28830  
28831    return colors;
28832  }
28833  /**
28834   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
28835   */
28836  
28837  /**
28838   * Navigation Link Block Attributes
28839   *
28840   * @typedef {Object} WPNavigationLinkBlockAttributes
28841   *
28842   * @property {string}               [label]         Link text.
28843   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
28844   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
28845   * @property {string}               [rel]           The relationship of the linked URL.
28846   * @property {number}               [id]            A post or term id.
28847   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
28848   * @property {string}               [url]           Link href.
28849   * @property {string}               [title]         Link title attribute.
28850   */
28851  
28852  /**
28853   * Link Control onChange handler that updates block attributes when a setting is changed.
28854   *
28855   * @param {Object}                          updatedValue    New block attributes to update.
28856   * @param {Function}                        setAttributes   Block attribute update function.
28857   * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
28858   *
28859   */
28860  
28861  
28862  const edit_updateNavigationLinkBlockAttributes = function () {
28863    let updatedValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28864    let setAttributes = arguments.length > 1 ? arguments[1] : undefined;
28865    let blockAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
28866    const {
28867      label: originalLabel = '',
28868      kind: originalKind = '',
28869      type: originalType = ''
28870    } = blockAttributes;
28871    const {
28872      title = '',
28873      url = '',
28874      opensInNewTab,
28875      id,
28876      kind: newKind = originalKind,
28877      type: newType = originalType
28878    } = updatedValue;
28879    const normalizedTitle = title.replace(/http(s?):\/\//gi, '');
28880    const normalizedURL = url.replace(/http(s?):\/\//gi, '');
28881    const escapeTitle = title !== '' && normalizedTitle !== normalizedURL && originalLabel !== title;
28882    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"
28883  
28884    const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
28885    const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
28886    const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
28887    const kind = isCustomLink ? 'custom' : newKind;
28888    setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
28889      ...(url && {
28890        url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(url))
28891      }),
28892      ...(label && {
28893        label
28894      }),
28895      ...(undefined !== opensInNewTab && {
28896        opensInNewTab
28897      }),
28898      ...(id && Number.isInteger(id) && {
28899        id
28900      }),
28901      ...(kind && {
28902        kind
28903      }),
28904      ...(type && type !== 'URL' && {
28905        type
28906      })
28907    });
28908  };
28909  function NavigationSubmenuEdit(_ref) {
28910    let {
28911      attributes,
28912      isSelected,
28913      setAttributes,
28914      mergeBlocks,
28915      onReplace,
28916      context,
28917      clientId
28918    } = _ref;
28919    const {
28920      label,
28921      type,
28922      opensInNewTab,
28923      url,
28924      description,
28925      rel,
28926      title,
28927      kind
28928    } = attributes;
28929    const link = {
28930      url,
28931      opensInNewTab
28932    };
28933    const {
28934      showSubmenuIcon,
28935      maxNestingLevel,
28936      openSubmenusOnClick
28937    } = context;
28938    const {
28939      saveEntityRecord
28940    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
28941    const {
28942      __unstableMarkNextChangeAsNotPersistent,
28943      replaceBlock
28944    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
28945    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
28946    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
28947    const isDraggingWithin = edit_useIsDraggingWithin(listItemRef);
28948  
28949    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add text…');
28950  
28951    const ref = (0,external_wp_element_namespaceObject.useRef)();
28952    const {
28953      isAtMaxNesting,
28954      isTopLevelItem,
28955      isParentOfSelectedBlock,
28956      isImmediateParentOfSelectedBlock,
28957      hasChildren,
28958      selectedBlockHasChildren,
28959      userCanCreatePages,
28960      userCanCreatePosts,
28961      onlyDescendantIsEmptyLink
28962    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
28963      const {
28964        hasSelectedInnerBlock,
28965        getSelectedBlockClientId,
28966        getBlockParentsByBlockName,
28967        getBlock,
28968        getBlockCount,
28969        getBlockOrder
28970      } = select(external_wp_blockEditor_namespaceObject.store);
28971  
28972      let _onlyDescendantIsEmptyLink;
28973  
28974      const selectedBlockId = getSelectedBlockClientId();
28975      const selectedBlockChildren = getBlockOrder(selectedBlockId); // Check for a single descendant in the submenu. If that block
28976      // is a link block in a "placeholder" state with no label then
28977      // we can consider as an "empty" link.
28978  
28979      if ((selectedBlockChildren === null || selectedBlockChildren === void 0 ? void 0 : selectedBlockChildren.length) === 1) {
28980        var _singleBlock$attribut;
28981  
28982        const singleBlock = getBlock(selectedBlockChildren[0]);
28983        _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);
28984      }
28985  
28986      return {
28987        isAtMaxNesting: getBlockParentsByBlockName(clientId, navigation_submenu_edit_name).length >= maxNestingLevel,
28988        isTopLevelItem: getBlockParentsByBlockName(clientId, navigation_submenu_edit_name).length === 0,
28989        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
28990        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
28991        hasChildren: !!getBlockCount(clientId),
28992        selectedBlockHasChildren: !!(selectedBlockChildren !== null && selectedBlockChildren !== void 0 && selectedBlockChildren.length),
28993        userCanCreatePages: select(external_wp_coreData_namespaceObject.store).canUser('create', 'pages'),
28994        userCanCreatePosts: select(external_wp_coreData_namespaceObject.store).canUser('create', 'posts'),
28995        onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink
28996      };
28997    }, [clientId]); // Show the LinkControl on mount if the URL is empty
28998    // ( When adding a new menu item)
28999    // This can't be done in the useState call because it conflicts
29000    // with the autofocus behavior of the BlockListBlock component.
29001  
29002    (0,external_wp_element_namespaceObject.useEffect)(() => {
29003      if (!openSubmenusOnClick && !url) {
29004        setIsLinkOpen(true);
29005      }
29006    }, []); // Store the colors from context as attributes for rendering.
29007  
29008    (0,external_wp_element_namespaceObject.useEffect)(() => {
29009      // This side-effect should not create an undo level as those should
29010      // only be created via user interactions. Mark this change as
29011      // not persistent to avoid undo level creation.
29012      // See https://github.com/WordPress/gutenberg/issues/34564.
29013      __unstableMarkNextChangeAsNotPersistent();
29014  
29015      setAttributes({
29016        isTopLevelItem
29017      });
29018    }, [isTopLevelItem]);
29019    /**
29020     * The hook shouldn't be necessary but due to a focus loss happening
29021     * when selecting a suggestion in the link popover, we force close on block unselection.
29022     */
29023  
29024    (0,external_wp_element_namespaceObject.useEffect)(() => {
29025      if (!isSelected) {
29026        setIsLinkOpen(false);
29027      }
29028    }, [isSelected]); // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
29029  
29030    (0,external_wp_element_namespaceObject.useEffect)(() => {
29031      if (isLinkOpen && url) {
29032        // Does this look like a URL and have something TLD-ish?
29033        if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
29034          // Focus and select the label text.
29035          selectLabelText();
29036        } else {
29037          // Focus it (but do not select).
29038          (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(ref.current, true);
29039        }
29040      }
29041    }, [url]);
29042    /**
29043     * Focus the Link label text and select it.
29044     */
29045  
29046    function selectLabelText() {
29047      ref.current.focus();
29048      const {
29049        ownerDocument
29050      } = ref.current;
29051      const {
29052        defaultView
29053      } = ownerDocument;
29054      const selection = defaultView.getSelection();
29055      const range = ownerDocument.createRange(); // Get the range of the current ref contents so we can add this range to the selection.
29056  
29057      range.selectNodeContents(ref.current);
29058      selection.removeAllRanges();
29059      selection.addRange(range);
29060    }
29061  
29062    let userCanCreate = false;
29063  
29064    if (!type || type === 'page') {
29065      userCanCreate = userCanCreatePages;
29066    } else if (type === 'post') {
29067      userCanCreate = userCanCreatePosts;
29068    }
29069  
29070    async function handleCreate(pageTitle) {
29071      const postType = type || 'page';
29072      const page = await saveEntityRecord('postType', postType, {
29073        title: pageTitle,
29074        status: 'draft'
29075      });
29076      return {
29077        id: page.id,
29078        type: postType,
29079        title: page.title.rendered,
29080        url: page.link,
29081        kind: 'post-type'
29082      };
29083    }
29084  
29085    const {
29086      textColor,
29087      customTextColor,
29088      backgroundColor,
29089      customBackgroundColor
29090    } = edit_getColors(context, !isTopLevelItem);
29091  
29092    function onKeyDown(event) {
29093      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
29094        setIsLinkOpen(true);
29095      }
29096    }
29097  
29098    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
29099      ref: listItemRef,
29100      className: classnames_default()('wp-block-navigation-item', {
29101        'is-editing': isSelected || isParentOfSelectedBlock,
29102        'is-dragging-within': isDraggingWithin,
29103        'has-link': !!url,
29104        'has-child': hasChildren,
29105        'has-text-color': !!textColor || !!customTextColor,
29106        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
29107        'has-background': !!backgroundColor || customBackgroundColor,
29108        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor,
29109        'open-on-click': openSubmenusOnClick
29110      }),
29111      style: {
29112        color: !textColor && customTextColor,
29113        backgroundColor: !backgroundColor && customBackgroundColor
29114      },
29115      onKeyDown
29116    }); // Always use overlay colors for submenus.
29117  
29118    const innerBlocksColors = edit_getColors(context, true);
29119    const allowedBlocks = isAtMaxNesting ? (0,external_lodash_namespaceObject.without)(navigation_submenu_edit_ALLOWED_BLOCKS, 'core/navigation-submenu') : navigation_submenu_edit_ALLOWED_BLOCKS;
29120    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
29121      className: classnames_default()('wp-block-navigation__submenu-container', {
29122        'is-parent-of-selected-block': isParentOfSelectedBlock,
29123        'has-text-color': !!(innerBlocksColors.textColor || innerBlocksColors.customTextColor),
29124        [`has-$innerBlocksColors.textColor}-color`]: !!innerBlocksColors.textColor,
29125        'has-background': !!(innerBlocksColors.backgroundColor || innerBlocksColors.customBackgroundColor),
29126        [`has-$innerBlocksColors.backgroundColor}-background-color`]: !!innerBlocksColors.backgroundColor
29127      }),
29128      style: {
29129        color: innerBlocksColors.customTextColor,
29130        backgroundColor: innerBlocksColors.customBackgroundColor
29131      }
29132    }, {
29133      allowedBlocks,
29134      __experimentalDefaultBlock: edit_DEFAULT_BLOCK,
29135      __experimentalDirectInsert: true,
29136      // Ensure block toolbar is not too far removed from item
29137      // being edited.
29138      // see: https://github.com/WordPress/gutenberg/pull/34615.
29139      __experimentalCaptureToolbars: true,
29140      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender.
29141      hasChildren ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false
29142    });
29143    const ParentElement = openSubmenusOnClick ? 'button' : 'a';
29144  
29145    function transformToLink() {
29146      const newLinkBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes);
29147      replaceBlock(clientId, newLinkBlock);
29148    }
29149  
29150    const canConvertToLink = !selectedBlockHasChildren || onlyDescendantIsEmptyLink;
29151    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, {
29152      name: "link",
29153      icon: library_link,
29154      title: (0,external_wp_i18n_namespaceObject.__)('Link'),
29155      shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
29156      onClick: () => setIsLinkOpen(true)
29157    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
29158      name: "revert",
29159      icon: remove_submenu,
29160      title: (0,external_wp_i18n_namespaceObject.__)('Convert to Link'),
29161      onClick: transformToLink,
29162      className: "wp-block-navigation__submenu__revert",
29163      isDisabled: !canConvertToLink
29164    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
29165      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
29166    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
29167      value: description || '',
29168      onChange: descriptionValue => {
29169        setAttributes({
29170          description: descriptionValue
29171        });
29172      },
29173      label: (0,external_wp_i18n_namespaceObject.__)('Description'),
29174      help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
29175    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
29176      value: title || '',
29177      onChange: titleValue => {
29178        setAttributes({
29179          title: titleValue
29180        });
29181      },
29182      label: (0,external_wp_i18n_namespaceObject.__)('Link title'),
29183      autoComplete: "off"
29184    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
29185      value: rel || '',
29186      onChange: relValue => {
29187        setAttributes({
29188          rel: relValue
29189        });
29190      },
29191      label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
29192      autoComplete: "off"
29193    }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(ParentElement, {
29194      className: "wp-block-navigation-item__content"
29195    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
29196      ref: ref,
29197      identifier: "label",
29198      className: "wp-block-navigation-item__label",
29199      value: label,
29200      onChange: labelValue => setAttributes({
29201        label: labelValue
29202      }),
29203      onMerge: mergeBlocks,
29204      onReplace: onReplace,
29205      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
29206      placeholder: itemLabelPlaceholder,
29207      withoutInteractiveFormatting: true,
29208      allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'],
29209      onClick: () => {
29210        if (!openSubmenusOnClick && !url) {
29211          setIsLinkOpen(true);
29212        }
29213      }
29214    }), !openSubmenusOnClick && isLinkOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
29215      position: "bottom center",
29216      onClose: () => setIsLinkOpen(false),
29217      anchorRef: listItemRef.current
29218    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
29219      className: "wp-block-navigation-link__inline-link-input",
29220      value: link,
29221      showInitialSuggestions: true,
29222      withCreateSuggestion: userCanCreate,
29223      createSuggestion: handleCreate,
29224      createSuggestionButtonText: searchTerm => {
29225        let format;
29226  
29227        if (type === 'post') {
29228          /* translators: %s: search term. */
29229          format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
29230        } else {
29231          /* translators: %s: search term. */
29232          format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
29233        }
29234  
29235        return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
29236          mark: (0,external_wp_element_namespaceObject.createElement)("mark", null)
29237        });
29238      },
29239      noDirectEntry: !!type,
29240      noURLSuggestion: !!type,
29241      suggestionsQuery: edit_getSuggestionsQuery(type, kind),
29242      onChange: updatedValue => edit_updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes),
29243      onRemove: () => {
29244        setAttributes({
29245          url: ''
29246        });
29247        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
29248      }
29249    }))), (showSubmenuIcon || openSubmenusOnClick) && (0,external_wp_element_namespaceObject.createElement)("span", {
29250      className: "wp-block-navigation__submenu-icon"
29251    }, (0,external_wp_element_namespaceObject.createElement)(ItemSubmenuIcon, null)), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)));
29252  }
29253  
29254  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/save.js
29255  
29256  
29257  /**
29258   * WordPress dependencies
29259   */
29260  
29261  function navigation_submenu_save_save() {
29262    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
29263  }
29264  
29265  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/transforms.js
29266  /**
29267   * WordPress dependencies
29268   */
29269  
29270  const navigation_submenu_transforms_transforms = {
29271    to: [{
29272      type: 'block',
29273      blocks: ['core/navigation-link'],
29274      isMatch: (attributes, block) => {
29275        var _block$innerBlocks;
29276  
29277        return (block === null || block === void 0 ? void 0 : (_block$innerBlocks = block.innerBlocks) === null || _block$innerBlocks === void 0 ? void 0 : _block$innerBlocks.length) === 0;
29278      },
29279      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes)
29280    }, {
29281      type: 'block',
29282      blocks: ['core/spacer'],
29283      isMatch: (attributes, block) => {
29284        var _block$innerBlocks2;
29285  
29286        return (block === null || block === void 0 ? void 0 : (_block$innerBlocks2 = block.innerBlocks) === null || _block$innerBlocks2 === void 0 ? void 0 : _block$innerBlocks2.length) === 0;
29287      },
29288      transform: () => {
29289        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
29290      }
29291    }, {
29292      type: 'block',
29293      blocks: ['core/site-logo'],
29294      isMatch: (attributes, block) => {
29295        var _block$innerBlocks3;
29296  
29297        return (block === null || block === void 0 ? void 0 : (_block$innerBlocks3 = block.innerBlocks) === null || _block$innerBlocks3 === void 0 ? void 0 : _block$innerBlocks3.length) === 0;
29298      },
29299      transform: () => {
29300        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
29301      }
29302    }, {
29303      type: 'block',
29304      blocks: ['core/home-link'],
29305      isMatch: (attributes, block) => {
29306        var _block$innerBlocks4;
29307  
29308        return (block === null || block === void 0 ? void 0 : (_block$innerBlocks4 = block.innerBlocks) === null || _block$innerBlocks4 === void 0 ? void 0 : _block$innerBlocks4.length) === 0;
29309      },
29310      transform: () => {
29311        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
29312      }
29313    }, {
29314      type: 'block',
29315      blocks: ['core/social-links'],
29316      isMatch: (attributes, block) => {
29317        var _block$innerBlocks5;
29318  
29319        return (block === null || block === void 0 ? void 0 : (_block$innerBlocks5 = block.innerBlocks) === null || _block$innerBlocks5 === void 0 ? void 0 : _block$innerBlocks5.length) === 0;
29320      },
29321      transform: () => {
29322        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
29323      }
29324    }, {
29325      type: 'block',
29326      blocks: ['core/search'],
29327      isMatch: (attributes, block) => {
29328        var _block$innerBlocks6;
29329  
29330        return (block === null || block === void 0 ? void 0 : (_block$innerBlocks6 = block.innerBlocks) === null || _block$innerBlocks6 === void 0 ? void 0 : _block$innerBlocks6.length) === 0;
29331      },
29332      transform: () => {
29333        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search');
29334      }
29335    }]
29336  };
29337  /* harmony default export */ var navigation_submenu_transforms = (navigation_submenu_transforms_transforms);
29338  
29339  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
29340  /**
29341   * WordPress dependencies
29342   */
29343  
29344  /**
29345   * Internal dependencies
29346   */
29347  
29348  const navigation_submenu_metadata = {
29349    $schema: "https://schemas.wp.org/trunk/block.json",
29350    apiVersion: 2,
29351    name: "core/navigation-submenu",
29352    title: "Submenu",
29353    category: "design",
29354    parent: ["core/navigation"],
29355    description: "Add a submenu to your navigation.",
29356    textdomain: "default",
29357    attributes: {
29358      label: {
29359        type: "string"
29360      },
29361      type: {
29362        type: "string"
29363      },
29364      description: {
29365        type: "string"
29366      },
29367      rel: {
29368        type: "string"
29369      },
29370      id: {
29371        type: "number"
29372      },
29373      opensInNewTab: {
29374        type: "boolean",
29375        "default": false
29376      },
29377      url: {
29378        type: "string"
29379      },
29380      title: {
29381        type: "string"
29382      },
29383      kind: {
29384        type: "string"
29385      },
29386      isTopLevelItem: {
29387        type: "boolean"
29388      }
29389    },
29390    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
29391    supports: {
29392      reusable: false,
29393      html: false
29394    },
29395    editorStyle: "wp-block-navigation-submenu-editor",
29396    style: "wp-block-navigation-submenu"
29397  };
29398  
29399  
29400  
29401  const {
29402    name: navigation_submenu_name
29403  } = navigation_submenu_metadata;
29404  
29405  const navigation_submenu_settings = {
29406    icon: add_submenu,
29407    __experimentalLabel: _ref => {
29408      let {
29409        label
29410      } = _ref;
29411      return label;
29412    },
29413    edit: NavigationSubmenuEdit,
29414    save: navigation_submenu_save_save,
29415    transforms: navigation_submenu_transforms
29416  };
29417  
29418  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page-break.js
29419  
29420  
29421  /**
29422   * WordPress dependencies
29423   */
29424  
29425  const pageBreak = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
29426    xmlns: "http://www.w3.org/2000/svg",
29427    viewBox: "0 0 24 24"
29428  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
29429    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"
29430  }));
29431  /* harmony default export */ var page_break = (pageBreak);
29432  
29433  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js
29434  
29435  
29436  /**
29437   * WordPress dependencies
29438   */
29439  
29440  
29441  function NextPageEdit() {
29442    return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", {
29443      className: "wp-block-nextpage"
29444    }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Page break'))));
29445  }
29446  
29447  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/save.js
29448  
29449  
29450  /**
29451   * WordPress dependencies
29452   */
29453  
29454  function nextpage_save_save() {
29455    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, '<!--nextpage-->');
29456  }
29457  
29458  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js
29459  /**
29460   * WordPress dependencies
29461   */
29462  
29463  const nextpage_transforms_transforms = {
29464    from: [{
29465      type: 'raw',
29466      schema: {
29467        'wp-block': {
29468          attributes: ['data-block']
29469        }
29470      },
29471      isMatch: node => node.dataset && node.dataset.block === 'core/nextpage',
29472  
29473      transform() {
29474        return (0,external_wp_blocks_namespaceObject.createBlock)('core/nextpage', {});
29475      }
29476  
29477    }]
29478  };
29479  /* harmony default export */ var nextpage_transforms = (nextpage_transforms_transforms);
29480  
29481  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
29482  /**
29483   * WordPress dependencies
29484   */
29485  
29486  /**
29487   * Internal dependencies
29488   */
29489  
29490  
29491  const nextpage_metadata = {
29492    $schema: "https://schemas.wp.org/trunk/block.json",
29493    apiVersion: 2,
29494    name: "core/nextpage",
29495    title: "Page Break",
29496    category: "design",
29497    description: "Separate your content into a multi-page experience.",
29498    keywords: ["next page", "pagination"],
29499    parent: ["core/post-content"],
29500    textdomain: "default",
29501    supports: {
29502      customClassName: false,
29503      className: false,
29504      html: false
29505    },
29506    editorStyle: "wp-block-nextpage-editor"
29507  };
29508  
29509  
29510  const {
29511    name: nextpage_name
29512  } = nextpage_metadata;
29513  
29514  const nextpage_settings = {
29515    icon: page_break,
29516    example: {},
29517    transforms: nextpage_transforms,
29518    edit: NextPageEdit,
29519    save: nextpage_save_save
29520  };
29521  
29522  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/edit.js
29523  
29524  
29525  /**
29526   * WordPress dependencies
29527   */
29528  
29529  
29530  
29531  
29532  const PatternEdit = _ref => {
29533    let {
29534      attributes,
29535      clientId
29536    } = _ref;
29537    const selectedPattern = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
29538    const {
29539      replaceBlocks,
29540      __unstableMarkNextChangeAsNotPersistent
29541    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); // Run this effect when the component loads.
29542    // This adds the Pattern's contents to the post.
29543    // This change won't be saved.
29544    // It will continue to pull from the pattern file unless changes are made to its respective template part.
29545  
29546    (0,external_wp_element_namespaceObject.useEffect)(() => {
29547      if (selectedPattern !== null && selectedPattern !== void 0 && selectedPattern.blocks) {
29548        __unstableMarkNextChangeAsNotPersistent();
29549  
29550        replaceBlocks(clientId, selectedPattern.blocks);
29551      }
29552    }, [selectedPattern === null || selectedPattern === void 0 ? void 0 : selectedPattern.blocks]);
29553    const props = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
29554    return (0,external_wp_element_namespaceObject.createElement)("div", props);
29555  };
29556  
29557  /* harmony default export */ var pattern_edit = (PatternEdit);
29558  
29559  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/index.js
29560  /**
29561   * Internal dependencies
29562   */
29563  const pattern_metadata = {
29564    $schema: "https://schemas.wp.org/trunk/block.json",
29565    apiVersion: 2,
29566    name: "core/pattern",
29567    title: "Pattern",
29568    category: "theme",
29569    description: "Show a block pattern.",
29570    supports: {
29571      html: false,
29572      inserter: false
29573    },
29574    textdomain: "default",
29575    attributes: {
29576      slug: {
29577        type: "string"
29578      }
29579    }
29580  };
29581  
29582  const {
29583    name: pattern_name
29584  } = pattern_metadata;
29585  
29586  const pattern_settings = {
29587    edit: pattern_edit
29588  };
29589  
29590  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pages.js
29591  
29592  
29593  /**
29594   * WordPress dependencies
29595   */
29596  
29597  const pages = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
29598    xmlns: "http://www.w3.org/2000/svg",
29599    viewBox: "0 0 24 24"
29600  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
29601    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"
29602  }));
29603  /* harmony default export */ var library_pages = (pages);
29604  
29605  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/convert-to-links-modal.js
29606  
29607  
29608  /**
29609   * WordPress dependencies
29610   */
29611  
29612  
29613  
29614  
29615  
29616  
29617  const PAGE_FIELDS = ['id', 'title', 'link', 'type', 'parent'];
29618  const MAX_PAGE_COUNT = 100;
29619  const convertSelectedBlockToNavigationLinks = _ref => {
29620    let {
29621      pages,
29622      clientId,
29623      replaceBlock,
29624      createBlock
29625    } = _ref;
29626    return () => {
29627      if (!pages) {
29628        return;
29629      }
29630  
29631      const linkMap = {};
29632      const navigationLinks = [];
29633      pages.forEach(_ref2 => {
29634        var _linkMap$id$innerBloc, _linkMap$id;
29635  
29636        let {
29637          id,
29638          title,
29639          link: url,
29640          type,
29641          parent
29642        } = _ref2;
29643        // See if a placeholder exists. This is created if children appear before parents in list.
29644        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 : [];
29645        linkMap[id] = createBlock('core/navigation-link', {
29646          id,
29647          label: title.rendered,
29648          url,
29649          type,
29650          kind: 'post-type'
29651        }, innerBlocks);
29652  
29653        if (!parent) {
29654          navigationLinks.push(linkMap[id]);
29655        } else {
29656          if (!linkMap[parent]) {
29657            // Use a placeholder if the child appears before parent in list.
29658            linkMap[parent] = {
29659              innerBlocks: []
29660            };
29661          }
29662  
29663          const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
29664          parentLinkInnerBlocks.push(linkMap[id]);
29665        }
29666      }); // Transform all links with innerBlocks into Submenus. This can't be done
29667      // sooner because page objects have no information on their children.
29668  
29669      const transformSubmenus = listOfLinks => {
29670        listOfLinks.forEach((block, index, listOfLinksArray) => {
29671          const {
29672            attributes,
29673            innerBlocks
29674          } = block;
29675  
29676          if (innerBlocks.length !== 0) {
29677            transformSubmenus(innerBlocks);
29678            const transformedBlock = createBlock('core/navigation-submenu', attributes, innerBlocks);
29679            listOfLinksArray[index] = transformedBlock;
29680          }
29681        });
29682      };
29683  
29684      transformSubmenus(navigationLinks);
29685      replaceBlock(clientId, navigationLinks);
29686    };
29687  };
29688  function ConvertToLinksModal(_ref3) {
29689    let {
29690      onClose,
29691      clientId
29692    } = _ref3;
29693    const {
29694      records: pages,
29695      hasResolved: pagesFinished
29696    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', {
29697      per_page: MAX_PAGE_COUNT,
29698      _fields: PAGE_FIELDS,
29699      // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
29700      // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
29701      // sort.
29702      orderby: 'menu_order',
29703      order: 'asc'
29704    });
29705    const {
29706      replaceBlock
29707    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
29708    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
29709      closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close'),
29710      onRequestClose: onClose,
29711      title: (0,external_wp_i18n_namespaceObject.__)('Convert to links'),
29712      className: 'wp-block-page-list-modal',
29713      aria: {
29714        describedby: 'wp-block-page-list-modal__description'
29715      }
29716    }, (0,external_wp_element_namespaceObject.createElement)("p", {
29717      id: 'wp-block-page-list-modal__description'
29718    }, (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", {
29719      className: "wp-block-page-list-modal-buttons"
29720    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
29721      variant: "tertiary",
29722      onClick: onClose
29723    }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
29724      variant: "primary",
29725      disabled: !pagesFinished,
29726      onClick: convertSelectedBlockToNavigationLinks({
29727        pages,
29728        replaceBlock,
29729        clientId,
29730        createBlock: external_wp_blocks_namespaceObject.createBlock
29731      })
29732    }, (0,external_wp_i18n_namespaceObject.__)('Convert'))));
29733  }
29734  
29735  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/icons.js
29736  
29737  
29738  /**
29739   * WordPress dependencies
29740   */
29741  
29742  const icons_ItemSubmenuIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
29743    xmlns: "http://www.w3.org/2000/svg",
29744    width: "12",
29745    height: "12",
29746    viewBox: "0 0 12 12",
29747    fill: "none"
29748  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
29749    d: "M1.50002 4L6.00002 8L10.5 4",
29750    strokeWidth: "1.5"
29751  }));
29752  
29753  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/edit.js
29754  
29755  
29756  /**
29757   * External dependencies
29758   */
29759  
29760  
29761  /**
29762   * WordPress dependencies
29763   */
29764  
29765  
29766  
29767  
29768  
29769  
29770  
29771  /**
29772   * Internal dependencies
29773   */
29774  
29775  
29776   // We only show the edit option when page count is <= MAX_PAGE_COUNT
29777  // Performance of Navigation Links is not good past this value.
29778  
29779  const edit_MAX_PAGE_COUNT = 100;
29780  function PageListEdit(_ref) {
29781    var _context$style;
29782  
29783    let {
29784      context,
29785      clientId
29786    } = _ref;
29787    const {
29788      pagesByParentId,
29789      totalPages,
29790      hasResolvedPages
29791    } = usePageData();
29792    const isNavigationChild = ('showSubmenuIcon' in context);
29793    const allowConvertToLinks = isNavigationChild && totalPages <= edit_MAX_PAGE_COUNT;
29794    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
29795  
29796    const openModal = () => setOpen(true);
29797  
29798    const closeModal = () => setOpen(false);
29799  
29800    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
29801      className: classnames_default()('wp-block-page-list', {
29802        'has-text-color': !!context.textColor,
29803        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', context.textColor)]: !!context.textColor,
29804        'has-background': !!context.backgroundColor,
29805        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', context.backgroundColor)]: !!context.backgroundColor
29806      }),
29807      style: { ...((_context$style = context.style) === null || _context$style === void 0 ? void 0 : _context$style.color)
29808      }
29809    });
29810    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, {
29811      group: "other"
29812    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
29813      title: (0,external_wp_i18n_namespaceObject.__)('Edit'),
29814      onClick: openModal
29815    }, (0,external_wp_i18n_namespaceObject.__)('Edit'))), allowConvertToLinks && isOpen && (0,external_wp_element_namespaceObject.createElement)(ConvertToLinksModal, {
29816      onClose: closeModal,
29817      clientId: clientId
29818    }), !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, {
29819      status: 'warning',
29820      isDismissible: false
29821    }, (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, {
29822      status: 'info',
29823      isDismissible: false
29824    }, (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, {
29825      context: context,
29826      pagesByParentId: pagesByParentId
29827    })));
29828  }
29829  
29830  function useFrontPageId() {
29831    return (0,external_wp_data_namespaceObject.useSelect)(select => {
29832      const site = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'site');
29833      return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front);
29834    }, []);
29835  }
29836  
29837  function usePageData() {
29838    const {
29839      records: pages,
29840      hasResolved: hasResolvedPages
29841    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', {
29842      orderby: 'menu_order',
29843      order: 'asc',
29844      _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
29845      per_page: -1
29846    });
29847    return (0,external_wp_element_namespaceObject.useMemo)(() => {
29848      var _pages$length;
29849  
29850      // TODO: Once the REST API supports passing multiple values to
29851      // 'orderby', this can be removed.
29852      // https://core.trac.wordpress.org/ticket/39037
29853      const sortedPages = (0,external_lodash_namespaceObject.sortBy)(pages, ['menu_order', 'title.rendered']);
29854      const pagesByParentId = sortedPages.reduce((accumulator, page) => {
29855        const {
29856          parent
29857        } = page;
29858  
29859        if (accumulator.has(parent)) {
29860          accumulator.get(parent).push(page);
29861        } else {
29862          accumulator.set(parent, [page]);
29863        }
29864  
29865        return accumulator;
29866      }, new Map());
29867      return {
29868        pagesByParentId,
29869        hasResolvedPages,
29870        totalPages: (_pages$length = pages === null || pages === void 0 ? void 0 : pages.length) !== null && _pages$length !== void 0 ? _pages$length : null
29871      };
29872    }, [pages, hasResolvedPages]);
29873  }
29874  
29875  const PageItems = (0,external_wp_element_namespaceObject.memo)(function PageItems(_ref2) {
29876    let {
29877      context,
29878      pagesByParentId,
29879      parentId = 0,
29880      depth = 0
29881    } = _ref2;
29882    const pages = pagesByParentId.get(parentId);
29883    const frontPageId = useFrontPageId();
29884  
29885    if (!(pages !== null && pages !== void 0 && pages.length)) {
29886      return [];
29887    }
29888  
29889    return pages.map(page => {
29890      var _page$title, _page$title2;
29891  
29892      const hasChildren = pagesByParentId.has(page.id);
29893      const isNavigationChild = ('showSubmenuIcon' in context);
29894      return (0,external_wp_element_namespaceObject.createElement)("li", {
29895        key: page.id,
29896        className: classnames_default()('wp-block-pages-list__item', {
29897          'has-child': hasChildren,
29898          'wp-block-navigation-item': isNavigationChild,
29899          'open-on-click': context.openSubmenusOnClick,
29900          'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
29901          'menu-item-home': page.id === frontPageId
29902        })
29903      }, hasChildren && context.openSubmenusOnClick ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("button", {
29904        className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
29905        "aria-expanded": "false"
29906      }, (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered), (0,external_wp_element_namespaceObject.createElement)("span", {
29907        className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"
29908      }, (0,external_wp_element_namespaceObject.createElement)(icons_ItemSubmenuIcon, null))) : (0,external_wp_element_namespaceObject.createElement)("a", {
29909        className: classnames_default()('wp-block-pages-list__item__link', {
29910          'wp-block-navigation-item__content': isNavigationChild
29911        }),
29912        href: page.link
29913      }, (_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", {
29914        className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
29915        "aria-expanded": "false"
29916      }, (0,external_wp_element_namespaceObject.createElement)(icons_ItemSubmenuIcon, null)), (0,external_wp_element_namespaceObject.createElement)("ul", {
29917        className: classnames_default()('submenu-container', {
29918          'wp-block-navigation__submenu-container': isNavigationChild
29919        })
29920      }, (0,external_wp_element_namespaceObject.createElement)(PageItems, {
29921        context: context,
29922        pagesByParentId: pagesByParentId,
29923        parentId: page.id,
29924        depth: depth + 1
29925      }))));
29926    });
29927  });
29928  
29929  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/index.js
29930  /**
29931   * WordPress dependencies
29932   */
29933  
29934  /**
29935   * Internal dependencies
29936   */
29937  
29938  const page_list_metadata = {
29939    $schema: "https://schemas.wp.org/trunk/block.json",
29940    apiVersion: 2,
29941    name: "core/page-list",
29942    title: "Page List",
29943    category: "widgets",
29944    description: "Display a list of all pages.",
29945    keywords: ["menu", "navigation"],
29946    textdomain: "default",
29947    attributes: {
29948      __unstableMaxPages: {
29949        type: "number"
29950      }
29951    },
29952    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
29953    supports: {
29954      reusable: false,
29955      html: false
29956    },
29957    editorStyle: "wp-block-page-list-editor",
29958    style: "wp-block-page-list"
29959  };
29960  
29961  const {
29962    name: page_list_name
29963  } = page_list_metadata;
29964  
29965  const page_list_settings = {
29966    icon: library_pages,
29967    example: {},
29968    edit: PageListEdit
29969  };
29970  
29971  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js
29972  
29973  
29974  /**
29975   * WordPress dependencies
29976   */
29977  
29978  const paragraph = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
29979    xmlns: "http://www.w3.org/2000/svg",
29980    viewBox: "0 0 24 24"
29981  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
29982    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"
29983  }));
29984  /* harmony default export */ var library_paragraph = (paragraph);
29985  
29986  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js
29987  
29988  
29989  /**
29990   * External dependencies
29991   */
29992  
29993  
29994  /**
29995   * WordPress dependencies
29996   */
29997  
29998  
29999  
30000  const supports = {
30001    className: false
30002  };
30003  const paragraph_deprecated_blockAttributes = {
30004    align: {
30005      type: 'string'
30006    },
30007    content: {
30008      type: 'string',
30009      source: 'html',
30010      selector: 'p',
30011      default: ''
30012    },
30013    dropCap: {
30014      type: 'boolean',
30015      default: false
30016    },
30017    placeholder: {
30018      type: 'string'
30019    },
30020    textColor: {
30021      type: 'string'
30022    },
30023    backgroundColor: {
30024      type: 'string'
30025    },
30026    fontSize: {
30027      type: 'string'
30028    },
30029    direction: {
30030      type: 'string',
30031      enum: ['ltr', 'rtl']
30032    },
30033    style: {
30034      type: 'object'
30035    }
30036  };
30037  
30038  const migrateCustomColorsAndFontSizes = attributes => {
30039    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) {
30040      return attributes;
30041    }
30042  
30043    const style = {};
30044  
30045    if (attributes.customTextColor || attributes.customBackgroundColor) {
30046      style.color = {};
30047    }
30048  
30049    if (attributes.customTextColor) {
30050      style.color.text = attributes.customTextColor;
30051    }
30052  
30053    if (attributes.customBackgroundColor) {
30054      style.color.background = attributes.customBackgroundColor;
30055    }
30056  
30057    if (attributes.customFontSize) {
30058      style.typography = {
30059        fontSize: attributes.customFontSize
30060      };
30061    }
30062  
30063    return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor', 'customFontSize']),
30064      style
30065    };
30066  };
30067  
30068  const paragraph_deprecated_deprecated = [{
30069    supports,
30070    attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']),
30071      customTextColor: {
30072        type: 'string'
30073      },
30074      customBackgroundColor: {
30075        type: 'string'
30076      },
30077      customFontSize: {
30078        type: 'number'
30079      }
30080    },
30081    migrate: migrateCustomColorsAndFontSizes,
30082  
30083    save(_ref) {
30084      let {
30085        attributes
30086      } = _ref;
30087      const {
30088        align,
30089        content,
30090        dropCap,
30091        backgroundColor,
30092        textColor,
30093        customBackgroundColor,
30094        customTextColor,
30095        fontSize,
30096        customFontSize,
30097        direction
30098      } = attributes;
30099      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
30100      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
30101      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
30102      const className = classnames_default()({
30103        'has-text-color': textColor || customTextColor,
30104        'has-background': backgroundColor || customBackgroundColor,
30105        'has-drop-cap': dropCap,
30106        [`has-text-align-$align}`]: align,
30107        [fontSizeClass]: fontSizeClass,
30108        [textClass]: textClass,
30109        [backgroundClass]: backgroundClass
30110      });
30111      const styles = {
30112        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
30113        color: textClass ? undefined : customTextColor,
30114        fontSize: fontSizeClass ? undefined : customFontSize
30115      };
30116      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
30117        tagName: "p",
30118        style: styles,
30119        className: className ? className : undefined,
30120        value: content,
30121        dir: direction
30122      });
30123    }
30124  
30125  }, {
30126    supports,
30127    attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']),
30128      customTextColor: {
30129        type: 'string'
30130      },
30131      customBackgroundColor: {
30132        type: 'string'
30133      },
30134      customFontSize: {
30135        type: 'number'
30136      }
30137    },
30138    migrate: migrateCustomColorsAndFontSizes,
30139  
30140    save(_ref2) {
30141      let {
30142        attributes
30143      } = _ref2;
30144      const {
30145        align,
30146        content,
30147        dropCap,
30148        backgroundColor,
30149        textColor,
30150        customBackgroundColor,
30151        customTextColor,
30152        fontSize,
30153        customFontSize,
30154        direction
30155      } = attributes;
30156      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
30157      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
30158      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
30159      const className = classnames_default()({
30160        'has-text-color': textColor || customTextColor,
30161        'has-background': backgroundColor || customBackgroundColor,
30162        'has-drop-cap': dropCap,
30163        [fontSizeClass]: fontSizeClass,
30164        [textClass]: textClass,
30165        [backgroundClass]: backgroundClass
30166      });
30167      const styles = {
30168        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
30169        color: textClass ? undefined : customTextColor,
30170        fontSize: fontSizeClass ? undefined : customFontSize,
30171        textAlign: align
30172      };
30173      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
30174        tagName: "p",
30175        style: styles,
30176        className: className ? className : undefined,
30177        value: content,
30178        dir: direction
30179      });
30180    }
30181  
30182  }, {
30183    supports,
30184    attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']),
30185      customTextColor: {
30186        type: 'string'
30187      },
30188      customBackgroundColor: {
30189        type: 'string'
30190      },
30191      customFontSize: {
30192        type: 'number'
30193      },
30194      width: {
30195        type: 'string'
30196      }
30197    },
30198    migrate: migrateCustomColorsAndFontSizes,
30199  
30200    save(_ref3) {
30201      let {
30202        attributes
30203      } = _ref3;
30204      const {
30205        width,
30206        align,
30207        content,
30208        dropCap,
30209        backgroundColor,
30210        textColor,
30211        customBackgroundColor,
30212        customTextColor,
30213        fontSize,
30214        customFontSize
30215      } = attributes;
30216      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
30217      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
30218      const fontSizeClass = fontSize && `is-$fontSize}-text`;
30219      const className = classnames_default()({
30220        [`align$width}`]: width,
30221        'has-background': backgroundColor || customBackgroundColor,
30222        'has-drop-cap': dropCap,
30223        [fontSizeClass]: fontSizeClass,
30224        [textClass]: textClass,
30225        [backgroundClass]: backgroundClass
30226      });
30227      const styles = {
30228        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
30229        color: textClass ? undefined : customTextColor,
30230        fontSize: fontSizeClass ? undefined : customFontSize,
30231        textAlign: align
30232      };
30233      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
30234        tagName: "p",
30235        style: styles,
30236        className: className ? className : undefined,
30237        value: content
30238      });
30239    }
30240  
30241  }, {
30242    supports,
30243    attributes: (0,external_lodash_namespaceObject.omit)({ ...paragraph_deprecated_blockAttributes,
30244      fontSize: {
30245        type: 'number'
30246      }
30247    }, ['style']),
30248  
30249    save(_ref4) {
30250      let {
30251        attributes
30252      } = _ref4;
30253      const {
30254        width,
30255        align,
30256        content,
30257        dropCap,
30258        backgroundColor,
30259        textColor,
30260        fontSize
30261      } = attributes;
30262      const className = classnames_default()({
30263        [`align$width}`]: width,
30264        'has-background': backgroundColor,
30265        'has-drop-cap': dropCap
30266      });
30267      const styles = {
30268        backgroundColor,
30269        color: textColor,
30270        fontSize,
30271        textAlign: align
30272      };
30273      return (0,external_wp_element_namespaceObject.createElement)("p", {
30274        style: styles,
30275        className: className ? className : undefined
30276      }, content);
30277    },
30278  
30279    migrate(attributes) {
30280      return migrateCustomColorsAndFontSizes((0,external_lodash_namespaceObject.omit)({ ...attributes,
30281        customFontSize: (0,external_lodash_namespaceObject.isFinite)(attributes.fontSize) ? attributes.fontSize : undefined,
30282        customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
30283        customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined
30284      }), ['fontSize', 'textColor', 'backgroundColor', 'style']);
30285    }
30286  
30287  }, {
30288    supports,
30289    attributes: { ...paragraph_deprecated_blockAttributes,
30290      content: {
30291        type: 'string',
30292        source: 'html',
30293        default: ''
30294      }
30295    },
30296  
30297    save(_ref5) {
30298      let {
30299        attributes
30300      } = _ref5;
30301      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.content);
30302    },
30303  
30304    migrate(attributes) {
30305      return attributes;
30306    }
30307  
30308  }];
30309  /* harmony default export */ var paragraph_deprecated = (paragraph_deprecated_deprecated);
30310  
30311  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-ltr.js
30312  
30313  
30314  /**
30315   * WordPress dependencies
30316   */
30317  
30318  const formatLtr = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
30319    xmlns: "http://www.w3.org/2000/svg",
30320    viewBox: "-2 -2 24 24"
30321  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
30322    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"
30323  }));
30324  /* harmony default export */ var format_ltr = (formatLtr);
30325  
30326  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js
30327  
30328  
30329  
30330  /**
30331   * External dependencies
30332   */
30333  
30334  /**
30335   * WordPress dependencies
30336   */
30337  
30338  
30339  
30340  
30341  
30342  
30343  const paragraph_edit_name = 'core/paragraph';
30344  
30345  function ParagraphRTLControl(_ref) {
30346    let {
30347      direction,
30348      setDirection
30349    } = _ref;
30350    return (0,external_wp_i18n_namespaceObject.isRTL)() && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
30351      controls: [{
30352        icon: format_ltr,
30353        title: (0,external_wp_i18n_namespaceObject._x)('Left to right', 'editor button'),
30354        isActive: direction === 'ltr',
30355  
30356        onClick() {
30357          setDirection(direction === 'ltr' ? undefined : 'ltr');
30358        }
30359  
30360      }]
30361    });
30362  }
30363  
30364  function ParagraphBlock(_ref2) {
30365    let {
30366      attributes,
30367      mergeBlocks,
30368      onReplace,
30369      onRemove,
30370      setAttributes,
30371      clientId
30372    } = _ref2;
30373    const {
30374      align,
30375      content,
30376      direction,
30377      dropCap,
30378      placeholder
30379    } = attributes;
30380    const isDropCapFeatureEnabled = (0,external_wp_blockEditor_namespaceObject.useSetting)('typography.dropCap');
30381    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
30382      className: classnames_default()({
30383        'has-drop-cap': dropCap,
30384        [`has-text-align-$align}`]: align
30385      }),
30386      style: {
30387        direction
30388      }
30389    });
30390    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
30391      group: "block"
30392    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
30393      value: align,
30394      onChange: newAlign => setAttributes({
30395        align: newAlign
30396      })
30397    }), (0,external_wp_element_namespaceObject.createElement)(ParagraphRTLControl, {
30398      direction: direction,
30399      setDirection: newDirection => setAttributes({
30400        direction: newDirection
30401      })
30402    })), isDropCapFeatureEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
30403      __experimentalGroup: "typography"
30404    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
30405      hasValue: () => !!dropCap,
30406      label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
30407      onDeselect: () => setAttributes({
30408        dropCap: undefined
30409      }),
30410      resetAllFilter: () => ({
30411        dropCap: undefined
30412      }),
30413      panelId: clientId
30414    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
30415      label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
30416      checked: !!dropCap,
30417      onChange: () => setAttributes({
30418        dropCap: !dropCap
30419      }),
30420      help: dropCap ? (0,external_wp_i18n_namespaceObject.__)('Showing large initial letter.') : (0,external_wp_i18n_namespaceObject.__)('Toggle to show a large initial letter.')
30421    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
30422      identifier: "content",
30423      tagName: "p"
30424    }, blockProps, {
30425      value: content,
30426      onChange: newContent => setAttributes({
30427        content: newContent
30428      }),
30429      onSplit: (value, isOriginal) => {
30430        let newAttributes;
30431  
30432        if (isOriginal || value) {
30433          newAttributes = { ...attributes,
30434            content: value
30435          };
30436        }
30437  
30438        const block = (0,external_wp_blocks_namespaceObject.createBlock)(paragraph_edit_name, newAttributes);
30439  
30440        if (isOriginal) {
30441          block.clientId = clientId;
30442        }
30443  
30444        return block;
30445      },
30446      onMerge: mergeBlocks,
30447      onReplace: onReplace,
30448      onRemove: onRemove,
30449      "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'),
30450      "data-empty": content ? false : true,
30451      placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'),
30452      __unstableEmbedURLOnPaste: true,
30453      __unstableAllowPrefixTransformations: true
30454    })));
30455  }
30456  
30457  /* harmony default export */ var paragraph_edit = (ParagraphBlock);
30458  
30459  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/save.js
30460  
30461  
30462  /**
30463   * External dependencies
30464   */
30465  
30466  /**
30467   * WordPress dependencies
30468   */
30469  
30470  
30471  function paragraph_save_save(_ref) {
30472    let {
30473      attributes
30474    } = _ref;
30475    const {
30476      align,
30477      content,
30478      dropCap,
30479      direction
30480    } = attributes;
30481    const className = classnames_default()({
30482      'has-drop-cap': dropCap,
30483      [`has-text-align-$align}`]: align
30484    });
30485    return (0,external_wp_element_namespaceObject.createElement)("p", external_wp_blockEditor_namespaceObject.useBlockProps.save({
30486      className,
30487      dir: direction
30488    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
30489      value: content
30490    }));
30491  }
30492  
30493  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js
30494  /**
30495   * WordPress dependencies
30496   */
30497  
30498  /**
30499   * Internal dependencies
30500   */
30501  
30502  const {
30503    name: paragraph_transforms_name
30504  } = {
30505    $schema: "https://schemas.wp.org/trunk/block.json",
30506    apiVersion: 2,
30507    name: "core/paragraph",
30508    title: "Paragraph",
30509    category: "text",
30510    description: "Start with the basic building block of all narrative.",
30511    keywords: ["text"],
30512    textdomain: "default",
30513    attributes: {
30514      align: {
30515        type: "string"
30516      },
30517      content: {
30518        type: "string",
30519        source: "html",
30520        selector: "p",
30521        "default": "",
30522        __experimentalRole: "content"
30523      },
30524      dropCap: {
30525        type: "boolean",
30526        "default": false
30527      },
30528      placeholder: {
30529        type: "string"
30530      },
30531      direction: {
30532        type: "string",
30533        "enum": ["ltr", "rtl"]
30534      }
30535    },
30536    supports: {
30537      anchor: true,
30538      className: false,
30539      color: {
30540        link: true,
30541        __experimentalDefaultControls: {
30542          background: true,
30543          text: true
30544        }
30545      },
30546      typography: {
30547        fontSize: true,
30548        lineHeight: true,
30549        __experimentalFontStyle: true,
30550        __experimentalFontWeight: true,
30551        __experimentalLetterSpacing: true,
30552        __experimentalTextTransform: true,
30553        __experimentalDefaultControls: {
30554          fontSize: true
30555        }
30556      },
30557      __experimentalSelector: "p",
30558      __unstablePasteTextInline: true
30559    },
30560    editorStyle: "wp-block-paragraph-editor",
30561    style: "wp-block-paragraph"
30562  };
30563  const paragraph_transforms_transforms = {
30564    from: [{
30565      type: 'raw',
30566      // Paragraph is a fallback and should be matched last.
30567      priority: 20,
30568      selector: 'p',
30569      schema: _ref => {
30570        let {
30571          phrasingContentSchema,
30572          isPaste
30573        } = _ref;
30574        return {
30575          p: {
30576            children: phrasingContentSchema,
30577            attributes: isPaste ? [] : ['style', 'id']
30578          }
30579        };
30580      },
30581  
30582      transform(node) {
30583        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(paragraph_transforms_name, node.outerHTML);
30584        const {
30585          textAlign
30586        } = node.style || {};
30587  
30588        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
30589          attributes.align = textAlign;
30590        }
30591  
30592        return (0,external_wp_blocks_namespaceObject.createBlock)(paragraph_transforms_name, attributes);
30593      }
30594  
30595    }]
30596  };
30597  /* harmony default export */ var paragraph_transforms = (paragraph_transforms_transforms);
30598  
30599  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
30600  /**
30601   * External dependencies
30602   */
30603  
30604  /**
30605   * WordPress dependencies
30606   */
30607  
30608  
30609  
30610  /**
30611   * Internal dependencies
30612   */
30613  
30614  
30615  
30616  const paragraph_metadata = {
30617    $schema: "https://schemas.wp.org/trunk/block.json",
30618    apiVersion: 2,
30619    name: "core/paragraph",
30620    title: "Paragraph",
30621    category: "text",
30622    description: "Start with the basic building block of all narrative.",
30623    keywords: ["text"],
30624    textdomain: "default",
30625    attributes: {
30626      align: {
30627        type: "string"
30628      },
30629      content: {
30630        type: "string",
30631        source: "html",
30632        selector: "p",
30633        "default": "",
30634        __experimentalRole: "content"
30635      },
30636      dropCap: {
30637        type: "boolean",
30638        "default": false
30639      },
30640      placeholder: {
30641        type: "string"
30642      },
30643      direction: {
30644        type: "string",
30645        "enum": ["ltr", "rtl"]
30646      }
30647    },
30648    supports: {
30649      anchor: true,
30650      className: false,
30651      color: {
30652        link: true,
30653        __experimentalDefaultControls: {
30654          background: true,
30655          text: true
30656        }
30657      },
30658      typography: {
30659        fontSize: true,
30660        lineHeight: true,
30661        __experimentalFontStyle: true,
30662        __experimentalFontWeight: true,
30663        __experimentalLetterSpacing: true,
30664        __experimentalTextTransform: true,
30665        __experimentalDefaultControls: {
30666          fontSize: true
30667        }
30668      },
30669      __experimentalSelector: "p",
30670      __unstablePasteTextInline: true
30671    },
30672    editorStyle: "wp-block-paragraph-editor",
30673    style: "wp-block-paragraph"
30674  };
30675  
30676  
30677  const {
30678    name: paragraph_name
30679  } = paragraph_metadata;
30680  
30681  const paragraph_settings = {
30682    icon: library_paragraph,
30683    example: {
30684      attributes: {
30685        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.'),
30686        style: {
30687          typography: {
30688            fontSize: 28
30689          }
30690        },
30691        dropCap: true
30692      }
30693    },
30694  
30695    __experimentalLabel(attributes, _ref) {
30696      let {
30697        context
30698      } = _ref;
30699  
30700      if (context === 'accessibility') {
30701        const {
30702          content
30703        } = attributes;
30704        return (0,external_lodash_namespaceObject.isEmpty)(content) ? (0,external_wp_i18n_namespaceObject.__)('Empty') : content;
30705      }
30706    },
30707  
30708    transforms: paragraph_transforms,
30709    deprecated: paragraph_deprecated,
30710  
30711    merge(attributes, attributesToMerge) {
30712      return {
30713        content: (attributes.content || '') + (attributesToMerge.content || '')
30714      };
30715    },
30716  
30717    edit: paragraph_edit,
30718    save: paragraph_save_save
30719  };
30720  
30721  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/edit.js
30722  
30723  
30724  /**
30725   * External dependencies
30726   */
30727  
30728  
30729  /**
30730   * WordPress dependencies
30731   */
30732  
30733  
30734  
30735  
30736  
30737  
30738  
30739  function PostAuthorEdit(_ref) {
30740    let {
30741      isSelected,
30742      context: {
30743        postType,
30744        postId,
30745        queryId
30746      },
30747      attributes,
30748      setAttributes
30749    } = _ref;
30750    const isDescendentOfQueryLoop = Number.isFinite(queryId);
30751    const {
30752      authorId,
30753      authorDetails,
30754      authors
30755    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
30756      var _getEditedEntityRecor;
30757  
30758      const {
30759        getEditedEntityRecord,
30760        getUser,
30761        getUsers
30762      } = select(external_wp_coreData_namespaceObject.store);
30763  
30764      const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author;
30765  
30766      return {
30767        authorId: _authorId,
30768        authorDetails: _authorId ? getUser(_authorId) : null,
30769        authors: getUsers({
30770          who: 'authors'
30771        })
30772      };
30773    }, [postType, postId]);
30774    const {
30775      editEntityRecord
30776    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
30777    const {
30778      textAlign,
30779      showAvatar,
30780      showBio,
30781      byline
30782    } = attributes;
30783    const avatarSizes = [];
30784  
30785    if (authorDetails) {
30786      (0,external_lodash_namespaceObject.forEach)(authorDetails.avatar_urls, (url, size) => {
30787        avatarSizes.push({
30788          value: size,
30789          label: `$size} x $size}`
30790        });
30791      });
30792    }
30793  
30794    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
30795      className: classnames_default()({
30796        [`has-text-align-$textAlign}`]: textAlign
30797      })
30798    });
30799    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, {
30800      title: (0,external_wp_i18n_namespaceObject.__)('Author Settings')
30801    }, !isDescendentOfQueryLoop && !!(authors !== null && authors !== void 0 && authors.length) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
30802      label: (0,external_wp_i18n_namespaceObject.__)('Author'),
30803      value: authorId,
30804      options: authors.map(_ref2 => {
30805        let {
30806          id,
30807          name
30808        } = _ref2;
30809        return {
30810          value: id,
30811          label: name
30812        };
30813      }),
30814      onChange: nextAuthorId => {
30815        editEntityRecord('postType', postType, postId, {
30816          author: nextAuthorId
30817        });
30818      }
30819    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
30820      label: (0,external_wp_i18n_namespaceObject.__)('Show avatar'),
30821      checked: showAvatar,
30822      onChange: () => setAttributes({
30823        showAvatar: !showAvatar
30824      })
30825    }), showAvatar && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
30826      label: (0,external_wp_i18n_namespaceObject.__)('Avatar size'),
30827      value: attributes.avatarSize,
30828      options: avatarSizes,
30829      onChange: size => {
30830        setAttributes({
30831          avatarSize: Number(size)
30832        });
30833      }
30834    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
30835      label: (0,external_wp_i18n_namespaceObject.__)('Show bio'),
30836      checked: showBio,
30837      onChange: () => setAttributes({
30838        showBio: !showBio
30839      })
30840    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
30841      group: "block"
30842    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
30843      value: textAlign,
30844      onChange: nextAlign => {
30845        setAttributes({
30846          textAlign: nextAlign
30847        });
30848      }
30849    })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, showAvatar && authorDetails && (0,external_wp_element_namespaceObject.createElement)("div", {
30850      className: "wp-block-post-author__avatar"
30851    }, (0,external_wp_element_namespaceObject.createElement)("img", {
30852      width: attributes.avatarSize,
30853      src: authorDetails.avatar_urls[attributes.avatarSize],
30854      alt: authorDetails.name
30855    })), (0,external_wp_element_namespaceObject.createElement)("div", {
30856      className: "wp-block-post-author__content"
30857    }, (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(byline) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
30858      className: "wp-block-post-author__byline",
30859      multiline: false,
30860      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post author byline text'),
30861      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write byline…'),
30862      value: byline,
30863      onChange: value => setAttributes({
30864        byline: value
30865      })
30866    }), (0,external_wp_element_namespaceObject.createElement)("p", {
30867      className: "wp-block-post-author__name"
30868    }, (authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.name) || (0,external_wp_i18n_namespaceObject.__)('Post Author')), showBio && (0,external_wp_element_namespaceObject.createElement)("p", {
30869      className: "wp-block-post-author__bio"
30870    }, authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.description))));
30871  }
30872  
30873  /* harmony default export */ var post_author_edit = (PostAuthorEdit);
30874  
30875  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-author.js
30876  
30877  
30878  /**
30879   * WordPress dependencies
30880   */
30881  
30882  const postAuthor = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
30883    viewBox: "0 0 24 24",
30884    xmlns: "http://www.w3.org/2000/svg"
30885  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
30886    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",
30887    fillRule: "evenodd",
30888    clipRule: "evenodd"
30889  }));
30890  /* harmony default export */ var post_author = (postAuthor);
30891  
30892  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/index.js
30893  /**
30894   * Internal dependencies
30895   */
30896  const post_author_metadata = {
30897    $schema: "https://schemas.wp.org/trunk/block.json",
30898    apiVersion: 2,
30899    name: "core/post-author",
30900    title: "Post Author",
30901    category: "theme",
30902    description: "Display post author details such as name, avatar, and bio.",
30903    textdomain: "default",
30904    attributes: {
30905      textAlign: {
30906        type: "string"
30907      },
30908      avatarSize: {
30909        type: "number",
30910        "default": 48
30911      },
30912      showAvatar: {
30913        type: "boolean",
30914        "default": true
30915      },
30916      showBio: {
30917        type: "boolean"
30918      },
30919      byline: {
30920        type: "string"
30921      }
30922    },
30923    usesContext: ["postType", "postId", "queryId"],
30924    supports: {
30925      html: false,
30926      spacing: {
30927        margin: true,
30928        padding: true
30929      },
30930      typography: {
30931        fontSize: true,
30932        lineHeight: true,
30933        __experimentalFontStyle: true,
30934        __experimentalFontWeight: true,
30935        __experimentalLetterSpacing: true,
30936        __experimentalTextTransform: true,
30937        __experimentalDefaultControls: {
30938          fontSize: true
30939        }
30940      },
30941      color: {
30942        gradients: true,
30943        link: true,
30944        __experimentalDuotone: ".wp-block-post-author__avatar img",
30945        __experimentalDefaultControls: {
30946          background: true,
30947          text: true
30948        }
30949      }
30950    },
30951    editorStyle: "wp-block-post-author-editor",
30952    style: "wp-block-post-author"
30953  };
30954  
30955  /**
30956   * WordPress dependencies
30957   */
30958  
30959  
30960  const {
30961    name: post_author_name
30962  } = post_author_metadata;
30963  
30964  const post_author_settings = {
30965    icon: post_author,
30966    edit: post_author_edit
30967  };
30968  
30969  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/edit.js
30970  
30971  
30972  /**
30973   * External dependencies
30974   */
30975  
30976  /**
30977   * WordPress dependencies
30978   */
30979  
30980  
30981  
30982  
30983  
30984  
30985  function PostAuthorBiographyEdit(_ref) {
30986    let {
30987      context: {
30988        postType,
30989        postId
30990      },
30991      attributes: {
30992        textAlign
30993      },
30994      setAttributes
30995    } = _ref;
30996    const {
30997      authorDetails
30998    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
30999      var _getEditedEntityRecor;
31000  
31001      const {
31002        getEditedEntityRecord,
31003        getUser
31004      } = select(external_wp_coreData_namespaceObject.store);
31005  
31006      const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author;
31007  
31008      return {
31009        authorDetails: _authorId ? getUser(_authorId) : null
31010      };
31011    }, [postType, postId]);
31012    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31013      className: classnames_default()({
31014        [`has-text-align-$textAlign}`]: textAlign
31015      })
31016    });
31017  
31018    const displayAuthorBiography = (authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.description) || (0,external_wp_i18n_namespaceObject.__)('Author Biography');
31019  
31020    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
31021      group: "block"
31022    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
31023      value: textAlign,
31024      onChange: nextAlign => {
31025        setAttributes({
31026          textAlign: nextAlign
31027        });
31028      }
31029    })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, " ", displayAuthorBiography, " "));
31030  }
31031  
31032  /* harmony default export */ var post_author_biography_edit = (PostAuthorBiographyEdit);
31033  
31034  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
31035  /**
31036   * Internal dependencies
31037   */
31038  const post_author_biography_metadata = {
31039    $schema: "https://schemas.wp.org/trunk/block.json",
31040    apiVersion: 2,
31041    name: "core/post-author-biography",
31042    title: "Post Author Biography",
31043    category: "theme",
31044    description: "The author biography.",
31045    textdomain: "default",
31046    attributes: {
31047      textAlign: {
31048        type: "string"
31049      }
31050    },
31051    usesContext: ["postType", "postId"],
31052    supports: {
31053      spacing: {
31054        margin: true,
31055        padding: true
31056      },
31057      color: {
31058        gradients: true,
31059        link: true,
31060        __experimentalDefaultControls: {
31061          background: true,
31062          text: true
31063        }
31064      },
31065      typography: {
31066        fontSize: true,
31067        lineHeight: true,
31068        __experimentalFontFamily: true,
31069        __experimentalFontWeight: true,
31070        __experimentalFontStyle: true,
31071        __experimentalTextTransform: true,
31072        __experimentalLetterSpacing: true,
31073        __experimentalDefaultControls: {
31074          fontSize: true
31075        }
31076      }
31077    }
31078  };
31079  
31080  /**
31081   * WordPress dependencies
31082   */
31083  
31084  
31085  const {
31086    name: post_author_biography_name
31087  } = post_author_biography_metadata;
31088  
31089  const post_author_biography_settings = {
31090    icon: post_author,
31091    edit: post_author_biography_edit
31092  };
31093  
31094  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments/edit.js
31095  
31096  
31097  /**
31098   * External dependencies
31099   */
31100  
31101  /**
31102   * WordPress dependencies
31103   */
31104  
31105  
31106  
31107  
31108  
31109  
31110  function PostCommentsEdit(_ref) {
31111    let {
31112      attributes: {
31113        textAlign
31114      },
31115      setAttributes,
31116      context: {
31117        postType,
31118        postId
31119      }
31120    } = _ref;
31121    let [postTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
31122    postTitle = postTitle || (0,external_wp_i18n_namespaceObject.__)('Post Title');
31123    const [commentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId);
31124    const {
31125      avatarURL,
31126      defaultCommentStatus
31127    } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings);
31128    const isSiteEditor = postType === undefined || postId === undefined;
31129    const postTypeSupportsComments = (0,external_wp_data_namespaceObject.useSelect)(select => {
31130      var _select$getPostType;
31131  
31132      return postType ? !!((_select$getPostType = select(external_wp_coreData_namespaceObject.store).getPostType(postType)) !== null && _select$getPostType !== void 0 && _select$getPostType.supports.comments) : false;
31133    });
31134  
31135    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.');
31136  
31137    let showPlacholder = true;
31138  
31139    if (!isSiteEditor && 'open' !== commentStatus) {
31140      if ('closed' === commentStatus) {
31141        warning = (0,external_wp_i18n_namespaceObject.sprintf)(
31142        /* translators: 1: Post type (i.e. "post", "page") */
31143        (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments to this %s are not allowed.'), postType);
31144        showPlacholder = false;
31145      } else if (!postTypeSupportsComments) {
31146        warning = (0,external_wp_i18n_namespaceObject.sprintf)(
31147        /* translators: 1: Post type (i.e. "post", "page") */
31148        (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments for this post type (%s) are not enabled.'), postType);
31149        showPlacholder = false;
31150      } else if ('open' !== defaultCommentStatus) {
31151        warning = (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments are not enabled.');
31152        showPlacholder = false;
31153      }
31154    }
31155  
31156    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31157      className: classnames_default()({
31158        [`has-text-align-$textAlign}`]: textAlign
31159      })
31160    });
31161    const disabledRef = (0,external_wp_compose_namespaceObject.__experimentalUseDisabled)();
31162    const textareaId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsEdit);
31163    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
31164      group: "block"
31165    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
31166      value: textAlign,
31167      onChange: nextAlign => {
31168        setAttributes({
31169          textAlign: nextAlign
31170        });
31171      }
31172    })), (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", {
31173      className: "wp-block-post-comments__placeholder",
31174      ref: disabledRef
31175    }, (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('One response to'), " \u201C", postTitle, "\u201D"), (0,external_wp_element_namespaceObject.createElement)("div", {
31176      className: "navigation"
31177    }, (0,external_wp_element_namespaceObject.createElement)("div", {
31178      className: "alignleft"
31179    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31180      href: "#top"
31181    }, "\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments'))), (0,external_wp_element_namespaceObject.createElement)("div", {
31182      className: "alignright"
31183    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31184      href: "#top"
31185    }, (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"))), (0,external_wp_element_namespaceObject.createElement)("ol", {
31186      className: "commentlist"
31187    }, (0,external_wp_element_namespaceObject.createElement)("li", {
31188      className: "comment even thread-even depth-1"
31189    }, (0,external_wp_element_namespaceObject.createElement)("article", {
31190      className: "comment-body"
31191    }, (0,external_wp_element_namespaceObject.createElement)("footer", {
31192      className: "comment-meta"
31193    }, (0,external_wp_element_namespaceObject.createElement)("div", {
31194      className: "comment-author vcard"
31195    }, (0,external_wp_element_namespaceObject.createElement)("img", {
31196      alt: "Commenter Avatar",
31197      src: avatarURL,
31198      className: "avatar avatar-32 photo",
31199      height: "32",
31200      width: "32",
31201      loading: "lazy"
31202    }), (0,external_wp_element_namespaceObject.createElement)("b", {
31203      className: "fn"
31204    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31205      href: "#top",
31206      className: "url"
31207    }, (0,external_wp_i18n_namespaceObject.__)('A WordPress Commenter'))), ' ', (0,external_wp_element_namespaceObject.createElement)("span", {
31208      className: "says"
31209    }, (0,external_wp_i18n_namespaceObject.__)('says'), ":")), (0,external_wp_element_namespaceObject.createElement)("div", {
31210      className: "comment-metadata"
31211    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31212      href: "#top"
31213    }, (0,external_wp_element_namespaceObject.createElement)("time", {
31214      dateTime: "2000-01-01T00:00:00+00:00"
31215    }, (0,external_wp_i18n_namespaceObject.__)('January 1, 2000 at 00:00 am'))), ' ', (0,external_wp_element_namespaceObject.createElement)("span", {
31216      className: "edit-link"
31217    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31218      className: "comment-edit-link",
31219      href: "#top"
31220    }, (0,external_wp_i18n_namespaceObject.__)('Edit'))))), (0,external_wp_element_namespaceObject.createElement)("div", {
31221      className: "comment-content"
31222    }, (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_i18n_namespaceObject.__)('Commenter avatars come from'), ' ', (0,external_wp_element_namespaceObject.createElement)("a", {
31223      href: "https://gravatar.com/"
31224    }, "Gravatar"), ".")), (0,external_wp_element_namespaceObject.createElement)("div", {
31225      className: "reply"
31226    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31227      className: "comment-reply-link",
31228      href: "#top",
31229      "aria-label": "Reply to A WordPress Commenter"
31230    }, (0,external_wp_i18n_namespaceObject.__)('Reply')))))), (0,external_wp_element_namespaceObject.createElement)("div", {
31231      className: "navigation"
31232    }, (0,external_wp_element_namespaceObject.createElement)("div", {
31233      className: "alignleft"
31234    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31235      href: "#top"
31236    }, "\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments'))), (0,external_wp_element_namespaceObject.createElement)("div", {
31237      className: "alignright"
31238    }, (0,external_wp_element_namespaceObject.createElement)("a", {
31239      href: "#top"
31240    }, (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"))), (0,external_wp_element_namespaceObject.createElement)("div", {
31241      className: "comment-respond"
31242    }, (0,external_wp_element_namespaceObject.createElement)("h3", {
31243      className: "comment-reply-title"
31244    }, (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')), (0,external_wp_element_namespaceObject.createElement)("form", {
31245      className: "comment-form",
31246      noValidate: true
31247    }, (0,external_wp_element_namespaceObject.createElement)("p", {
31248      className: "comment-form-comment"
31249    }, (0,external_wp_element_namespaceObject.createElement)("label", {
31250      htmlFor: `comment-$textareaId}`
31251    }, (0,external_wp_i18n_namespaceObject.__)('Comment'), ' ', (0,external_wp_element_namespaceObject.createElement)("span", {
31252      className: "required"
31253    }, "*")), (0,external_wp_element_namespaceObject.createElement)("textarea", {
31254      id: `comment-$textareaId}`,
31255      name: "comment",
31256      cols: "45",
31257      rows: "8",
31258      required: true
31259    })), (0,external_wp_element_namespaceObject.createElement)("p", {
31260      className: "form-submit wp-block-button"
31261    }, (0,external_wp_element_namespaceObject.createElement)("input", {
31262      name: "submit",
31263      type: "submit",
31264      className: "submit wp-block-button__link",
31265      value: (0,external_wp_i18n_namespaceObject.__)('Post Comment')
31266    })))))));
31267  }
31268  
31269  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments/index.js
31270  /**
31271   * WordPress dependencies
31272   */
31273  
31274  /**
31275   * Internal dependencies
31276   */
31277  
31278  const post_comments_metadata = {
31279    $schema: "https://schemas.wp.org/trunk/block.json",
31280    apiVersion: 2,
31281    name: "core/post-comments",
31282    title: "Post Comments (deprecated)",
31283    category: "theme",
31284    description: "This block is deprecated. Please use the Comments Query Loop block instead.",
31285    textdomain: "default",
31286    attributes: {
31287      textAlign: {
31288        type: "string"
31289      }
31290    },
31291    usesContext: ["postId", "postType"],
31292    supports: {
31293      html: false,
31294      align: ["wide", "full"],
31295      typography: {
31296        fontSize: true,
31297        lineHeight: true,
31298        __experimentalFontStyle: true,
31299        __experimentalFontWeight: true,
31300        __experimentalLetterSpacing: true,
31301        __experimentalTextTransform: true,
31302        __experimentalDefaultControls: {
31303          fontSize: true
31304        }
31305      },
31306      color: {
31307        gradients: true,
31308        link: true,
31309        __experimentalDefaultControls: {
31310          background: true,
31311          text: true
31312        }
31313      },
31314      inserter: false
31315    },
31316    style: ["wp-block-post-comments", "wp-block-buttons", "wp-block-button"],
31317    editorStyle: "wp-block-post-comments-editor"
31318  };
31319  
31320  const {
31321    name: post_comments_name
31322  } = post_comments_metadata;
31323  
31324  const post_comments_settings = {
31325    icon: post_comments,
31326    edit: PostCommentsEdit
31327  };
31328  
31329  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments-form.js
31330  
31331  
31332  /**
31333   * WordPress dependencies
31334   */
31335  
31336  const postCommentsForm = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
31337    xmlns: "http://www.w3.org/2000/svg",
31338    viewBox: "0 0 24 24"
31339  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
31340    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"
31341  }));
31342  /* harmony default export */ var post_comments_form = (postCommentsForm);
31343  
31344  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/edit.js
31345  
31346  
31347  /**
31348   * External dependencies
31349   */
31350  
31351  /**
31352   * WordPress dependencies
31353   */
31354  
31355  
31356  
31357  
31358  
31359  function PostCommentsFormEdit(_ref) {
31360    let {
31361      attributes,
31362      context,
31363      setAttributes
31364    } = _ref;
31365    const {
31366      textAlign
31367    } = attributes;
31368    const {
31369      postId,
31370      postType
31371    } = context;
31372    const [commentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId);
31373    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31374      className: classnames_default()({
31375        [`has-text-align-$textAlign}`]: textAlign
31376      })
31377    });
31378    const isInSiteEditor = postType === undefined || postId === undefined;
31379    const disabledFormRef = (0,external_wp_compose_namespaceObject.__experimentalUseDisabled)();
31380    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsFormEdit);
31381    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
31382      group: "block"
31383    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
31384      value: textAlign,
31385      onChange: nextAlign => {
31386        setAttributes({
31387          textAlign: nextAlign
31388        });
31389      }
31390    })), (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)(
31391    /* translators: 1: Post type (i.e. "post", "page") */
31392    (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", {
31393      noValidate: true,
31394      className: "comment-form",
31395      ref: disabledFormRef
31396    }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("label", {
31397      htmlFor: `comment-$instanceId}`
31398    }, (0,external_wp_i18n_namespaceObject.__)('Comment')), (0,external_wp_element_namespaceObject.createElement)("textarea", {
31399      id: `comment-$instanceId}`,
31400      name: "comment",
31401      cols: "45",
31402      rows: "8"
31403    })), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("input", {
31404      name: "submit",
31405      className: "submit wp-block-button__link",
31406      label: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
31407      value: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
31408      readOnly: true
31409    }))))));
31410  }
31411  
31412  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
31413  /**
31414   * WordPress dependencies
31415   */
31416  
31417  /**
31418   * Internal dependencies
31419   */
31420  
31421  const post_comments_form_metadata = {
31422    $schema: "https://schemas.wp.org/trunk/block.json",
31423    apiVersion: 2,
31424    name: "core/post-comments-form",
31425    title: "Post Comments Form",
31426    category: "theme",
31427    description: "Display a post's comments form.",
31428    textdomain: "default",
31429    attributes: {
31430      textAlign: {
31431        type: "string"
31432      }
31433    },
31434    usesContext: ["postId", "postType"],
31435    supports: {
31436      html: false,
31437      color: {
31438        gradients: true,
31439        link: true,
31440        __experimentalDefaultControls: {
31441          background: true,
31442          text: true
31443        }
31444      },
31445      typography: {
31446        fontSize: true,
31447        lineHeight: true,
31448        __experimentalFontStyle: true,
31449        __experimentalFontWeight: true,
31450        __experimentalLetterSpacing: true,
31451        __experimentalTextTransform: true,
31452        __experimentalDefaultControls: {
31453          fontSize: true
31454        }
31455      }
31456    },
31457    editorStyle: "wp-block-post-comments-form-editor",
31458    style: ["wp-block-post-comments-form", "wp-block-buttons", "wp-block-button"]
31459  };
31460  
31461  const {
31462    name: post_comments_form_name
31463  } = post_comments_form_metadata;
31464  
31465  const post_comments_form_settings = {
31466    icon: post_comments_form,
31467    edit: PostCommentsFormEdit
31468  };
31469  
31470  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-content.js
31471  
31472  
31473  /**
31474   * WordPress dependencies
31475   */
31476  
31477  const postContent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
31478    xmlns: "https://www.w3.org/2000/svg",
31479    viewBox: "0 0 24 24"
31480  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
31481    d: "M4 20h16v-1.5H4V20zm0-4.8h16v-1.5H4v1.5zm0-6.4v1.5h16V8.8H4zM16 4H4v1.5h12V4z"
31482  }));
31483  /* harmony default export */ var post_content = (postContent);
31484  
31485  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/hooks.js
31486  /**
31487   * WordPress dependencies
31488   */
31489  
31490  
31491  /**
31492   * Returns whether the current user can edit the given entity.
31493   *
31494   * @param {string} kind     Entity kind.
31495   * @param {string} name     Entity name.
31496   * @param {string} recordId Record's id.
31497   */
31498  
31499  function useCanEditEntity(kind, name, recordId) {
31500    return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).canUserEditEntityRecord(kind, name, recordId), [kind, name, recordId]);
31501  }
31502  /* harmony default export */ var hooks = ({
31503    useCanEditEntity
31504  });
31505  
31506  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/edit.js
31507  
31508  
31509  
31510  /**
31511   * WordPress dependencies
31512   */
31513  
31514  
31515  
31516  
31517  /**
31518   * Internal dependencies
31519   */
31520  
31521  
31522  
31523  function ReadOnlyContent(_ref) {
31524    let {
31525      userCanEdit,
31526      postType,
31527      postId
31528    } = _ref;
31529    const [,, content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
31530    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
31531    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, {
31532      dangerouslySetInnerHTML: {
31533        __html: content === null || content === void 0 ? void 0 : content.rendered
31534      }
31535    }));
31536  }
31537  
31538  function EditableContent(_ref2) {
31539    let {
31540      layout,
31541      context = {}
31542    } = _ref2;
31543    const {
31544      postType,
31545      postId
31546    } = context;
31547    const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
31548      var _getSettings;
31549  
31550      const {
31551        getSettings
31552      } = select(external_wp_blockEditor_namespaceObject.store);
31553      return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout;
31554    }, []);
31555    const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
31556    const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
31557    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
31558      id: postId
31559    });
31560    const props = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)((0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31561      className: 'entry-content'
31562    }), {
31563      value: blocks,
31564      onInput,
31565      onChange,
31566      __experimentalLayout: themeSupportsLayout ? usedLayout : undefined
31567    });
31568    return (0,external_wp_element_namespaceObject.createElement)("div", props);
31569  }
31570  
31571  function Content(props) {
31572    const {
31573      context: {
31574        queryId,
31575        postType,
31576        postId
31577      } = {}
31578    } = props;
31579    const isDescendentOfQueryLoop = Number.isFinite(queryId);
31580    const userCanEdit = useCanEditEntity('postType', postType, postId);
31581    const isEditable = userCanEdit && !isDescendentOfQueryLoop;
31582    return isEditable ? (0,external_wp_element_namespaceObject.createElement)(EditableContent, props) : (0,external_wp_element_namespaceObject.createElement)(ReadOnlyContent, {
31583      userCanEdit: userCanEdit,
31584      postType: postType,
31585      postId: postId
31586    });
31587  }
31588  
31589  function edit_Placeholder() {
31590    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
31591    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.')));
31592  }
31593  
31594  function RecursionError() {
31595    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
31596    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.')));
31597  }
31598  
31599  function PostContentEdit(_ref3) {
31600    let {
31601      context,
31602      attributes
31603    } = _ref3;
31604    const {
31605      postId: contextPostId,
31606      postType: contextPostType
31607    } = context;
31608    const {
31609      layout = {}
31610    } = attributes;
31611    const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(contextPostId);
31612  
31613    if (contextPostId && contextPostType && hasAlreadyRendered) {
31614      return (0,external_wp_element_namespaceObject.createElement)(RecursionError, null);
31615    }
31616  
31617    return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, contextPostId && contextPostType ? (0,external_wp_element_namespaceObject.createElement)(Content, {
31618      context: context,
31619      layout: layout
31620    }) : (0,external_wp_element_namespaceObject.createElement)(edit_Placeholder, null));
31621  }
31622  
31623  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/index.js
31624  /**
31625   * WordPress dependencies
31626   */
31627  
31628  /**
31629   * Internal dependencies
31630   */
31631  
31632  const post_content_metadata = {
31633    $schema: "https://schemas.wp.org/trunk/block.json",
31634    apiVersion: 2,
31635    name: "core/post-content",
31636    title: "Post Content",
31637    category: "theme",
31638    description: "Displays the contents of a post or page.",
31639    textdomain: "default",
31640    usesContext: ["postId", "postType", "queryId"],
31641    supports: {
31642      align: ["wide", "full"],
31643      html: false,
31644      __experimentalLayout: true
31645    },
31646    editorStyle: "wp-block-post-content-editor"
31647  };
31648  
31649  const {
31650    name: post_content_name
31651  } = post_content_metadata;
31652  
31653  const post_content_settings = {
31654    icon: post_content,
31655    edit: PostContentEdit
31656  };
31657  
31658  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/edit.js
31659  
31660  
31661  /**
31662   * External dependencies
31663   */
31664  
31665  /**
31666   * WordPress dependencies
31667   */
31668  
31669  
31670  
31671  
31672  
31673  
31674  
31675  
31676  
31677  
31678  function PostDateEdit(_ref) {
31679    let {
31680      attributes: {
31681        textAlign,
31682        format,
31683        isLink
31684      },
31685      context: {
31686        postId,
31687        postType: postTypeSlug,
31688        queryId
31689      },
31690      setAttributes
31691    } = _ref;
31692    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31693      className: classnames_default()({
31694        [`has-text-align-$textAlign}`]: textAlign
31695      })
31696    });
31697    const timeRef = (0,external_wp_element_namespaceObject.useRef)();
31698    const isDescendentOfQueryLoop = Number.isFinite(queryId);
31699    const dateSettings = (0,external_wp_date_namespaceObject.__experimentalGetSettings)();
31700    const [siteFormat = dateSettings.formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
31701    const [siteTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format');
31702    const [date, setDate] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'date', postId);
31703    const postType = (0,external_wp_data_namespaceObject.useSelect)(select => postTypeSlug ? select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug) : null, [postTypeSlug]);
31704    let postDate = date ? (0,external_wp_element_namespaceObject.createElement)("time", {
31705      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
31706      ref: timeRef
31707    }, (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)) : (0,external_wp_i18n_namespaceObject.__)('Post Date');
31708  
31709    if (isLink && date) {
31710      postDate = (0,external_wp_element_namespaceObject.createElement)("a", {
31711        href: "#post-date-pseudo-link",
31712        onClick: event => event.preventDefault()
31713      }, postDate);
31714    }
31715  
31716    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
31717      group: "block"
31718    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
31719      value: textAlign,
31720      onChange: nextAlign => {
31721        setAttributes({
31722          textAlign: nextAlign
31723        });
31724      }
31725    }), 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, {
31726      popoverProps: {
31727        anchorRef: timeRef.current
31728      },
31729      renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DateTimePicker, {
31730        currentDate: date,
31731        onChange: setDate,
31732        is12Hour: is12HourFormat(siteTimeFormat)
31733      }),
31734      renderToggle: _ref2 => {
31735        let {
31736          isOpen,
31737          onToggle
31738        } = _ref2;
31739  
31740        const openOnArrowDown = event => {
31741          if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
31742            event.preventDefault();
31743            onToggle();
31744          }
31745        };
31746  
31747        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
31748          "aria-expanded": isOpen,
31749          icon: library_edit,
31750          title: (0,external_wp_i18n_namespaceObject.__)('Change Date'),
31751          onClick: onToggle,
31752          onKeyDown: openOnArrowDown
31753        });
31754      }
31755    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
31756      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
31757    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
31758      format: format,
31759      defaultFormat: siteFormat,
31760      onChange: nextFormat => setAttributes({
31761        format: nextFormat
31762      })
31763    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
31764      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".
31765      (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
31766      onChange: () => setAttributes({
31767        isLink: !isLink
31768      }),
31769      checked: isLink
31770    }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, postDate));
31771  }
31772  function is12HourFormat(format) {
31773    // To know if the time format is a 12 hour time, look for any of the 12 hour
31774    // format characters: 'a', 'A', 'g', and 'h'. The character must be
31775    // unescaped, i.e. not preceded by a '\'. Coincidentally, 'aAgh' is how I
31776    // feel when working with regular expressions.
31777    // https://www.php.net/manual/en/datetime.format.php
31778    return /(?:^|[^\\])[aAgh]/.test(format);
31779  }
31780  
31781  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/deprecated.js
31782  /**
31783   * Internal dependencies
31784   */
31785  
31786  const post_date_deprecated_v1 = {
31787    attributes: {
31788      textAlign: {
31789        type: 'string'
31790      },
31791      format: {
31792        type: 'string'
31793      },
31794      isLink: {
31795        type: 'boolean',
31796        default: false
31797      }
31798    },
31799    supports: {
31800      html: false,
31801      color: {
31802        gradients: true,
31803        link: true
31804      },
31805      typography: {
31806        fontSize: true,
31807        lineHeight: true,
31808        __experimentalFontFamily: true,
31809        __experimentalFontWeight: true,
31810        __experimentalFontStyle: true,
31811        __experimentalTextTransform: true,
31812        __experimentalLetterSpacing: true
31813      }
31814    },
31815  
31816    save() {
31817      return null;
31818    },
31819  
31820    migrate: migrate_font_family,
31821  
31822    isEligible(_ref) {
31823      var _style$typography;
31824  
31825      let {
31826        style
31827      } = _ref;
31828      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
31829    }
31830  
31831  };
31832  /**
31833   * New deprecations need to be placed first
31834   * for them to have higher priority.
31835   *
31836   * Old deprecations may need to be updated as well.
31837   *
31838   * See block-deprecation.md
31839   */
31840  
31841  /* harmony default export */ var post_date_deprecated = ([post_date_deprecated_v1]);
31842  
31843  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/index.js
31844  /**
31845   * WordPress dependencies
31846   */
31847  
31848  /**
31849   * Internal dependencies
31850   */
31851  
31852  const post_date_metadata = {
31853    $schema: "https://schemas.wp.org/trunk/block.json",
31854    apiVersion: 2,
31855    name: "core/post-date",
31856    title: "Post Date",
31857    category: "theme",
31858    description: "Add the date of this post.",
31859    textdomain: "default",
31860    attributes: {
31861      textAlign: {
31862        type: "string"
31863      },
31864      format: {
31865        type: "string"
31866      },
31867      isLink: {
31868        type: "boolean",
31869        "default": false
31870      }
31871    },
31872    usesContext: ["postId", "postType", "queryId"],
31873    supports: {
31874      html: false,
31875      color: {
31876        gradients: true,
31877        link: true,
31878        __experimentalDefaultControls: {
31879          background: true,
31880          text: true,
31881          link: true
31882        }
31883      },
31884      typography: {
31885        fontSize: true,
31886        lineHeight: true,
31887        __experimentalFontFamily: true,
31888        __experimentalFontWeight: true,
31889        __experimentalFontStyle: true,
31890        __experimentalTextTransform: true,
31891        __experimentalLetterSpacing: true,
31892        __experimentalDefaultControls: {
31893          fontSize: true
31894        }
31895      }
31896    }
31897  };
31898  
31899  
31900  const {
31901    name: post_date_name
31902  } = post_date_metadata;
31903  
31904  const post_date_settings = {
31905    icon: post_date,
31906    edit: PostDateEdit,
31907    deprecated: post_date_deprecated
31908  };
31909  
31910  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-excerpt.js
31911  
31912  
31913  /**
31914   * WordPress dependencies
31915   */
31916  
31917  const postExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
31918    xmlns: "http://www.w3.org/2000/svg",
31919    viewBox: "0 0 24 24"
31920  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
31921    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"
31922  }));
31923  /* harmony default export */ var post_excerpt = (postExcerpt);
31924  
31925  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/edit.js
31926  
31927  
31928  /**
31929   * External dependencies
31930   */
31931  
31932  /**
31933   * WordPress dependencies
31934   */
31935  
31936  
31937  
31938  
31939  
31940  
31941  /**
31942   * Internal dependencies
31943   */
31944  
31945  
31946  function PostExcerptEditor(_ref) {
31947    let {
31948      attributes: {
31949        textAlign,
31950        moreText,
31951        showMoreOnNewLine
31952      },
31953      setAttributes,
31954      isSelected,
31955      context: {
31956        postId,
31957        postType,
31958        queryId
31959      }
31960    } = _ref;
31961    const isDescendentOfQueryLoop = Number.isFinite(queryId);
31962    const userCanEdit = useCanEditEntity('postType', postType, postId);
31963    const isEditable = userCanEdit && !isDescendentOfQueryLoop;
31964    const [rawExcerpt, setExcerpt, {
31965      rendered: renderedExcerpt,
31966      protected: isProtected
31967    } = {}] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'excerpt', postId);
31968    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31969      className: classnames_default()({
31970        [`has-text-align-$textAlign}`]: textAlign
31971      })
31972    });
31973    /**
31974     * When excerpt is editable, strip the html tags from
31975     * rendered excerpt. This will be used if the entity's
31976     * excerpt has been produced from the content.
31977     */
31978  
31979    const strippedRenderedExcerpt = (0,external_wp_element_namespaceObject.useMemo)(() => {
31980      if (!renderedExcerpt) return '';
31981      const document = new window.DOMParser().parseFromString(renderedExcerpt, 'text/html');
31982      return document.body.textContent || document.body.innerText || '';
31983    }, [renderedExcerpt]);
31984  
31985    if (!postType || !postId) {
31986      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.')));
31987    }
31988  
31989    if (isProtected && !userCanEdit) {
31990      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.')));
31991    }
31992  
31993    const readMoreLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
31994      className: "wp-block-post-excerpt__more-link",
31995      tagName: "a",
31996      "aria-label": (0,external_wp_i18n_namespaceObject.__)('"Read more" link text'),
31997      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add "read more" link text'),
31998      value: moreText,
31999      onChange: newMoreText => setAttributes({
32000        moreText: newMoreText
32001      }),
32002      withoutInteractiveFormatting: true
32003    });
32004    const excerptClassName = classnames_default()('wp-block-post-excerpt__excerpt', {
32005      'is-inline': !showMoreOnNewLine
32006    });
32007    const excerptContent = isEditable ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
32008      className: excerptClassName,
32009      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post excerpt text'),
32010      value: rawExcerpt || strippedRenderedExcerpt || (isSelected ? '' : (0,external_wp_i18n_namespaceObject.__)('No post excerpt found')),
32011      onChange: setExcerpt,
32012      tagName: "p"
32013    }) : (0,external_wp_element_namespaceObject.createElement)("p", {
32014      className: excerptClassName
32015    }, strippedRenderedExcerpt || (0,external_wp_i18n_namespaceObject.__)('No post excerpt found'));
32016    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, {
32017      value: textAlign,
32018      onChange: newAlign => setAttributes({
32019        textAlign: newAlign
32020      })
32021    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
32022      title: (0,external_wp_i18n_namespaceObject.__)('Post Excerpt Settings')
32023    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
32024      label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
32025      checked: showMoreOnNewLine,
32026      onChange: newShowMoreOnNewLine => setAttributes({
32027        showMoreOnNewLine: newShowMoreOnNewLine
32028      })
32029    }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, excerptContent, !showMoreOnNewLine && ' ', showMoreOnNewLine ? (0,external_wp_element_namespaceObject.createElement)("p", {
32030      className: "wp-block-post-excerpt__more-text"
32031    }, readMoreLink) : readMoreLink));
32032  }
32033  
32034  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/transforms.js
32035  /**
32036   * WordPress dependencies
32037   */
32038  
32039  const post_excerpt_transforms_transforms = {
32040    from: [{
32041      type: 'block',
32042      blocks: ['core/post-content'],
32043      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-excerpt')
32044    }],
32045    to: [{
32046      type: 'block',
32047      blocks: ['core/post-content'],
32048      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content')
32049    }]
32050  };
32051  /* harmony default export */ var post_excerpt_transforms = (post_excerpt_transforms_transforms);
32052  
32053  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
32054  /**
32055   * WordPress dependencies
32056   */
32057  
32058  /**
32059   * Internal dependencies
32060   */
32061  
32062  const post_excerpt_metadata = {
32063    $schema: "https://schemas.wp.org/trunk/block.json",
32064    apiVersion: 2,
32065    name: "core/post-excerpt",
32066    title: "Post Excerpt",
32067    category: "theme",
32068    description: "Display a post's excerpt.",
32069    textdomain: "default",
32070    attributes: {
32071      textAlign: {
32072        type: "string"
32073      },
32074      moreText: {
32075        type: "string"
32076      },
32077      showMoreOnNewLine: {
32078        type: "boolean",
32079        "default": true
32080      }
32081    },
32082    usesContext: ["postId", "postType", "queryId"],
32083    supports: {
32084      html: false,
32085      color: {
32086        gradients: true,
32087        link: true,
32088        __experimentalDefaultControls: {
32089          background: true,
32090          text: true,
32091          link: true
32092        }
32093      },
32094      spacing: {
32095        margin: true,
32096        padding: true
32097      },
32098      typography: {
32099        fontSize: true,
32100        lineHeight: true,
32101        __experimentalFontStyle: true,
32102        __experimentalFontWeight: true,
32103        __experimentalLetterSpacing: true,
32104        __experimentalTextTransform: true,
32105        __experimentalDefaultControls: {
32106          fontSize: true
32107        }
32108      }
32109    },
32110    editorStyle: "wp-block-post-excerpt-editor",
32111    style: "wp-block-post-excerpt"
32112  };
32113  
32114  
32115  const {
32116    name: post_excerpt_name
32117  } = post_excerpt_metadata;
32118  
32119  const post_excerpt_settings = {
32120    icon: post_excerpt,
32121    transforms: post_excerpt_transforms,
32122    edit: PostExcerptEditor
32123  };
32124  
32125  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/dimension-controls.js
32126  
32127  
32128  /**
32129   * WordPress dependencies
32130   */
32131  
32132  
32133  
32134  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, {
32135    value: "cover",
32136    label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for Image dimension control')
32137  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
32138    value: "contain",
32139    label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for Image dimension control')
32140  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
32141    value: "fill",
32142    label: (0,external_wp_i18n_namespaceObject._x)('Fill', 'Scale option for Image dimension control')
32143  }));
32144  const DEFAULT_SCALE = 'cover';
32145  const DEFAULT_SIZE = 'full';
32146  const scaleHelp = {
32147    cover: (0,external_wp_i18n_namespaceObject.__)('Image is scaled and cropped to fill the entire space without being distorted.'),
32148    contain: (0,external_wp_i18n_namespaceObject.__)('Image is scaled to fill the space without clipping nor distorting.'),
32149    fill: (0,external_wp_i18n_namespaceObject.__)('Image will be stretched and distorted to completely fill the space.')
32150  };
32151  
32152  const DimensionControls = _ref => {
32153    let {
32154      clientId,
32155      attributes: {
32156        width,
32157        height,
32158        scale,
32159        sizeSlug
32160      },
32161      setAttributes,
32162      imageSizeOptions = []
32163    } = _ref;
32164    const defaultUnits = ['px', '%', 'vw', 'em', 'rem'];
32165    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
32166      availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || defaultUnits
32167    });
32168  
32169    const onDimensionChange = (dimension, nextValue) => {
32170      const parsedValue = parseFloat(nextValue);
32171      /**
32172       * If we have no value set and we change the unit,
32173       * we don't want to set the attribute, as it would
32174       * end up having the unit as value without any number.
32175       */
32176  
32177      if (isNaN(parsedValue) && nextValue) return;
32178      setAttributes({
32179        [dimension]: parsedValue < 0 ? '0' : nextValue
32180      });
32181    };
32182  
32183    const scaleLabel = (0,external_wp_i18n_namespaceObject._x)('Scale', 'Image scaling options');
32184  
32185    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
32186      __experimentalGroup: "dimensions"
32187    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32188      className: "single-column",
32189      hasValue: () => !!height,
32190      label: (0,external_wp_i18n_namespaceObject.__)('Height'),
32191      onDeselect: () => setAttributes({
32192        height: undefined
32193      }),
32194      resetAllFilter: () => ({
32195        height: undefined
32196      }),
32197      isShownByDefault: true,
32198      panelId: clientId
32199    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
32200      label: (0,external_wp_i18n_namespaceObject.__)('Height'),
32201      labelPosition: "top",
32202      value: height || '',
32203      min: 0,
32204      onChange: nextHeight => onDimensionChange('height', nextHeight),
32205      units: units
32206    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32207      className: "single-column",
32208      hasValue: () => !!width,
32209      label: (0,external_wp_i18n_namespaceObject.__)('Width'),
32210      onDeselect: () => setAttributes({
32211        width: undefined
32212      }),
32213      resetAllFilter: () => ({
32214        width: undefined
32215      }),
32216      isShownByDefault: true,
32217      panelId: clientId
32218    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
32219      label: (0,external_wp_i18n_namespaceObject.__)('Width'),
32220      labelPosition: "top",
32221      value: width || '',
32222      min: 0,
32223      onChange: nextWidth => onDimensionChange('width', nextWidth),
32224      units: units
32225    })), !!height && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32226      hasValue: () => !!scale && scale !== DEFAULT_SCALE,
32227      label: scaleLabel,
32228      onDeselect: () => setAttributes({
32229        scale: DEFAULT_SCALE
32230      }),
32231      resetAllFilter: () => ({
32232        scale: DEFAULT_SCALE
32233      }),
32234      isShownByDefault: true,
32235      panelId: clientId
32236    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
32237      label: scaleLabel,
32238      value: scale,
32239      help: scaleHelp[scale],
32240      onChange: value => setAttributes({
32241        scale: value
32242      }),
32243      isBlock: true
32244    }, SCALE_OPTIONS)), !!imageSizeOptions.length && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32245      hasValue: () => !!sizeSlug,
32246      label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
32247      onDeselect: () => setAttributes({
32248        sizeSlug: undefined
32249      }),
32250      resetAllFilter: () => ({
32251        sizeSlug: undefined
32252      }),
32253      isShownByDefault: false,
32254      panelId: clientId
32255    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
32256      label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
32257      value: sizeSlug || DEFAULT_SIZE,
32258      options: imageSizeOptions,
32259      onChange: nextSizeSlug => setAttributes({
32260        sizeSlug: nextSizeSlug
32261      }),
32262      help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.')
32263    })));
32264  };
32265  
32266  /* harmony default export */ var dimension_controls = (DimensionControls);
32267  
32268  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/edit.js
32269  
32270  
32271  /**
32272   * WordPress dependencies
32273   */
32274  
32275  
32276  
32277  
32278  
32279  
32280  
32281  
32282  /**
32283   * Internal dependencies
32284   */
32285  
32286  
32287  const placeholderIllustration = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
32288    className: "components-placeholder__illustration",
32289    fill: "none",
32290    xmlns: "http://www.w3.org/2000/svg",
32291    viewBox: "0 0 60 60",
32292    preserveAspectRatio: "none"
32293  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
32294    vectorEffect: "non-scaling-stroke",
32295    d: "M60 60 0 0"
32296  }));
32297  const post_featured_image_edit_ALLOWED_MEDIA_TYPES = ['image'];
32298  const placeholderChip = (0,external_wp_element_namespaceObject.createElement)("div", {
32299    className: "wp-block-post-featured-image__placeholder"
32300  }, placeholderIllustration);
32301  
32302  function getMediaSourceUrlBySizeSlug(media, slug) {
32303    var _media$media_details, _media$media_details$, _media$media_details$2;
32304  
32305    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);
32306  }
32307  
32308  function PostFeaturedImageDisplay(_ref) {
32309    let {
32310      clientId,
32311      attributes,
32312      setAttributes,
32313      context: {
32314        postId,
32315        postType: postTypeSlug,
32316        queryId
32317      }
32318    } = _ref;
32319    const isDescendentOfQueryLoop = Number.isFinite(queryId);
32320    const {
32321      isLink,
32322      height,
32323      width,
32324      scale,
32325      sizeSlug
32326    } = attributes;
32327    const [featuredImage, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'featured_media', postId);
32328    const {
32329      media,
32330      postType
32331    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32332      const {
32333        getMedia,
32334        getPostType
32335      } = select(external_wp_coreData_namespaceObject.store);
32336      return {
32337        media: featuredImage && getMedia(featuredImage, {
32338          context: 'view'
32339        }),
32340        postType: postTypeSlug && getPostType(postTypeSlug)
32341      };
32342    }, [featuredImage, postTypeSlug]);
32343    const mediaUrl = getMediaSourceUrlBySizeSlug(media, sizeSlug);
32344    const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().imageSizes, []);
32345    const imageSizeOptions = imageSizes.filter(_ref2 => {
32346      var _media$media_details2, _media$media_details3, _media$media_details4;
32347  
32348      let {
32349        slug
32350      } = _ref2;
32351      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;
32352    }).map(_ref3 => {
32353      let {
32354        name,
32355        slug
32356      } = _ref3;
32357      return {
32358        value: slug,
32359        label: name
32360      };
32361    });
32362    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
32363      style: {
32364        width,
32365        height
32366      }
32367    });
32368  
32369    const placeholder = content => {
32370      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
32371        className: "block-editor-media-placeholder"
32372      }, placeholderIllustration, content);
32373    };
32374  
32375    const onSelectImage = value => {
32376      if (value !== null && value !== void 0 && value.id) {
32377        setFeaturedImage(value.id);
32378      }
32379    };
32380  
32381    const {
32382      createErrorNotice
32383    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
32384  
32385    const onUploadError = message => {
32386      createErrorNotice(message[2], {
32387        type: 'snackbar'
32388      });
32389    };
32390  
32391    const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(dimension_controls, {
32392      clientId: clientId,
32393      attributes: attributes,
32394      setAttributes: setAttributes,
32395      imageSizeOptions: imageSizeOptions
32396    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
32397      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
32398    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
32399      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".
32400      (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
32401      onChange: () => setAttributes({
32402        isLink: !isLink
32403      }),
32404      checked: isLink
32405    }))));
32406    let image;
32407  
32408    if (!featuredImage && isDescendentOfQueryLoop) {
32409      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, placeholderChip));
32410    }
32411  
32412    const label = (0,external_wp_i18n_namespaceObject.__)('Add a featured image');
32413  
32414    if (!featuredImage) {
32415      image = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
32416        onSelect: onSelectImage,
32417        accept: "image/*",
32418        allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
32419        onError: onUploadError,
32420        placeholder: placeholder,
32421        mediaLibraryButton: _ref4 => {
32422          let {
32423            open
32424          } = _ref4;
32425          return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
32426            icon: library_upload,
32427            variant: "primary",
32428            label: label,
32429            showTooltip: true,
32430            tooltipPosition: "top center",
32431            onClick: () => {
32432              open();
32433            }
32434          });
32435        }
32436      });
32437    } else {
32438      // We have a Featured image so show a Placeholder if is loading.
32439      image = !media ? placeholderChip : (0,external_wp_element_namespaceObject.createElement)("img", {
32440        src: mediaUrl,
32441        alt: media.alt_text ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The image's alt text.
32442        (0,external_wp_i18n_namespaceObject.__)('Featured image: %s'), media.alt_text) : (0,external_wp_i18n_namespaceObject.__)('Featured image'),
32443        style: {
32444          height,
32445          objectFit: height && scale
32446        }
32447      });
32448    }
32449  
32450    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, {
32451      group: "other"
32452    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
32453      mediaId: featuredImage,
32454      mediaURL: mediaUrl,
32455      allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
32456      accept: "image/*",
32457      onSelect: onSelectImage,
32458      onError: onUploadError
32459    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
32460      onClick: () => setFeaturedImage(0)
32461    }, (0,external_wp_i18n_namespaceObject.__)('Reset')))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, image));
32462  }
32463  
32464  function PostFeaturedImageEdit(props) {
32465    var _props$context;
32466  
32467    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
32468  
32469    if (!((_props$context = props.context) !== null && _props$context !== void 0 && _props$context.postId)) {
32470      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, placeholderChip);
32471    }
32472  
32473    return (0,external_wp_element_namespaceObject.createElement)(PostFeaturedImageDisplay, props);
32474  }
32475  
32476  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
32477  /**
32478   * WordPress dependencies
32479   */
32480  
32481  /**
32482   * Internal dependencies
32483   */
32484  
32485  const post_featured_image_metadata = {
32486    $schema: "https://schemas.wp.org/trunk/block.json",
32487    apiVersion: 2,
32488    name: "core/post-featured-image",
32489    title: "Post Featured Image",
32490    category: "theme",
32491    description: "Display a post's featured image.",
32492    textdomain: "default",
32493    attributes: {
32494      isLink: {
32495        type: "boolean",
32496        "default": false
32497      },
32498      width: {
32499        type: "string"
32500      },
32501      height: {
32502        type: "string"
32503      },
32504      scale: {
32505        type: "string",
32506        "default": "cover"
32507      },
32508      sizeSlug: {
32509        type: "string"
32510      }
32511    },
32512    usesContext: ["postId", "postType", "queryId"],
32513    supports: {
32514      align: ["left", "right", "center", "wide", "full"],
32515      color: {
32516        __experimentalDuotone: "img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before",
32517        text: false,
32518        background: false
32519      },
32520      html: false,
32521      spacing: {
32522        margin: true,
32523        padding: true
32524      }
32525    },
32526    editorStyle: "wp-block-post-featured-image-editor",
32527    style: "wp-block-post-featured-image"
32528  };
32529  
32530  const {
32531    name: post_featured_image_name
32532  } = post_featured_image_metadata;
32533  
32534  const post_featured_image_settings = {
32535    icon: post_featured_image,
32536    edit: PostFeaturedImageEdit
32537  };
32538  
32539  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/edit.js
32540  
32541  
32542  /**
32543   * External dependencies
32544   */
32545  
32546  /**
32547   * WordPress dependencies
32548   */
32549  
32550  
32551  
32552  
32553  function PostNavigationLinkEdit(_ref) {
32554    let {
32555      attributes: {
32556        type,
32557        label,
32558        showTitle,
32559        textAlign,
32560        linkLabel
32561      },
32562      setAttributes
32563    } = _ref;
32564    const isNext = type === 'next';
32565    let placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next') : (0,external_wp_i18n_namespaceObject.__)('Previous');
32566  
32567    if (showTitle) {
32568      /* translators: Label before for next and previous post. There is a space after the colon. */
32569      placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next: ') : (0,external_wp_i18n_namespaceObject.__)('Previous: ');
32570    }
32571  
32572    const ariaLabel = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next post') : (0,external_wp_i18n_namespaceObject.__)('Previous post');
32573    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
32574      className: classnames_default()({
32575        [`has-text-align-$textAlign}`]: textAlign
32576      })
32577    });
32578    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, {
32579      label: (0,external_wp_i18n_namespaceObject.__)('Display the title as a link'),
32580      help: (0,external_wp_i18n_namespaceObject.__)('If you have entered a custom label, it will be prepended before the title.'),
32581      checked: !!showTitle,
32582      onChange: () => setAttributes({
32583        showTitle: !showTitle
32584      })
32585    }), showTitle && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
32586      label: (0,external_wp_i18n_namespaceObject.__)('Include the label as part of the link'),
32587      checked: !!linkLabel,
32588      onChange: () => setAttributes({
32589        linkLabel: !linkLabel
32590      })
32591    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
32592      value: textAlign,
32593      onChange: nextAlign => {
32594        setAttributes({
32595          textAlign: nextAlign
32596        });
32597      }
32598    })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
32599      tagName: "a",
32600      "aria-label": ariaLabel,
32601      placeholder: placeholder,
32602      value: label,
32603      allowedFormats: ['core/bold', 'core/italic'],
32604      onChange: newLabel => setAttributes({
32605        label: newLabel
32606      })
32607    }), showTitle && (0,external_wp_element_namespaceObject.createElement)("a", {
32608      href: "#post-navigation-pseudo-link",
32609      onClick: event => event.preventDefault()
32610    }, (0,external_wp_i18n_namespaceObject.__)('An example title'))));
32611  }
32612  
32613  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/next.js
32614  
32615  
32616  /**
32617   * WordPress dependencies
32618   */
32619  
32620  const next = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
32621    xmlns: "http://www.w3.org/2000/svg",
32622    viewBox: "0 0 24 24"
32623  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
32624    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"
32625  }));
32626  /* harmony default export */ var library_next = (next);
32627  
32628  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/previous.js
32629  
32630  
32631  /**
32632   * WordPress dependencies
32633   */
32634  
32635  const previous = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
32636    xmlns: "http://www.w3.org/2000/svg",
32637    viewBox: "0 0 24 24"
32638  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
32639    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"
32640  }));
32641  /* harmony default export */ var library_previous = (previous);
32642  
32643  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/variations.js
32644  /**
32645   * WordPress dependencies
32646   */
32647  
32648  
32649  const post_navigation_link_variations_variations = [{
32650    isDefault: true,
32651    name: 'post-next',
32652    title: (0,external_wp_i18n_namespaceObject.__)('Next post'),
32653    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that follows the current post.'),
32654    icon: library_next,
32655    attributes: {
32656      type: 'next'
32657    },
32658    scope: ['inserter', 'transform']
32659  }, {
32660    name: 'post-previous',
32661    title: (0,external_wp_i18n_namespaceObject.__)('Previous post'),
32662    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that precedes the current post.'),
32663    icon: library_previous,
32664    attributes: {
32665      type: 'previous'
32666    },
32667    scope: ['inserter', 'transform']
32668  }];
32669  /**
32670   * Add `isActive` function to all `post-navigation-link` variations, if not defined.
32671   * `isActive` function is used to find a variation match from a created
32672   *  Block by providing its attributes.
32673   */
32674  
32675  post_navigation_link_variations_variations.forEach(variation => {
32676    if (variation.isActive) return;
32677  
32678    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
32679  });
32680  /* harmony default export */ var post_navigation_link_variations = (post_navigation_link_variations_variations);
32681  
32682  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
32683  /**
32684   * Internal dependencies
32685   */
32686  const post_navigation_link_metadata = {
32687    $schema: "https://schemas.wp.org/trunk/block.json",
32688    apiVersion: 2,
32689    name: "core/post-navigation-link",
32690    title: "Post Navigation Link",
32691    category: "theme",
32692    description: "Displays the next or previous post link that is adjacent to the current post.",
32693    textdomain: "default",
32694    attributes: {
32695      textAlign: {
32696        type: "string"
32697      },
32698      type: {
32699        type: "string",
32700        "default": "next"
32701      },
32702      label: {
32703        type: "string"
32704      },
32705      showTitle: {
32706        type: "boolean",
32707        "default": false
32708      },
32709      linkLabel: {
32710        type: "boolean",
32711        "default": false
32712      }
32713    },
32714    supports: {
32715      reusable: false,
32716      html: false,
32717      typography: {
32718        fontSize: true,
32719        lineHeight: true,
32720        __experimentalFontStyle: true,
32721        __experimentalFontWeight: true,
32722        __experimentalLetterSpacing: true,
32723        __experimentalTextTransform: true,
32724        __experimentalDefaultControls: {
32725          fontSize: true
32726        }
32727      }
32728    }
32729  };
32730  
32731  
32732  const {
32733    name: post_navigation_link_name
32734  } = post_navigation_link_metadata;
32735  
32736  const post_navigation_link_settings = {
32737    edit: PostNavigationLinkEdit,
32738    variations: post_navigation_link_variations
32739  };
32740  
32741  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/edit.js
32742  
32743  
32744  
32745  /**
32746   * External dependencies
32747   */
32748  
32749  /**
32750   * WordPress dependencies
32751   */
32752  
32753  
32754  
32755  
32756  
32757  
32758  
32759  const post_template_edit_TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];
32760  
32761  function PostTemplateInnerBlocks() {
32762    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
32763      className: 'wp-block-post'
32764    }, {
32765      template: post_template_edit_TEMPLATE
32766    });
32767    return (0,external_wp_element_namespaceObject.createElement)("li", innerBlocksProps);
32768  }
32769  
32770  function PostTemplateBlockPreview(_ref) {
32771    let {
32772      blocks,
32773      blockContextId,
32774      isHidden,
32775      setActiveBlockContextId
32776    } = _ref;
32777    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
32778      blocks,
32779      props: {
32780        className: 'wp-block-post'
32781      }
32782    });
32783  
32784    const handleOnClick = () => {
32785      setActiveBlockContextId(blockContextId);
32786    };
32787  
32788    const style = {
32789      display: isHidden ? 'none' : undefined
32790    };
32791    return (0,external_wp_element_namespaceObject.createElement)("li", _extends({}, blockPreviewProps, {
32792      tabIndex: 0 // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
32793      ,
32794      role: "button",
32795      onClick: handleOnClick,
32796      onKeyPress: handleOnClick,
32797      style: style
32798    }));
32799  }
32800  
32801  const MemoizedPostTemplateBlockPreview = (0,external_wp_element_namespaceObject.memo)(PostTemplateBlockPreview);
32802  function PostTemplateEdit(_ref2) {
32803    let {
32804      clientId,
32805      context: {
32806        query: {
32807          perPage,
32808          offset,
32809          postType,
32810          order,
32811          orderBy,
32812          author,
32813          search,
32814          exclude,
32815          sticky,
32816          inherit,
32817          taxQuery
32818        } = {},
32819        queryContext = [{
32820          page: 1
32821        }],
32822        templateSlug,
32823        displayLayout: {
32824          type: layoutType = 'flex',
32825          columns = 1
32826        } = {}
32827      }
32828    } = _ref2;
32829    const [{
32830      page
32831    }] = queryContext;
32832    const [activeBlockContextId, setActiveBlockContextId] = (0,external_wp_element_namespaceObject.useState)();
32833    const {
32834      posts,
32835      blocks
32836    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32837      const {
32838        getEntityRecords,
32839        getTaxonomies
32840      } = select(external_wp_coreData_namespaceObject.store);
32841      const {
32842        getBlocks
32843      } = select(external_wp_blockEditor_namespaceObject.store);
32844      const taxonomies = getTaxonomies({
32845        type: postType,
32846        per_page: -1,
32847        context: 'view'
32848      });
32849      const query = {
32850        offset: perPage ? perPage * (page - 1) + offset : 0,
32851        order,
32852        orderby: orderBy
32853      };
32854  
32855      if (taxQuery) {
32856        // We have to build the tax query for the REST API and use as
32857        // keys the taxonomies `rest_base` with the `term ids` as values.
32858        const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, _ref3) => {
32859          let [taxonomySlug, terms] = _ref3;
32860          const taxonomy = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.find(_ref4 => {
32861            let {
32862              slug
32863            } = _ref4;
32864            return slug === taxonomySlug;
32865          });
32866  
32867          if (taxonomy !== null && taxonomy !== void 0 && taxonomy.rest_base) {
32868            accumulator[taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.rest_base] = terms;
32869          }
32870  
32871          return accumulator;
32872        }, {});
32873  
32874        if (!!Object.keys(builtTaxQuery).length) {
32875          Object.assign(query, builtTaxQuery);
32876        }
32877      }
32878  
32879      if (perPage) {
32880        query.per_page = perPage;
32881      }
32882  
32883      if (author) {
32884        query.author = author;
32885      }
32886  
32887      if (search) {
32888        query.search = search;
32889      }
32890  
32891      if (exclude !== null && exclude !== void 0 && exclude.length) {
32892        query.exclude = exclude;
32893      } // If sticky is not set, it will return all posts in the results.
32894      // If sticky is set to `only`, it will limit the results to sticky posts only.
32895      // If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.
32896  
32897  
32898      if (sticky) {
32899        query.sticky = sticky === 'only';
32900      } // If `inherit` is truthy, adjust conditionally the query to create a better preview.
32901  
32902  
32903      if (inherit) {
32904        // Change the post-type if needed.
32905        if (templateSlug !== null && templateSlug !== void 0 && templateSlug.startsWith('archive-')) {
32906          query.postType = templateSlug.replace('archive-', '');
32907          postType = query.postType;
32908        }
32909      }
32910  
32911      return {
32912        posts: getEntityRecords('postType', postType, query),
32913        blocks: getBlocks(clientId)
32914      };
32915    }, [perPage, page, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery]);
32916    const blockContexts = (0,external_wp_element_namespaceObject.useMemo)(() => posts === null || posts === void 0 ? void 0 : posts.map(post => ({
32917      postType: post.type,
32918      postId: post.id
32919    })), [posts]);
32920    const hasLayoutFlex = layoutType === 'flex' && columns > 1;
32921    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
32922      className: classnames_default()({
32923        'is-flex-container': hasLayoutFlex,
32924        [`columns-$columns}`]: hasLayoutFlex
32925      })
32926    });
32927  
32928    if (!posts) {
32929      return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null));
32930    }
32931  
32932    if (!posts.length) {
32933      return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, " ", (0,external_wp_i18n_namespaceObject.__)('No results found.'));
32934    } // To avoid flicker when switching active block contexts, a preview is rendered
32935    // for each block context, but the preview for the active block context is hidden.
32936    // This ensures that when it is displayed again, the cached rendering of the
32937    // block preview is used, instead of having to re-render the preview from scratch.
32938  
32939  
32940    return (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, blockContexts && blockContexts.map(blockContext => {
32941      var _blockContexts$, _blockContexts$2;
32942  
32943      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
32944        key: blockContext.postId,
32945        value: blockContext
32946      }, 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, {
32947        blocks: blocks,
32948        blockContextId: blockContext.postId,
32949        setActiveBlockContextId: setActiveBlockContextId,
32950        isHidden: blockContext.postId === (activeBlockContextId || ((_blockContexts$2 = blockContexts[0]) === null || _blockContexts$2 === void 0 ? void 0 : _blockContexts$2.postId))
32951      }));
32952    }));
32953  }
32954  
32955  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/save.js
32956  
32957  
32958  /**
32959   * WordPress dependencies
32960   */
32961  
32962  function PostTemplateSave() {
32963    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
32964  }
32965  
32966  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/index.js
32967  /**
32968   * WordPress dependencies
32969   */
32970  
32971  /**
32972   * Internal dependencies
32973   */
32974  
32975  const post_template_metadata = {
32976    $schema: "https://schemas.wp.org/trunk/block.json",
32977    apiVersion: 2,
32978    name: "core/post-template",
32979    title: "Post Template",
32980    category: "theme",
32981    parent: ["core/query"],
32982    description: "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.",
32983    textdomain: "default",
32984    usesContext: ["queryId", "query", "queryContext", "displayLayout", "templateSlug"],
32985    supports: {
32986      reusable: false,
32987      html: false,
32988      align: true,
32989      __experimentalLayout: {
32990        allowEditing: false
32991      }
32992    },
32993    style: "wp-block-post-template",
32994    editorStyle: "wp-block-post-template-editor"
32995  };
32996  
32997  
32998  const {
32999    name: post_template_name
33000  } = post_template_metadata;
33001  
33002  const post_template_settings = {
33003    icon: library_layout,
33004    edit: PostTemplateEdit,
33005    save: PostTemplateSave
33006  };
33007  
33008  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/use-post-terms.js
33009  /**
33010   * WordPress dependencies
33011   */
33012  
33013  
33014  function usePostTerms(_ref) {
33015    var _term$visibility2;
33016  
33017    let {
33018      postId,
33019      postType,
33020      term
33021    } = _ref;
33022    const {
33023      rest_base: restBase,
33024      slug
33025    } = term;
33026    const [termIds] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, restBase, postId);
33027    return (0,external_wp_data_namespaceObject.useSelect)(select => {
33028      var _term$visibility;
33029  
33030      const visible = term === null || term === void 0 ? void 0 : (_term$visibility = term.visibility) === null || _term$visibility === void 0 ? void 0 : _term$visibility.publicly_queryable;
33031  
33032      if (!visible) {
33033        return {
33034          postTerms: [],
33035          _isLoading: false,
33036          hasPostTerms: false
33037        };
33038      }
33039  
33040      if (!termIds) {
33041        var _term$postTerms;
33042  
33043        // Waiting for post terms to be fetched.
33044        return {
33045          isLoading: term === null || term === void 0 ? void 0 : (_term$postTerms = term.postTerms) === null || _term$postTerms === void 0 ? void 0 : _term$postTerms.includes(postType)
33046        };
33047      }
33048  
33049      if (!termIds.length) {
33050        return {
33051          isLoading: false
33052        };
33053      }
33054  
33055      const {
33056        getEntityRecords,
33057        isResolving
33058      } = select(external_wp_coreData_namespaceObject.store);
33059      const taxonomyArgs = ['taxonomy', slug, {
33060        include: termIds,
33061        context: 'view'
33062      }];
33063      const terms = getEntityRecords(...taxonomyArgs);
33064  
33065      const _isLoading = isResolving('getEntityRecords', taxonomyArgs);
33066  
33067      return {
33068        postTerms: terms,
33069        isLoading: _isLoading,
33070        hasPostTerms: !!(terms !== null && terms !== void 0 && terms.length)
33071      };
33072    }, [termIds, term === null || term === void 0 ? void 0 : (_term$visibility2 = term.visibility) === null || _term$visibility2 === void 0 ? void 0 : _term$visibility2.publicly_queryable]);
33073  }
33074  
33075  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/edit.js
33076  
33077  
33078  /**
33079   * External dependencies
33080   */
33081  
33082  
33083  /**
33084   * WordPress dependencies
33085   */
33086  
33087  
33088  
33089  
33090  
33091  
33092  /**
33093   * Internal dependencies
33094   */
33095  
33096  
33097  function PostTermsEdit(_ref) {
33098    var _selectedTerm$labels;
33099  
33100    let {
33101      attributes,
33102      clientId,
33103      context,
33104      setAttributes
33105    } = _ref;
33106    const {
33107      term,
33108      textAlign,
33109      separator
33110    } = attributes;
33111    const {
33112      postId,
33113      postType
33114    } = context;
33115    const selectedTerm = (0,external_wp_data_namespaceObject.useSelect)(select => {
33116      var _taxonomy$visibility;
33117  
33118      if (!term) return {};
33119      const {
33120        getTaxonomy
33121      } = select(external_wp_coreData_namespaceObject.store);
33122      const taxonomy = getTaxonomy(term);
33123      return taxonomy !== null && taxonomy !== void 0 && (_taxonomy$visibility = taxonomy.visibility) !== null && _taxonomy$visibility !== void 0 && _taxonomy$visibility.publicly_queryable ? taxonomy : {};
33124    }, [term]);
33125    const {
33126      postTerms,
33127      hasPostTerms,
33128      isLoading
33129    } = usePostTerms({
33130      postId,
33131      postType,
33132      term: selectedTerm
33133    });
33134    const hasPost = postId && postType;
33135    const blockInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(clientId);
33136    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33137      className: classnames_default()({
33138        [`has-text-align-$textAlign}`]: textAlign,
33139        [`taxonomy-$term}`]: term
33140      })
33141    });
33142  
33143    if (!hasPost || !term) {
33144      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, blockInformation.title);
33145    }
33146  
33147    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, {
33148      value: textAlign,
33149      onChange: nextAlign => {
33150        setAttributes({
33151          textAlign: nextAlign
33152        });
33153      }
33154    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
33155      __experimentalGroup: "advanced"
33156    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
33157      autoComplete: "off",
33158      label: (0,external_wp_i18n_namespaceObject.__)('Separator'),
33159      value: separator || '',
33160      onChange: nextValue => {
33161        setAttributes({
33162          separator: nextValue
33163        });
33164      },
33165      help: (0,external_wp_i18n_namespaceObject.__)('Enter character(s) used to separate terms.')
33166    })), (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", {
33167      key: postTerm.id,
33168      href: postTerm.link,
33169      onClick: event => event.preventDefault()
33170    }, (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", {
33171      className: "wp-block-post-terms__separator"
33172    }, 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.'))));
33173  }
33174  
33175  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-categories.js
33176  
33177  
33178  /**
33179   * WordPress dependencies
33180   */
33181  
33182  const postCategories = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
33183    viewBox: "0 0 24 24",
33184    xmlns: "http://www.w3.org/2000/svg"
33185  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
33186    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",
33187    fillRule: "evenodd",
33188    clipRule: "evenodd"
33189  }));
33190  /* harmony default export */ var post_categories = (postCategories);
33191  
33192  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-terms.js
33193  
33194  
33195  /**
33196   * WordPress dependencies
33197   */
33198  
33199  const postTerms = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
33200    viewBox: "0 0 24 24",
33201    xmlns: "http://www.w3.org/2000/svg"
33202  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
33203    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"
33204  }));
33205  /* harmony default export */ var post_terms = (postTerms);
33206  
33207  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/variations.js
33208  /**
33209   * WordPress dependencies
33210   */
33211  
33212  
33213  const post_terms_variations_variations = [{
33214    name: 'category',
33215    title: (0,external_wp_i18n_namespaceObject.__)('Post Categories'),
33216    description: (0,external_wp_i18n_namespaceObject.__)("Display a post's categories."),
33217    icon: post_categories,
33218    isDefault: true,
33219    attributes: {
33220      term: 'category'
33221    },
33222    isActive: blockAttributes => blockAttributes.term === 'category'
33223  }, {
33224    name: 'post_tag',
33225    title: (0,external_wp_i18n_namespaceObject.__)('Post Tags'),
33226    description: (0,external_wp_i18n_namespaceObject.__)("Display a post's tags."),
33227    icon: post_terms,
33228    attributes: {
33229      term: 'post_tag'
33230    },
33231    isActive: blockAttributes => blockAttributes.term === 'post_tag'
33232  }];
33233  /* harmony default export */ var post_terms_variations = (post_terms_variations_variations);
33234  
33235  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
33236  /**
33237   * Internal dependencies
33238   */
33239  const post_terms_metadata = {
33240    $schema: "https://schemas.wp.org/trunk/block.json",
33241    apiVersion: 2,
33242    name: "core/post-terms",
33243    title: "Post Terms",
33244    category: "theme",
33245    description: "Post terms.",
33246    textdomain: "default",
33247    attributes: {
33248      term: {
33249        type: "string"
33250      },
33251      textAlign: {
33252        type: "string"
33253      },
33254      separator: {
33255        type: "string",
33256        "default": ", "
33257      }
33258    },
33259    usesContext: ["postId", "postType"],
33260    supports: {
33261      html: false,
33262      color: {
33263        gradients: true,
33264        link: true,
33265        __experimentalDefaultControls: {
33266          background: true,
33267          text: true,
33268          link: true
33269        }
33270      },
33271      typography: {
33272        lineHeight: true,
33273        fontSize: true,
33274        __experimentalFontStyle: true,
33275        __experimentalFontWeight: true,
33276        __experimentalLetterSpacing: true,
33277        __experimentalTextTransform: true,
33278        __experimentalDefaultControls: {
33279          fontSize: true
33280        }
33281      }
33282    },
33283    style: "wp-block-post-terms"
33284  };
33285  
33286  
33287  /**
33288   * WordPress dependencies
33289   */
33290  
33291  
33292  const {
33293    name: post_terms_name
33294  } = post_terms_metadata;
33295  
33296  const post_terms_settings = {
33297    icon: post_terms,
33298    variations: post_terms_variations,
33299    edit: PostTermsEdit
33300  };
33301  
33302  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/edit.js
33303  
33304  
33305  
33306  /**
33307   * External dependencies
33308   */
33309  
33310  /**
33311   * WordPress dependencies
33312   */
33313  
33314  
33315  
33316  
33317  
33318  /**
33319   * Internal dependencies
33320   */
33321  
33322  
33323  
33324  function PostTitleEdit(_ref) {
33325    let {
33326      attributes: {
33327        level,
33328        textAlign,
33329        isLink,
33330        rel,
33331        linkTarget
33332      },
33333      setAttributes,
33334      context: {
33335        postType,
33336        postId,
33337        queryId
33338      }
33339    } = _ref;
33340    const TagName = 0 === level ? 'p' : 'h' + level;
33341    const isDescendentOfQueryLoop = Number.isFinite(queryId);
33342    const userCanEdit = useCanEditEntity('postType', postType, postId);
33343    const [rawTitle = '', setTitle, fullTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
33344    const [link] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'link', postId);
33345    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33346      className: classnames_default()({
33347        [`has-text-align-$textAlign}`]: textAlign
33348      })
33349    });
33350    let titleElement = (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_i18n_namespaceObject.__)('Post Title'));
33351  
33352    if (postType && postId) {
33353      titleElement = userCanEdit && !isDescendentOfQueryLoop ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, _extends({
33354        tagName: TagName,
33355        placeholder: (0,external_wp_i18n_namespaceObject.__)('No Title'),
33356        value: rawTitle,
33357        onChange: setTitle,
33358        __experimentalVersion: 2
33359      }, blockProps)) : (0,external_wp_element_namespaceObject.createElement)(TagName, _extends({}, blockProps, {
33360        dangerouslySetInnerHTML: {
33361          __html: fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered
33362        }
33363      }));
33364    }
33365  
33366    if (isLink && postType && postId) {
33367      titleElement = userCanEdit && !isDescendentOfQueryLoop ? (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
33368        tagName: "a",
33369        href: link,
33370        target: linkTarget,
33371        rel: rel,
33372        placeholder: !rawTitle.length ? (0,external_wp_i18n_namespaceObject.__)('No Title') : null,
33373        value: rawTitle,
33374        onChange: setTitle,
33375        __experimentalVersion: 2
33376      })) : (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)("a", {
33377        href: link,
33378        target: linkTarget,
33379        rel: rel,
33380        onClick: event => event.preventDefault(),
33381        dangerouslySetInnerHTML: {
33382          __html: fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered
33383        }
33384      }));
33385    }
33386  
33387    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
33388      group: "block"
33389    }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
33390      selectedLevel: level,
33391      onChange: newLevel => setAttributes({
33392        level: newLevel
33393      })
33394    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
33395      value: textAlign,
33396      onChange: nextAlign => {
33397        setAttributes({
33398          textAlign: nextAlign
33399        });
33400      }
33401    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
33402      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
33403    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
33404      label: (0,external_wp_i18n_namespaceObject.__)('Make title a link'),
33405      onChange: () => setAttributes({
33406        isLink: !isLink
33407      }),
33408      checked: isLink
33409    }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
33410      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
33411      onChange: value => setAttributes({
33412        linkTarget: value ? '_blank' : '_self'
33413      }),
33414      checked: linkTarget === '_blank'
33415    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
33416      label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
33417      value: rel,
33418      onChange: newRel => setAttributes({
33419        rel: newRel
33420      })
33421    })))), titleElement);
33422  }
33423  
33424  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/deprecated.js
33425  /**
33426   * Internal dependencies
33427   */
33428  
33429  const post_title_deprecated_v1 = {
33430    attributes: {
33431      textAlign: {
33432        type: 'string'
33433      },
33434      level: {
33435        type: 'number',
33436        default: 2
33437      },
33438      isLink: {
33439        type: 'boolean',
33440        default: false
33441      },
33442      rel: {
33443        type: 'string',
33444        attribute: 'rel',
33445        default: ''
33446      },
33447      linkTarget: {
33448        type: 'string',
33449        default: '_self'
33450      }
33451    },
33452    supports: {
33453      align: ['wide', 'full'],
33454      html: false,
33455      color: {
33456        gradients: true,
33457        link: true
33458      },
33459      spacing: {
33460        margin: true
33461      },
33462      typography: {
33463        fontSize: true,
33464        lineHeight: true,
33465        __experimentalFontFamily: true,
33466        __experimentalFontWeight: true,
33467        __experimentalFontStyle: true,
33468        __experimentalTextTransform: true
33469      }
33470    },
33471  
33472    save() {
33473      return null;
33474    },
33475  
33476    migrate: migrate_font_family,
33477  
33478    isEligible(_ref) {
33479      var _style$typography;
33480  
33481      let {
33482        style
33483      } = _ref;
33484      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
33485    }
33486  
33487  };
33488  /**
33489   * New deprecations need to be placed first
33490   * for them to have higher priority.
33491   *
33492   * Old deprecations may need to be updated as well.
33493   *
33494   * See block-deprecation.md
33495   */
33496  
33497  /* harmony default export */ var post_title_deprecated = ([post_title_deprecated_v1]);
33498  
33499  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/index.js
33500  /**
33501   * WordPress dependencies
33502   */
33503  
33504  /**
33505   * Internal dependencies
33506   */
33507  
33508  const post_title_metadata = {
33509    $schema: "https://schemas.wp.org/trunk/block.json",
33510    apiVersion: 2,
33511    name: "core/post-title",
33512    title: "Post Title",
33513    category: "theme",
33514    description: "Displays the title of a post, page, or any other content-type.",
33515    textdomain: "default",
33516    usesContext: ["postId", "postType", "queryId"],
33517    attributes: {
33518      textAlign: {
33519        type: "string"
33520      },
33521      level: {
33522        type: "number",
33523        "default": 2
33524      },
33525      isLink: {
33526        type: "boolean",
33527        "default": false
33528      },
33529      rel: {
33530        type: "string",
33531        attribute: "rel",
33532        "default": ""
33533      },
33534      linkTarget: {
33535        type: "string",
33536        "default": "_self"
33537      }
33538    },
33539    supports: {
33540      align: ["wide", "full"],
33541      html: false,
33542      color: {
33543        gradients: true,
33544        link: true,
33545        __experimentalDefaultControls: {
33546          background: true,
33547          text: true,
33548          link: true
33549        }
33550      },
33551      spacing: {
33552        margin: true
33553      },
33554      typography: {
33555        fontSize: true,
33556        lineHeight: true,
33557        __experimentalFontFamily: true,
33558        __experimentalFontWeight: true,
33559        __experimentalFontStyle: true,
33560        __experimentalTextTransform: true,
33561        __experimentalLetterSpacing: true,
33562        __experimentalDefaultControls: {
33563          fontSize: true,
33564          fontAppearance: true,
33565          textTransform: true
33566        }
33567      }
33568    },
33569    style: "wp-block-post-title"
33570  };
33571  
33572  
33573  const {
33574    name: post_title_name
33575  } = post_title_metadata;
33576  
33577  const post_title_settings = {
33578    icon: post_title,
33579    edit: PostTitleEdit,
33580    deprecated: post_title_deprecated
33581  };
33582  
33583  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/preformatted.js
33584  
33585  
33586  /**
33587   * WordPress dependencies
33588   */
33589  
33590  const preformatted = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
33591    viewBox: "0 0 24 24",
33592    xmlns: "http://www.w3.org/2000/svg"
33593  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
33594    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"
33595  }));
33596  /* harmony default export */ var library_preformatted = (preformatted);
33597  
33598  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js
33599  
33600  
33601  
33602  /**
33603   * WordPress dependencies
33604   */
33605  
33606  
33607  function PreformattedEdit(_ref) {
33608    let {
33609      attributes,
33610      mergeBlocks,
33611      setAttributes,
33612      onRemove,
33613      style
33614    } = _ref;
33615    const {
33616      content
33617    } = attributes;
33618    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33619      style
33620    });
33621    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
33622      tagName: "pre",
33623      identifier: "content",
33624      preserveWhiteSpace: true,
33625      value: content,
33626      onChange: nextContent => {
33627        setAttributes({
33628          content: nextContent
33629        });
33630      },
33631      onRemove: onRemove,
33632      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preformatted text'),
33633      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write preformatted text…'),
33634      onMerge: mergeBlocks
33635    }, blockProps, {
33636      __unstablePastePlainText: true
33637    }));
33638  }
33639  
33640  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/save.js
33641  
33642  
33643  /**
33644   * WordPress dependencies
33645   */
33646  
33647  function preformatted_save_save(_ref) {
33648    let {
33649      attributes
33650    } = _ref;
33651    const {
33652      content
33653    } = attributes;
33654    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, {
33655      value: content
33656    }));
33657  }
33658  
33659  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js
33660  /**
33661   * WordPress dependencies
33662   */
33663  
33664  const preformatted_transforms_transforms = {
33665    from: [{
33666      type: 'block',
33667      blocks: ['core/code', 'core/paragraph'],
33668      transform: _ref => {
33669        let {
33670          content,
33671          anchor
33672        } = _ref;
33673        return (0,external_wp_blocks_namespaceObject.createBlock)('core/preformatted', {
33674          content,
33675          anchor
33676        });
33677      }
33678    }, {
33679      type: 'raw',
33680      isMatch: node => node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE'),
33681      schema: _ref2 => {
33682        let {
33683          phrasingContentSchema
33684        } = _ref2;
33685        return {
33686          pre: {
33687            children: phrasingContentSchema
33688          }
33689        };
33690      }
33691    }],
33692    to: [{
33693      type: 'block',
33694      blocks: ['core/paragraph'],
33695      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
33696    }, {
33697      type: 'block',
33698      blocks: ['core/code'],
33699      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', attributes)
33700    }]
33701  };
33702  /* harmony default export */ var preformatted_transforms = (preformatted_transforms_transforms);
33703  
33704  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
33705  /**
33706   * WordPress dependencies
33707   */
33708  
33709  
33710  /**
33711   * Internal dependencies
33712   */
33713  
33714  
33715  const preformatted_metadata = {
33716    $schema: "https://schemas.wp.org/trunk/block.json",
33717    apiVersion: 2,
33718    name: "core/preformatted",
33719    title: "Preformatted",
33720    category: "text",
33721    description: "Add text that respects your spacing and tabs, and also allows styling.",
33722    textdomain: "default",
33723    attributes: {
33724      content: {
33725        type: "string",
33726        source: "html",
33727        selector: "pre",
33728        "default": "",
33729        __unstablePreserveWhiteSpace: true,
33730        __experimentalRole: "content"
33731      }
33732    },
33733    supports: {
33734      anchor: true,
33735      color: {
33736        gradients: true,
33737        __experimentalDefaultControls: {
33738          background: true,
33739          text: true
33740        }
33741      },
33742      typography: {
33743        fontSize: true,
33744        lineHeight: true,
33745        __experimentalFontStyle: true,
33746        __experimentalFontWeight: true,
33747        __experimentalLetterSpacing: true,
33748        __experimentalTextTransform: true,
33749        __experimentalDefaultControls: {
33750          fontSize: true
33751        }
33752      }
33753    },
33754    style: "wp-block-preformatted"
33755  };
33756  
33757  
33758  const {
33759    name: preformatted_name
33760  } = preformatted_metadata;
33761  
33762  const preformatted_settings = {
33763    icon: library_preformatted,
33764    example: {
33765      attributes: {
33766        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
33767        // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.
33768        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;')
33769        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
33770  
33771      }
33772    },
33773    transforms: preformatted_transforms,
33774    edit: PreformattedEdit,
33775    save: preformatted_save_save,
33776  
33777    merge(attributes, attributesToMerge) {
33778      return {
33779        content: attributes.content + attributesToMerge.content
33780      };
33781    }
33782  
33783  };
33784  
33785  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pullquote.js
33786  
33787  
33788  /**
33789   * WordPress dependencies
33790   */
33791  
33792  const pullquote = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
33793    viewBox: "0 0 24 24",
33794    xmlns: "http://www.w3.org/2000/svg"
33795  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
33796    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"
33797  }));
33798  /* harmony default export */ var library_pullquote = (pullquote);
33799  
33800  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js
33801  const SOLID_COLOR_CLASS = `is-style-solid-color`;
33802  
33803  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js
33804  
33805  
33806  /**
33807   * External dependencies
33808   */
33809  
33810  
33811  /**
33812   * WordPress dependencies
33813   */
33814  
33815  
33816  
33817  /**
33818   * Internal dependencies
33819   */
33820  
33821  
33822  const pullquote_deprecated_blockAttributes = {
33823    value: {
33824      type: 'string',
33825      source: 'html',
33826      selector: 'blockquote',
33827      multiline: 'p'
33828    },
33829    citation: {
33830      type: 'string',
33831      source: 'html',
33832      selector: 'cite',
33833      default: ''
33834    },
33835    mainColor: {
33836      type: 'string'
33837    },
33838    customMainColor: {
33839      type: 'string'
33840    },
33841    textColor: {
33842      type: 'string'
33843    },
33844    customTextColor: {
33845      type: 'string'
33846    }
33847  };
33848  
33849  function parseBorderColor(styleString) {
33850    if (!styleString) {
33851      return;
33852    }
33853  
33854    const matches = styleString.match(/border-color:([^;]+)[;]?/);
33855  
33856    if (matches && matches[1]) {
33857      return matches[1];
33858    }
33859  } // 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
33860  
33861  
33862  const pullquote_deprecated_deprecated = [{
33863    attributes: { ...pullquote_deprecated_blockAttributes
33864    },
33865  
33866    save(_ref) {
33867      let {
33868        attributes
33869      } = _ref;
33870      const {
33871        mainColor,
33872        customMainColor,
33873        customTextColor,
33874        textColor,
33875        value,
33876        citation,
33877        className
33878      } = attributes;
33879      const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
33880      let figureClasses, figureStyles; // Is solid color style
33881  
33882      if (isSolidColorStyle) {
33883        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
33884        figureClasses = classnames_default()({
33885          'has-background': backgroundClass || customMainColor,
33886          [backgroundClass]: backgroundClass
33887        });
33888        figureStyles = {
33889          backgroundColor: backgroundClass ? undefined : customMainColor
33890        }; // Is normal style and a custom color is being used ( we can set a style directly with its value)
33891      } else if (customMainColor) {
33892        figureStyles = {
33893          borderColor: customMainColor
33894        };
33895      }
33896  
33897      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
33898      const blockquoteClasses = classnames_default()({
33899        'has-text-color': textColor || customTextColor,
33900        [blockquoteTextColorClass]: blockquoteTextColorClass
33901      });
33902      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
33903        color: customTextColor
33904      };
33905      return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
33906        className: figureClasses,
33907        style: figureStyles
33908      }), (0,external_wp_element_namespaceObject.createElement)("blockquote", {
33909        className: blockquoteClasses,
33910        style: blockquoteStyles
33911      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
33912        value: value,
33913        multiline: true
33914      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
33915        tagName: "cite",
33916        value: citation
33917      })));
33918    },
33919  
33920    migrate(_ref2) {
33921      let {
33922        className,
33923        mainColor,
33924        customMainColor,
33925        customTextColor,
33926        ...attributes
33927      } = _ref2;
33928      const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
33929      let style;
33930  
33931      if (customMainColor) {
33932        if (!isSolidColorStyle) {
33933          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
33934          style = {
33935            border: {
33936              color: customMainColor
33937            }
33938          };
33939        } else {
33940          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
33941          style = {
33942            color: {
33943              background: customMainColor
33944            }
33945          };
33946        }
33947      } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
33948  
33949  
33950      if (customTextColor && style) {
33951        style.color = { ...style.color,
33952          text: customTextColor
33953        };
33954      }
33955  
33956      return {
33957        className,
33958        backgroundColor: isSolidColorStyle ? mainColor : undefined,
33959        borderColor: isSolidColorStyle ? undefined : mainColor,
33960        textAlign: isSolidColorStyle ? 'left' : undefined,
33961        style,
33962        ...attributes
33963      };
33964    }
33965  
33966  }, {
33967    attributes: { ...pullquote_deprecated_blockAttributes,
33968      // figureStyle is an attribute that never existed.
33969      // We are using it as a way to access the styles previously applied to the figure.
33970      figureStyle: {
33971        source: 'attribute',
33972        selector: 'figure',
33973        attribute: 'style'
33974      }
33975    },
33976  
33977    save(_ref3) {
33978      let {
33979        attributes
33980      } = _ref3;
33981      const {
33982        mainColor,
33983        customMainColor,
33984        textColor,
33985        customTextColor,
33986        value,
33987        citation,
33988        className,
33989        figureStyle
33990      } = attributes;
33991      const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
33992      let figureClasses, figureStyles; // Is solid color style
33993  
33994      if (isSolidColorStyle) {
33995        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
33996        figureClasses = classnames_default()({
33997          'has-background': backgroundClass || customMainColor,
33998          [backgroundClass]: backgroundClass
33999        });
34000        figureStyles = {
34001          backgroundColor: backgroundClass ? undefined : customMainColor
34002        }; // Is normal style and a custom color is being used ( we can set a style directly with its value)
34003      } else if (customMainColor) {
34004        figureStyles = {
34005          borderColor: customMainColor
34006        }; // If normal style and a named color are being used, we need to retrieve the color value to set the style,
34007        // as there is no expectation that themes create classes that set border colors.
34008      } else if (mainColor) {
34009        // Previously here we queried the color settings to know the color value
34010        // of a named color. This made the save function impure and the block was refactored,
34011        // because meanwhile a change in the editor made it impossible to query color settings in the save function.
34012        // Here instead of querying the color settings to know the color value, we retrieve the value
34013        // directly from the style previously serialized.
34014        const borderColor = parseBorderColor(figureStyle);
34015        figureStyles = {
34016          borderColor
34017        };
34018      }
34019  
34020      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
34021      const blockquoteClasses = (textColor || customTextColor) && classnames_default()('has-text-color', {
34022        [blockquoteTextColorClass]: blockquoteTextColorClass
34023      });
34024      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
34025        color: customTextColor
34026      };
34027      return (0,external_wp_element_namespaceObject.createElement)("figure", {
34028        className: figureClasses,
34029        style: figureStyles
34030      }, (0,external_wp_element_namespaceObject.createElement)("blockquote", {
34031        className: blockquoteClasses,
34032        style: blockquoteStyles
34033      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34034        value: value,
34035        multiline: true
34036      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34037        tagName: "cite",
34038        value: citation
34039      })));
34040    },
34041  
34042    migrate(_ref4) {
34043      let {
34044        className,
34045        figureStyle,
34046        mainColor,
34047        customMainColor,
34048        customTextColor,
34049        ...attributes
34050      } = _ref4;
34051      const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
34052      let style;
34053  
34054      if (customMainColor) {
34055        if (!isSolidColorStyle) {
34056          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
34057          style = {
34058            border: {
34059              color: customMainColor
34060            }
34061          };
34062        } else {
34063          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
34064          style = {
34065            color: {
34066              background: customMainColor
34067            }
34068          };
34069        }
34070      } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
34071  
34072  
34073      if (customTextColor && style) {
34074        style.color = { ...style.color,
34075          text: customTextColor
34076        };
34077      } // If is the default style, and a main color is set,
34078      // migrate the main color value into a custom border color.
34079      // The custom border color value is retrieved by parsing the figure styles.
34080  
34081  
34082      if (!isSolidColorStyle && mainColor && figureStyle) {
34083        const borderColor = parseBorderColor(figureStyle);
34084  
34085        if (borderColor) {
34086          return { ...attributes,
34087            className,
34088            // Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style.
34089            style: {
34090              border: {
34091                color: borderColor
34092              }
34093            }
34094          };
34095        }
34096      }
34097  
34098      return {
34099        className,
34100        backgroundColor: isSolidColorStyle ? mainColor : undefined,
34101        borderColor: isSolidColorStyle ? undefined : mainColor,
34102        textAlign: isSolidColorStyle ? 'left' : undefined,
34103        style,
34104        ...attributes
34105      };
34106    }
34107  
34108  }, {
34109    attributes: pullquote_deprecated_blockAttributes,
34110  
34111    save(_ref5) {
34112      let {
34113        attributes
34114      } = _ref5;
34115      const {
34116        mainColor,
34117        customMainColor,
34118        textColor,
34119        customTextColor,
34120        value,
34121        citation,
34122        className
34123      } = attributes;
34124      const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
34125      let figureClass, figureStyles; // Is solid color style
34126  
34127      if (isSolidColorStyle) {
34128        figureClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
34129  
34130        if (!figureClass) {
34131          figureStyles = {
34132            backgroundColor: customMainColor
34133          };
34134        } // Is normal style and a custom color is being used ( we can set a style directly with its value)
34135  
34136      } else if (customMainColor) {
34137        figureStyles = {
34138          borderColor: customMainColor
34139        }; // Is normal style and a named color is being used, we need to retrieve the color value to set the style,
34140        // as there is no expectation that themes create classes that set border colors.
34141      } else if (mainColor) {
34142        const colors = (0,external_lodash_namespaceObject.get)((0,external_wp_data_namespaceObject.select)(external_wp_blockEditor_namespaceObject.store).getSettings(), ['colors'], []);
34143        const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colors, mainColor);
34144        figureStyles = {
34145          borderColor: colorObject.color
34146        };
34147      }
34148  
34149      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
34150      const blockquoteClasses = textColor || customTextColor ? classnames_default()('has-text-color', {
34151        [blockquoteTextColorClass]: blockquoteTextColorClass
34152      }) : undefined;
34153      const blockquoteStyle = blockquoteTextColorClass ? undefined : {
34154        color: customTextColor
34155      };
34156      return (0,external_wp_element_namespaceObject.createElement)("figure", {
34157        className: figureClass,
34158        style: figureStyles
34159      }, (0,external_wp_element_namespaceObject.createElement)("blockquote", {
34160        className: blockquoteClasses,
34161        style: blockquoteStyle
34162      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34163        value: value,
34164        multiline: true
34165      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34166        tagName: "cite",
34167        value: citation
34168      })));
34169    },
34170  
34171    migrate(_ref6) {
34172      let {
34173        className,
34174        mainColor,
34175        customMainColor,
34176        customTextColor,
34177        ...attributes
34178      } = _ref6;
34179      const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS);
34180      let style = {};
34181  
34182      if (customMainColor) {
34183        if (!isSolidColorStyle) {
34184          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
34185          style = {
34186            border: {
34187              color: customMainColor
34188            }
34189          };
34190        } else {
34191          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
34192          style = {
34193            color: {
34194              background: customMainColor
34195            }
34196          };
34197        }
34198      } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
34199  
34200  
34201      if (customTextColor && style) {
34202        style.color = { ...style.color,
34203          text: customTextColor
34204        };
34205      }
34206  
34207      return {
34208        className,
34209        backgroundColor: isSolidColorStyle ? mainColor : undefined,
34210        borderColor: isSolidColorStyle ? undefined : mainColor,
34211        textAlign: isSolidColorStyle ? 'left' : undefined,
34212        style,
34213        ...attributes
34214      };
34215    }
34216  
34217  }, {
34218    attributes: { ...pullquote_deprecated_blockAttributes
34219    },
34220  
34221    save(_ref7) {
34222      let {
34223        attributes
34224      } = _ref7;
34225      const {
34226        value,
34227        citation
34228      } = attributes;
34229      return (0,external_wp_element_namespaceObject.createElement)("blockquote", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34230        value: value,
34231        multiline: true
34232      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34233        tagName: "cite",
34234        value: citation
34235      }));
34236    }
34237  
34238  }, {
34239    attributes: { ...pullquote_deprecated_blockAttributes,
34240      citation: {
34241        type: 'string',
34242        source: 'html',
34243        selector: 'footer'
34244      },
34245      align: {
34246        type: 'string',
34247        default: 'none'
34248      }
34249    },
34250  
34251    save(_ref8) {
34252      let {
34253        attributes
34254      } = _ref8;
34255      const {
34256        value,
34257        citation,
34258        align
34259      } = attributes;
34260      return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
34261        className: `align$align}`
34262      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34263        value: value,
34264        multiline: true
34265      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34266        tagName: "footer",
34267        value: citation
34268      }));
34269    }
34270  
34271  }];
34272  /* harmony default export */ var pullquote_deprecated = (pullquote_deprecated_deprecated);
34273  
34274  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js
34275  const Figure = 'figure';
34276  
34277  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js
34278  const BlockQuote = 'blockquote';
34279  
34280  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js
34281  
34282  
34283  /**
34284   * External dependencies
34285   */
34286  
34287  /**
34288   * WordPress dependencies
34289   */
34290  
34291  
34292  
34293  
34294  
34295  /**
34296   * Internal dependencies
34297   */
34298  
34299  
34300  
34301  const isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
34302  
34303  function PullQuoteEdit(_ref) {
34304    let {
34305      attributes,
34306      setAttributes,
34307      isSelected,
34308      insertBlocksAfter
34309    } = _ref;
34310    const {
34311      textAlign,
34312      citation,
34313      value
34314    } = attributes;
34315    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
34316      className: classnames_default()({
34317        [`has-text-align-$textAlign}`]: textAlign
34318      })
34319    });
34320    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected;
34321    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
34322      group: "block"
34323    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
34324      value: textAlign,
34325      onChange: nextAlign => {
34326        setAttributes({
34327          textAlign: nextAlign
34328        });
34329      }
34330    })), (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, {
34331      identifier: "value",
34332      multiline: true,
34333      value: value,
34334      onChange: nextValue => setAttributes({
34335        value: nextValue
34336      }),
34337      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote text'),
34338      placeholder: // translators: placeholder text used for the quote
34339      (0,external_wp_i18n_namespaceObject.__)('Add quote'),
34340      textAlign: "center"
34341    }), shouldShowCitation && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
34342      identifier: "citation",
34343      tagName: isWebPlatform ? 'cite' : undefined,
34344      style: {
34345        display: 'block'
34346      },
34347      value: citation,
34348      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote citation text'),
34349      placeholder: // translators: placeholder text used for the citation
34350      (0,external_wp_i18n_namespaceObject.__)('Add citation'),
34351      onChange: nextCitation => setAttributes({
34352        citation: nextCitation
34353      }),
34354      className: "wp-block-pullquote__citation",
34355      __unstableMobileNoFocusOnMount: true,
34356      textAlign: "center",
34357      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
34358    }))));
34359  }
34360  
34361  /* harmony default export */ var pullquote_edit = (PullQuoteEdit);
34362  
34363  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/save.js
34364  
34365  
34366  /**
34367   * External dependencies
34368   */
34369  
34370  /**
34371   * WordPress dependencies
34372   */
34373  
34374  
34375  function pullquote_save_save(_ref) {
34376    let {
34377      attributes
34378    } = _ref;
34379    const {
34380      textAlign,
34381      citation,
34382      value
34383    } = attributes;
34384    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
34385    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({
34386      className: classnames_default()({
34387        [`has-text-align-$textAlign}`]: textAlign
34388      })
34389    }), (0,external_wp_element_namespaceObject.createElement)("blockquote", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34390      value: value,
34391      multiline: true
34392    }), shouldShowCitation && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
34393      tagName: "cite",
34394      value: citation
34395    })));
34396  }
34397  
34398  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js
34399  /**
34400   * WordPress dependencies
34401   */
34402  
34403  
34404  const pullquote_transforms_transforms = {
34405    from: [{
34406      type: 'block',
34407      isMultiBlock: true,
34408      blocks: ['core/paragraph'],
34409      transform: attributes => {
34410        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
34411          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
34412            value: (0,external_wp_richText_namespaceObject.join)(attributes.map(_ref => {
34413              let {
34414                content
34415              } = _ref;
34416              return (0,external_wp_richText_namespaceObject.create)({
34417                html: content
34418              });
34419            }), '\u2028'),
34420            multilineTag: 'p'
34421          }),
34422          anchor: attributes.anchor
34423        });
34424      }
34425    }, {
34426      type: 'block',
34427      blocks: ['core/heading'],
34428      transform: _ref2 => {
34429        let {
34430          content,
34431          anchor
34432        } = _ref2;
34433        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
34434          value: `<p>$content}</p>`,
34435          anchor
34436        });
34437      }
34438    }],
34439    to: [{
34440      type: 'block',
34441      blocks: ['core/paragraph'],
34442      transform: _ref3 => {
34443        let {
34444          value,
34445          citation
34446        } = _ref3;
34447        const paragraphs = [];
34448  
34449        if (value && value !== '<p></p>') {
34450          paragraphs.push(...(0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
34451            html: value,
34452            multilineTag: 'p'
34453          }), '\u2028').map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
34454            content: (0,external_wp_richText_namespaceObject.toHTMLString)({
34455              value: piece
34456            })
34457          })));
34458        }
34459  
34460        if (citation && citation !== '<p></p>') {
34461          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
34462            content: citation
34463          }));
34464        }
34465  
34466        if (paragraphs.length === 0) {
34467          return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
34468            content: ''
34469          });
34470        }
34471  
34472        return paragraphs;
34473      }
34474    }, {
34475      type: 'block',
34476      blocks: ['core/heading'],
34477      transform: _ref4 => {
34478        let {
34479          value,
34480          citation,
34481          ...attrs
34482        } = _ref4;
34483  
34484        // If there is no pullquote content, use the citation as the
34485        // content of the resulting heading. A nonexistent citation
34486        // will result in an empty heading.
34487        if (value === '<p></p>') {
34488          return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
34489            content: citation
34490          });
34491        }
34492  
34493        const pieces = (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
34494          html: value,
34495          multilineTag: 'p'
34496        }), '\u2028');
34497        const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
34498          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
34499            value: pieces[0]
34500          })
34501        });
34502  
34503        if (!citation && pieces.length === 1) {
34504          return headingBlock;
34505        }
34506  
34507        const quotePieces = pieces.slice(1);
34508        const pullquoteBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { ...attrs,
34509          citation,
34510          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
34511            value: quotePieces.length ? (0,external_wp_richText_namespaceObject.join)(pieces.slice(1), '\u2028') : (0,external_wp_richText_namespaceObject.create)(),
34512            multilineTag: 'p'
34513          })
34514        });
34515        return [headingBlock, pullquoteBlock];
34516      }
34517    }]
34518  };
34519  /* harmony default export */ var pullquote_transforms = (pullquote_transforms_transforms);
34520  
34521  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
34522  /**
34523   * WordPress dependencies
34524   */
34525  
34526  
34527  /**
34528   * Internal dependencies
34529   */
34530  
34531  
34532  
34533  const pullquote_metadata = {
34534    $schema: "https://schemas.wp.org/trunk/block.json",
34535    apiVersion: 2,
34536    name: "core/pullquote",
34537    title: "Pullquote",
34538    category: "text",
34539    description: "Give special visual emphasis to a quote from your text.",
34540    textdomain: "default",
34541    attributes: {
34542      value: {
34543        type: "string",
34544        source: "html",
34545        selector: "blockquote",
34546        multiline: "p",
34547        __experimentalRole: "content"
34548      },
34549      citation: {
34550        type: "string",
34551        source: "html",
34552        selector: "cite",
34553        "default": "",
34554        __experimentalRole: "content"
34555      },
34556      textAlign: {
34557        type: "string"
34558      }
34559    },
34560    supports: {
34561      anchor: true,
34562      align: ["left", "right", "wide", "full"],
34563      color: {
34564        gradients: true,
34565        background: true,
34566        link: true,
34567        __experimentalDefaultControls: {
34568          background: true,
34569          text: true
34570        }
34571      },
34572      typography: {
34573        fontSize: true,
34574        lineHeight: true,
34575        __experimentalFontStyle: true,
34576        __experimentalFontWeight: true,
34577        __experimentalLetterSpacing: true,
34578        __experimentalTextTransform: true,
34579        __experimentalDefaultControls: {
34580          fontSize: true,
34581          fontAppearance: true
34582        }
34583      },
34584      __experimentalBorder: {
34585        color: true,
34586        radius: true,
34587        style: true,
34588        width: true,
34589        __experimentalDefaultControls: {
34590          color: true,
34591          radius: true,
34592          style: true,
34593          width: true
34594        }
34595      }
34596    },
34597    editorStyle: "wp-block-pullquote-editor",
34598    style: "wp-block-pullquote"
34599  };
34600  
34601  
34602  const {
34603    name: pullquote_name
34604  } = pullquote_metadata;
34605  
34606  const pullquote_settings = {
34607    icon: library_pullquote,
34608    example: {
34609      attributes: {
34610        value: '<p>' + // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.
34611        (0,external_wp_i18n_namespaceObject.__)('One of the hardest things to do in technology is disrupt yourself.') + '</p>',
34612        citation: (0,external_wp_i18n_namespaceObject.__)('Matt Mullenweg')
34613      }
34614    },
34615    transforms: pullquote_transforms,
34616    edit: pullquote_edit,
34617    save: pullquote_save_save,
34618    deprecated: pullquote_deprecated
34619  };
34620  
34621  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/loop.js
34622  
34623  
34624  /**
34625   * WordPress dependencies
34626   */
34627  
34628  const loop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
34629    viewBox: "0 0 24 24",
34630    xmlns: "http://www.w3.org/2000/svg"
34631  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
34632    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"
34633  }));
34634  /* harmony default export */ var library_loop = (loop);
34635  
34636  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/settings.js
34637  
34638  
34639  /**
34640   * WordPress dependencies
34641   */
34642  
34643  const settings_settings = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
34644    xmlns: "http://www.w3.org/2000/svg",
34645    viewBox: "0 0 24 24"
34646  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
34647    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"
34648  }));
34649  /* harmony default export */ var library_settings = (settings_settings);
34650  
34651  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-toolbar.js
34652  
34653  
34654  /**
34655   * WordPress dependencies
34656   */
34657  
34658  
34659  
34660  
34661  function QueryToolbar(_ref) {
34662    let {
34663      attributes: {
34664        query,
34665        displayLayout
34666      },
34667      setQuery,
34668      setDisplayLayout,
34669      openPatternSelectionModal
34670    } = _ref;
34671    const maxPageInputId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryToolbar, 'blocks-query-pagination-max-page-input');
34672    const displayLayoutControls = [{
34673      icon: library_list,
34674      title: (0,external_wp_i18n_namespaceObject.__)('List view'),
34675      onClick: () => setDisplayLayout({
34676        type: 'list'
34677      }),
34678      isActive: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'list'
34679    }, {
34680      icon: library_grid,
34681      title: (0,external_wp_i18n_namespaceObject.__)('Grid view'),
34682      onClick: () => setDisplayLayout({
34683        type: 'flex',
34684        columns: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.columns) || 3
34685      }),
34686      isActive: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'flex'
34687    }];
34688    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, {
34689      contentClassName: "block-library-query-toolbar__popover",
34690      renderToggle: _ref2 => {
34691        let {
34692          onToggle
34693        } = _ref2;
34694        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
34695          icon: library_settings,
34696          label: (0,external_wp_i18n_namespaceObject.__)('Display settings'),
34697          onClick: onToggle
34698        });
34699      },
34700      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, {
34701        __unstableInputWidth: "60px",
34702        label: (0,external_wp_i18n_namespaceObject.__)('Items per Page'),
34703        labelPosition: "edge",
34704        min: 1,
34705        max: 100,
34706        onChange: value => {
34707          if (isNaN(value) || value < 1 || value > 100) {
34708            return;
34709          }
34710  
34711          setQuery({
34712            perPage: value
34713          });
34714        },
34715        step: "1",
34716        value: query.perPage,
34717        isDragEnabled: false
34718      })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, {
34719        __unstableInputWidth: "60px",
34720        label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
34721        labelPosition: "edge",
34722        min: 0,
34723        max: 100,
34724        onChange: value => {
34725          if (isNaN(value) || value < 0 || value > 100) {
34726            return;
34727          }
34728  
34729          setQuery({
34730            offset: value
34731          });
34732        },
34733        step: "1",
34734        value: query.offset,
34735        isDragEnabled: false
34736      })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
34737        id: maxPageInputId,
34738        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).')
34739      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, {
34740        id: maxPageInputId,
34741        __unstableInputWidth: "60px",
34742        label: (0,external_wp_i18n_namespaceObject.__)('Max page to show'),
34743        labelPosition: "edge",
34744        min: 0,
34745        onChange: value => {
34746          if (isNaN(value) || value < 0) {
34747            return;
34748          }
34749  
34750          setQuery({
34751            pages: value
34752          });
34753        },
34754        step: "1",
34755        value: query.pages,
34756        isDragEnabled: false
34757      })))
34758    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
34759      className: "wp-block-template-part__block-control-group"
34760    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
34761      onClick: openPatternSelectionModal
34762    }, (0,external_wp_i18n_namespaceObject.__)('Replace'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, {
34763      controls: displayLayoutControls
34764    }));
34765  }
34766  
34767  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/order-control.js
34768  
34769  
34770  /**
34771   * WordPress dependencies
34772   */
34773  
34774  
34775  const orderOptions = [{
34776    label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
34777    value: 'date/desc'
34778  }, {
34779    label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
34780    value: 'date/asc'
34781  }, {
34782    /* translators: label for ordering posts by title in ascending order */
34783    label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
34784    value: 'title/asc'
34785  }, {
34786    /* translators: label for ordering posts by title in descending order */
34787    label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
34788    value: 'title/desc'
34789  }];
34790  
34791  function OrderControl(_ref) {
34792    let {
34793      order,
34794      orderBy,
34795      onChange
34796    } = _ref;
34797    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
34798      label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
34799      value: `$orderBy}/$order}`,
34800      options: orderOptions,
34801      onChange: value => {
34802        const [newOrderBy, newOrder] = value.split('/');
34803        onChange({
34804          order: newOrder,
34805          orderBy: newOrderBy
34806        });
34807      }
34808    });
34809  }
34810  
34811  /* harmony default export */ var order_control = (OrderControl);
34812  
34813  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/utils.js
34814  /**
34815   * WordPress dependencies
34816   */
34817  
34818  
34819  
34820  /**
34821   * @typedef IHasNameAndId
34822   * @property {string|number} id   The entity's id.
34823   * @property {string}        name The entity's name.
34824   */
34825  
34826  /**
34827   * The object used in Query block that contains info and helper mappings
34828   * from an array of IHasNameAndId objects.
34829   *
34830   * @typedef {Object} QueryEntitiesInfo
34831   * @property {IHasNameAndId[]}               entities  The array of entities.
34832   * @property {Object<string, IHasNameAndId>} mapById   Object mapping with the id as key and the entity as value.
34833   * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.
34834   * @property {string[]}                      names     Array with the entities' names.
34835   */
34836  
34837  /**
34838   * Returns a helper object with mapping from Objects that implement
34839   * the `IHasNameAndId` interface. The returned object is used for
34840   * integration with `FormTokenField` component.
34841   *
34842   * @param {IHasNameAndId[]} entities The entities to extract of helper object.
34843   * @return {QueryEntitiesInfo} The object with the entities information.
34844   */
34845  
34846  const getEntitiesInfo = entities => {
34847    const mapping = entities === null || entities === void 0 ? void 0 : entities.reduce((accumulator, entity) => {
34848      const {
34849        mapById,
34850        mapByName,
34851        names
34852      } = accumulator;
34853      mapById[entity.id] = entity;
34854      mapByName[entity.name] = entity;
34855      names.push(entity.name);
34856      return accumulator;
34857    }, {
34858      mapById: {},
34859      mapByName: {},
34860      names: []
34861    });
34862    return {
34863      entities,
34864      ...mapping
34865    };
34866  };
34867  /**
34868   * Returns a helper object that contains:
34869   * 1. An `options` object from the available post types, to be passed to a `SelectControl`.
34870   * 2. A helper map with available taxonomies per post type.
34871   *
34872   * @return {Object} The helper object related to post types.
34873   */
34874  
34875  const usePostTypes = () => {
34876    const postTypes = (0,external_wp_data_namespaceObject.useSelect)(select => {
34877      var _getPostTypes;
34878  
34879      const {
34880        getPostTypes
34881      } = select(external_wp_coreData_namespaceObject.store);
34882      const excludedPostTypes = ['attachment'];
34883      const filteredPostTypes = (_getPostTypes = getPostTypes({
34884        per_page: -1
34885      })) === null || _getPostTypes === void 0 ? void 0 : _getPostTypes.filter(_ref => {
34886        let {
34887          viewable,
34888          slug
34889        } = _ref;
34890        return viewable && !excludedPostTypes.includes(slug);
34891      });
34892      return filteredPostTypes;
34893    }, []);
34894    const postTypesTaxonomiesMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
34895      if (!(postTypes !== null && postTypes !== void 0 && postTypes.length)) return;
34896      return postTypes.reduce((accumulator, type) => {
34897        accumulator[type.slug] = type.taxonomies;
34898        return accumulator;
34899      }, {});
34900    }, [postTypes]);
34901    const postTypesSelectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => (postTypes || []).map(_ref2 => {
34902      let {
34903        labels,
34904        slug
34905      } = _ref2;
34906      return {
34907        label: labels.singular_name,
34908        value: slug
34909      };
34910    }), [postTypes]);
34911    return {
34912      postTypesTaxonomiesMap,
34913      postTypesSelectOptions
34914    };
34915  };
34916  /**
34917   * Hook that returns the taxonomies associated with a specific post type.
34918   *
34919   * @param {string} postType The post type from which to retrieve the associated taxonomies.
34920   * @return {Object[]} An array of the associated taxonomies.
34921   */
34922  
34923  const useTaxonomies = postType => {
34924    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
34925      const {
34926        getTaxonomies
34927      } = select(external_wp_coreData_namespaceObject.store);
34928      const filteredTaxonomies = getTaxonomies({
34929        type: postType,
34930        per_page: -1,
34931        context: 'view'
34932      });
34933      return filteredTaxonomies;
34934    }, [postType]);
34935    return taxonomies;
34936  };
34937  /**
34938   * Recurses over a list of blocks and returns the first found
34939   * Query Loop block's clientId.
34940   *
34941   * @param {WPBlock[]} blocks The list of blocks to look through.
34942   * @return {string=} The first found Query Loop's clientId.
34943   */
34944  
34945  const getFirstQueryClientIdFromBlocks = blocks => {
34946    const blocksQueue = [...blocks];
34947  
34948    while (blocksQueue.length > 0) {
34949      var _block$innerBlocks;
34950  
34951      const block = blocksQueue.shift();
34952  
34953      if (block.name === 'core/query') {
34954        return block.clientId;
34955      }
34956  
34957      (_block$innerBlocks = block.innerBlocks) === null || _block$innerBlocks === void 0 ? void 0 : _block$innerBlocks.forEach(innerBlock => {
34958        blocksQueue.push(innerBlock);
34959      });
34960    }
34961  };
34962  
34963  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/author-control.js
34964  
34965  
34966  /**
34967   * WordPress dependencies
34968   */
34969  
34970  
34971  
34972  
34973  /**
34974   * Internal dependencies
34975   */
34976  
34977  
34978  const author_control_AUTHORS_QUERY = {
34979    who: 'authors',
34980    per_page: -1,
34981    _fields: 'id,name',
34982    context: 'view'
34983  };
34984  
34985  function AuthorControl(_ref) {
34986    let {
34987      value,
34988      onChange
34989    } = _ref;
34990    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
34991      const {
34992        getUsers
34993      } = select(external_wp_coreData_namespaceObject.store);
34994      return getUsers(author_control_AUTHORS_QUERY);
34995    }, []);
34996  
34997    if (!authorsList) {
34998      return null;
34999    }
35000  
35001    const authorsInfo = getEntitiesInfo(authorsList);
35002    /**
35003     * We need to normalize the value because the block operates on a
35004     * comma(`,`) separated string value and `FormTokenFiels` needs an
35005     * array.
35006     */
35007  
35008    const normalizedValue = !value ? [] : value.toString().split(','); // Returns only the existing authors ids. This prevents the component
35009    // from crashing in the editor, when non existing ids are provided.
35010  
35011    const sanitizedValue = normalizedValue.reduce((accumulator, authorId) => {
35012      const author = authorsInfo.mapById[authorId];
35013  
35014      if (author) {
35015        accumulator.push({
35016          id: authorId,
35017          value: author.name
35018        });
35019      }
35020  
35021      return accumulator;
35022    }, []);
35023  
35024    const getIdByValue = (entitiesMappedByName, authorValue) => {
35025      var _entitiesMappedByName;
35026  
35027      const id = (authorValue === null || authorValue === void 0 ? void 0 : authorValue.id) || ((_entitiesMappedByName = entitiesMappedByName[authorValue]) === null || _entitiesMappedByName === void 0 ? void 0 : _entitiesMappedByName.id);
35028      if (id) return id;
35029    };
35030  
35031    const onAuthorChange = newValue => {
35032      const ids = Array.from(newValue.reduce((accumulator, author) => {
35033        // Verify that new values point to existing entities.
35034        const id = getIdByValue(authorsInfo.mapByName, author);
35035        if (id) accumulator.add(id);
35036        return accumulator;
35037      }, new Set()));
35038      onChange({
35039        author: ids.join(',')
35040      });
35041    };
35042  
35043    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, {
35044      label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
35045      value: sanitizedValue,
35046      suggestions: authorsInfo.names,
35047      onChange: onAuthorChange
35048    });
35049  }
35050  
35051  /* harmony default export */ var author_control = (AuthorControl);
35052  
35053  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/constants.js
35054  const MAX_FETCHED_TERMS = 100;
35055  const DEFAULTS_POSTS_PER_PAGE = 3;
35056  /* harmony default export */ var constants = ({
35057    MAX_FETCHED_TERMS,
35058    DEFAULTS_POSTS_PER_PAGE
35059  });
35060  
35061  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/taxonomy-controls.js
35062  
35063  
35064  /**
35065   * WordPress dependencies
35066   */
35067  
35068  
35069  
35070  /**
35071   * Internal dependencies
35072   */
35073  
35074  
35075   // Helper function to get the term id based on user input in terms `FormTokenField`.
35076  
35077  const getTermIdByTermValue = (termsMappedByName, termValue) => {
35078    var _termsMappedByName$te;
35079  
35080    // First we check for exact match by `term.id` or case sensitive `term.name` match.
35081    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);
35082    if (termId) return termId;
35083    /**
35084     * Here we make an extra check for entered terms in a non case sensitive way,
35085     * to match user expectations, due to `FormTokenField` behaviour that shows
35086     * suggestions which are case insensitive.
35087     *
35088     * Although WP tries to discourage users to add terms with the same name (case insensitive),
35089     * it's still possible if you manually change the name, as long as the terms have different slugs.
35090     * In this edge case we always apply the first match from the terms list.
35091     */
35092  
35093    const termValueLower = termValue.toLocaleLowerCase();
35094  
35095    for (const term in termsMappedByName) {
35096      if (term.toLocaleLowerCase() === termValueLower) {
35097        return termsMappedByName[term].id;
35098      }
35099    }
35100  };
35101  
35102  function TaxonomyControls(_ref) {
35103    let {
35104      onChange,
35105      query
35106    } = _ref;
35107    const taxonomies = useTaxonomies(query.postType);
35108    const taxonomiesInfo = (0,external_wp_data_namespaceObject.useSelect)(select => {
35109      const {
35110        getEntityRecords
35111      } = select(external_wp_coreData_namespaceObject.store);
35112      const termsQuery = {
35113        per_page: MAX_FETCHED_TERMS
35114      };
35115  
35116      const _taxonomiesInfo = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.map(_ref2 => {
35117        let {
35118          slug,
35119          name
35120        } = _ref2;
35121  
35122        const _terms = getEntityRecords('taxonomy', slug, termsQuery);
35123  
35124        return {
35125          slug,
35126          name,
35127          terms: getEntitiesInfo(_terms)
35128        };
35129      });
35130  
35131      return _taxonomiesInfo;
35132    }, [taxonomies]);
35133  
35134    const onTermsChange = taxonomySlug => newTermValues => {
35135      const taxonomyInfo = taxonomiesInfo.find(_ref3 => {
35136        let {
35137          slug
35138        } = _ref3;
35139        return slug === taxonomySlug;
35140      });
35141      if (!taxonomyInfo) return;
35142      const termIds = Array.from(newTermValues.reduce((accumulator, termValue) => {
35143        const termId = getTermIdByTermValue(taxonomyInfo.terms.mapByName, termValue);
35144        if (termId) accumulator.add(termId);
35145        return accumulator;
35146      }, new Set()));
35147      const newTaxQuery = { ...query.taxQuery,
35148        [taxonomySlug]: termIds
35149      };
35150      onChange({
35151        taxQuery: newTaxQuery
35152      });
35153    }; // Returns only the existing term ids in proper format to be
35154    // used in `FormTokenField`. This prevents the component from
35155    // crashing in the editor, when non existing term ids were provided.
35156  
35157  
35158    const getExistingTaxQueryValue = taxonomySlug => {
35159      var _query$taxQuery;
35160  
35161      const taxonomyInfo = taxonomiesInfo.find(_ref4 => {
35162        let {
35163          slug
35164        } = _ref4;
35165        return slug === taxonomySlug;
35166      });
35167      if (!taxonomyInfo) return [];
35168      return (((_query$taxQuery = query.taxQuery) === null || _query$taxQuery === void 0 ? void 0 : _query$taxQuery[taxonomySlug]) || []).reduce((accumulator, termId) => {
35169        const term = taxonomyInfo.terms.mapById[termId];
35170  
35171        if (term) {
35172          accumulator.push({
35173            id: termId,
35174            value: term.name
35175          });
35176        }
35177  
35178        return accumulator;
35179      }, []);
35180    };
35181  
35182    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !!(taxonomiesInfo !== null && taxonomiesInfo !== void 0 && taxonomiesInfo.length) && taxonomiesInfo.map(_ref5 => {
35183      var _terms$names;
35184  
35185      let {
35186        slug,
35187        name,
35188        terms
35189      } = _ref5;
35190  
35191      if (!(terms !== null && terms !== void 0 && (_terms$names = terms.names) !== null && _terms$names !== void 0 && _terms$names.length)) {
35192        return null;
35193      }
35194  
35195      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, {
35196        key: slug,
35197        label: name,
35198        value: getExistingTaxQueryValue(slug),
35199        suggestions: terms.names,
35200        onChange: onTermsChange(slug)
35201      });
35202    }));
35203  }
35204  
35205  /* harmony default export */ var taxonomy_controls = (TaxonomyControls);
35206  
35207  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/index.js
35208  
35209  
35210  /**
35211   * External dependencies
35212   */
35213  
35214  /**
35215   * WordPress dependencies
35216   */
35217  
35218  
35219  
35220  
35221  
35222  /**
35223   * Internal dependencies
35224   */
35225  
35226  
35227  
35228  
35229  
35230  const stickyOptions = [{
35231    label: (0,external_wp_i18n_namespaceObject.__)('Include'),
35232    value: ''
35233  }, {
35234    label: (0,external_wp_i18n_namespaceObject.__)('Exclude'),
35235    value: 'exclude'
35236  }, {
35237    label: (0,external_wp_i18n_namespaceObject.__)('Only'),
35238    value: 'only'
35239  }];
35240  function QueryInspectorControls(_ref) {
35241    let {
35242      attributes: {
35243        query,
35244        displayLayout
35245      },
35246      setQuery,
35247      setDisplayLayout
35248    } = _ref;
35249    const {
35250      order,
35251      orderBy,
35252      author: authorIds,
35253      postType,
35254      sticky,
35255      inherit,
35256      taxQuery
35257    } = query;
35258    const [showSticky, setShowSticky] = (0,external_wp_element_namespaceObject.useState)(postType === 'post');
35259    const {
35260      postTypesTaxonomiesMap,
35261      postTypesSelectOptions
35262    } = usePostTypes();
35263    (0,external_wp_element_namespaceObject.useEffect)(() => {
35264      setShowSticky(postType === 'post');
35265    }, [postType]);
35266  
35267    const onPostTypeChange = newValue => {
35268      const updateQuery = {
35269        postType: newValue
35270      }; // We need to dynamically update the `taxQuery` property,
35271      // by removing any not supported taxonomy from the query.
35272  
35273      const supportedTaxonomies = postTypesTaxonomiesMap[newValue];
35274      const updatedTaxQuery = Object.entries(taxQuery || {}).reduce((accumulator, _ref2) => {
35275        let [taxonomySlug, terms] = _ref2;
35276  
35277        if (supportedTaxonomies.includes(taxonomySlug)) {
35278          accumulator[taxonomySlug] = terms;
35279        }
35280  
35281        return accumulator;
35282      }, {});
35283      updateQuery.taxQuery = !!Object.keys(updatedTaxQuery).length ? updatedTaxQuery : undefined;
35284  
35285      if (newValue !== 'post') {
35286        updateQuery.sticky = '';
35287      }
35288  
35289      setQuery(updateQuery);
35290    };
35291  
35292    const [querySearch, setQuerySearch] = (0,external_wp_element_namespaceObject.useState)(query.search);
35293    const onChangeDebounced = (0,external_wp_element_namespaceObject.useCallback)((0,external_lodash_namespaceObject.debounce)(() => {
35294      if (query.search !== querySearch) {
35295        setQuery({
35296          search: querySearch
35297        });
35298      }
35299    }, 250), [querySearch, query.search]);
35300    (0,external_wp_element_namespaceObject.useEffect)(() => {
35301      onChangeDebounced();
35302      return onChangeDebounced.cancel;
35303    }, [querySearch, onChangeDebounced]);
35304    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
35305      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
35306    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
35307      label: (0,external_wp_i18n_namespaceObject.__)('Inherit query from template'),
35308      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.'),
35309      checked: !!inherit,
35310      onChange: value => setQuery({
35311        inherit: !!value
35312      })
35313    }), !inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
35314      options: postTypesSelectOptions,
35315      value: postType,
35316      label: (0,external_wp_i18n_namespaceObject.__)('Post type'),
35317      onChange: onPostTypeChange,
35318      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.')
35319    }), (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, {
35320      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
35321      value: displayLayout.columns,
35322      onChange: value => setDisplayLayout({
35323        columns: value
35324      }),
35325      min: 2,
35326      max: Math.max(6, displayLayout.columns)
35327    }), displayLayout.columns > 6 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, {
35328      status: "warning",
35329      isDismissible: false
35330    }, (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, {
35331      order,
35332      orderBy,
35333      onChange: setQuery
35334    }), showSticky && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
35335      label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
35336      options: stickyOptions,
35337      value: sticky,
35338      onChange: value => setQuery({
35339        sticky: value
35340      }),
35341      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.')
35342    })), !inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
35343      title: (0,external_wp_i18n_namespaceObject.__)('Filters')
35344    }, (0,external_wp_element_namespaceObject.createElement)(taxonomy_controls, {
35345      onChange: setQuery,
35346      query: query
35347    }), (0,external_wp_element_namespaceObject.createElement)(author_control, {
35348      value: authorIds,
35349      onChange: setQuery
35350    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
35351      label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
35352      value: querySearch,
35353      onChange: setQuerySearch
35354    })));
35355  }
35356  
35357  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-placeholder.js
35358  
35359  
35360  /**
35361   * WordPress dependencies
35362   */
35363  
35364  
35365  
35366  
35367  function QueryPlaceholder(_ref) {
35368    let {
35369      clientId,
35370      name,
35371      setAttributes,
35372      icon,
35373      label
35374    } = _ref;
35375    const {
35376      defaultVariation,
35377      scopeVariations
35378    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
35379      const {
35380        getBlockVariations,
35381        getBlockType,
35382        getDefaultBlockVariation
35383      } = select(external_wp_blocks_namespaceObject.store);
35384      return {
35385        blockType: getBlockType(name),
35386        defaultVariation: getDefaultBlockVariation(name, 'block'),
35387        scopeVariations: getBlockVariations(name, 'block')
35388      };
35389    }, [name]);
35390    const {
35391      replaceInnerBlocks
35392    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35393    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
35394    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
35395      icon: icon,
35396      label: label,
35397      variations: scopeVariations,
35398      onSelect: function () {
35399        let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;
35400  
35401        if (nextVariation.attributes) {
35402          setAttributes(nextVariation.attributes);
35403        }
35404  
35405        if (nextVariation.innerBlocks) {
35406          replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), false);
35407        }
35408      }
35409    }));
35410  }
35411  
35412  /* harmony default export */ var query_placeholder = (QueryPlaceholder);
35413  
35414  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/index.js
35415  
35416  
35417  
35418  /**
35419   * WordPress dependencies
35420   */
35421  
35422  
35423  
35424  
35425  
35426  
35427  
35428  /**
35429   * Internal dependencies
35430   */
35431  
35432  
35433  
35434  
35435  
35436  
35437  const query_edit_TEMPLATE = [['core/post-template']];
35438  function QueryContent(_ref) {
35439    let {
35440      attributes,
35441      setAttributes,
35442      openPatternSelectionModal
35443    } = _ref;
35444    const {
35445      queryId,
35446      query,
35447      displayLayout,
35448      tagName: TagName = 'div',
35449      layout = {}
35450    } = attributes;
35451    const {
35452      __unstableMarkNextChangeAsNotPersistent
35453    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35454    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryContent);
35455    const {
35456      themeSupportsLayout
35457    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
35458      var _getSettings;
35459  
35460      const {
35461        getSettings
35462      } = select(external_wp_blockEditor_namespaceObject.store);
35463      return {
35464        themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout
35465      };
35466    }, []);
35467    const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
35468    const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
35469    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
35470    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
35471      template: query_edit_TEMPLATE,
35472      __experimentalLayout: themeSupportsLayout ? usedLayout : undefined
35473    });
35474    const {
35475      postsPerPage
35476    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
35477      const {
35478        getSettings
35479      } = select(external_wp_blockEditor_namespaceObject.store);
35480      return {
35481        postsPerPage: +getSettings().postsPerPage || DEFAULTS_POSTS_PER_PAGE
35482      };
35483    }, []); // There are some effects running where some initialization logic is
35484    // happening and setting some values to some attributes (ex. queryId).
35485    // These updates can cause an `undo trap` where undoing will result in
35486    // resetting again, so we need to mark these changes as not persistent
35487    // with `__unstableMarkNextChangeAsNotPersistent`.
35488    // Changes in query property (which is an object) need to be in the same callback,
35489    // because updates are batched after the render and changes in different query properties
35490    // would cause to override previous wanted changes.
35491  
35492    (0,external_wp_element_namespaceObject.useEffect)(() => {
35493      const newQuery = {};
35494  
35495      if (!query.perPage && postsPerPage) {
35496        newQuery.perPage = postsPerPage;
35497      }
35498  
35499      if (!!Object.keys(newQuery).length) {
35500        __unstableMarkNextChangeAsNotPersistent();
35501  
35502        updateQuery(newQuery);
35503      }
35504    }, [query.perPage]); // We need this for multi-query block pagination.
35505    // Query parameters for each block are scoped to their ID.
35506  
35507    (0,external_wp_element_namespaceObject.useEffect)(() => {
35508      if (!Number.isFinite(queryId)) {
35509        __unstableMarkNextChangeAsNotPersistent();
35510  
35511        setAttributes({
35512          queryId: instanceId
35513        });
35514      }
35515    }, [queryId, instanceId]);
35516  
35517    const updateQuery = newQuery => setAttributes({
35518      query: { ...query,
35519        ...newQuery
35520      }
35521    });
35522  
35523    const updateDisplayLayout = newDisplayLayout => setAttributes({
35524      displayLayout: { ...displayLayout,
35525        ...newDisplayLayout
35526      }
35527    });
35528  
35529    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(QueryInspectorControls, {
35530      attributes: attributes,
35531      setQuery: updateQuery,
35532      setDisplayLayout: updateDisplayLayout
35533    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(QueryToolbar, {
35534      attributes: attributes,
35535      setQuery: updateQuery,
35536      setDisplayLayout: updateDisplayLayout,
35537      openPatternSelectionModal: openPatternSelectionModal
35538    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
35539      __experimentalGroup: "advanced"
35540    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
35541      label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
35542      options: [{
35543        label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
35544        value: 'div'
35545      }, {
35546        label: '<main>',
35547        value: 'main'
35548      }, {
35549        label: '<section>',
35550        value: 'section'
35551      }, {
35552        label: '<aside>',
35553        value: 'aside'
35554      }],
35555      value: TagName,
35556      onChange: value => setAttributes({
35557        tagName: value
35558      })
35559    })), (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps));
35560  }
35561  
35562  function QueryPatternSetup(_ref2) {
35563    var _blockType$icon;
35564  
35565    let {
35566      attributes,
35567      clientId,
35568      name,
35569      openPatternSelectionModal,
35570      setAttributes
35571    } = _ref2;
35572    const [isStartingBlank, setIsStartingBlank] = (0,external_wp_element_namespaceObject.useState)(false);
35573    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
35574    const {
35575      blockType,
35576      allVariations,
35577      hasPatterns
35578    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
35579      const {
35580        getBlockVariations,
35581        getBlockType
35582      } = select(external_wp_blocks_namespaceObject.store);
35583      const {
35584        getBlockRootClientId,
35585        __experimentalGetPatternsByBlockTypes
35586      } = select(external_wp_blockEditor_namespaceObject.store);
35587      const rootClientId = getBlockRootClientId(clientId);
35588      return {
35589        blockType: getBlockType(name),
35590        allVariations: getBlockVariations(name),
35591        hasPatterns: !!__experimentalGetPatternsByBlockTypes(name, rootClientId).length
35592      };
35593    }, [name, clientId]);
35594    const matchingVariation = (0,external_wp_blockEditor_namespaceObject.__experimentalGetMatchingVariation)(attributes, allVariations);
35595    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);
35596    const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title);
35597  
35598    if (isStartingBlank) {
35599      return (0,external_wp_element_namespaceObject.createElement)(query_placeholder, {
35600        clientId: clientId,
35601        name: name,
35602        setAttributes: setAttributes,
35603        icon: icon,
35604        label: label
35605      });
35606    }
35607  
35608    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
35609      icon: icon,
35610      label: label,
35611      instructions: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern for the query loop or start blank.')
35612    }, !!hasPatterns && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
35613      variant: "primary",
35614      onClick: openPatternSelectionModal
35615    }, (0,external_wp_i18n_namespaceObject.__)('Choose')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
35616      variant: "secondary",
35617      onClick: () => {
35618        setIsStartingBlank(true);
35619      }
35620    }, (0,external_wp_i18n_namespaceObject.__)('Start blank'))));
35621  }
35622  
35623  const QueryEdit = props => {
35624    const {
35625      clientId,
35626      name
35627    } = props;
35628    const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
35629    const {
35630      replaceBlock,
35631      selectBlock
35632    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35633    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length, [clientId]);
35634    const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
35635  
35636    const onBlockPatternSelect = blocks => {
35637      const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block));
35638      const firstQueryClientId = getFirstQueryClientIdFromBlocks(clonedBlocks);
35639      replaceBlock(clientId, clonedBlocks);
35640  
35641      if (firstQueryClientId) {
35642        selectBlock(firstQueryClientId);
35643      }
35644    };
35645  
35646    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(Component, _extends({}, props, {
35647      openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
35648    })), isPatternSelectionModalOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
35649      className: "block-editor-query-pattern__selection-modal",
35650      title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
35651      closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
35652      onRequestClose: () => setIsPatternSelectionModalOpen(false)
35653    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternSetup, {
35654      blockName: name,
35655      clientId: clientId,
35656      onBlockPatternSelect: onBlockPatternSelect
35657    })));
35658  };
35659  
35660  /* harmony default export */ var query_edit = (QueryEdit);
35661  
35662  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/save.js
35663  
35664  
35665  /**
35666   * WordPress dependencies
35667   */
35668  
35669  function QuerySave(_ref) {
35670    let {
35671      attributes: {
35672        tagName: Tag = 'div'
35673      }
35674    } = _ref;
35675    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
35676    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
35677    return (0,external_wp_element_namespaceObject.createElement)(Tag, innerBlocksProps);
35678  }
35679  
35680  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/icons.js
35681  
35682  
35683  /**
35684   * WordPress dependencies
35685   */
35686  
35687  const titleDate = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
35688    xmlns: "http://www.w3.org/2000/svg",
35689    viewBox: "0 0 48 48"
35690  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
35691    d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z"
35692  }));
35693  const titleExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
35694    xmlns: "http://www.w3.org/2000/svg",
35695    viewBox: "0 0 48 48"
35696  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
35697    d: "M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z"
35698  }));
35699  const titleDateExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
35700    xmlns: "http://www.w3.org/2000/svg",
35701    viewBox: "0 0 48 48"
35702  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
35703    d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z"
35704  }));
35705  const imageDateTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
35706    xmlns: "http://www.w3.org/2000/svg",
35707    viewBox: "0 0 48 48"
35708  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
35709    d: "M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z"
35710  }));
35711  
35712  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/variations.js
35713  /**
35714   * WordPress dependencies
35715   */
35716  
35717  
35718  /**
35719   * Internal dependencies
35720   */
35721  
35722  
35723  const QUERY_DEFAULT_ATTRIBUTES = {
35724    query: {
35725      perPage: 3,
35726      pages: 0,
35727      offset: 0,
35728      postType: 'post',
35729      order: 'desc',
35730      orderBy: 'date',
35731      author: '',
35732      search: '',
35733      exclude: [],
35734      sticky: '',
35735      inherit: false
35736    }
35737  };
35738  const query_variations_variations = [{
35739    name: 'posts-list',
35740    title: (0,external_wp_i18n_namespaceObject.__)('Posts List'),
35741    description: (0,external_wp_i18n_namespaceObject.__)('Display a list of your most recent posts, excluding sticky posts.'),
35742    icon: post_list,
35743    attributes: {
35744      query: {
35745        perPage: 4,
35746        pages: 1,
35747        offset: 0,
35748        postType: 'post',
35749        order: 'desc',
35750        orderBy: 'date',
35751        author: '',
35752        search: '',
35753        sticky: 'exclude',
35754        inherit: false
35755      }
35756    },
35757    scope: ['inserter']
35758  }, {
35759    name: 'title-date',
35760    title: (0,external_wp_i18n_namespaceObject.__)('Title & Date'),
35761    icon: titleDate,
35762    attributes: { ...QUERY_DEFAULT_ATTRIBUTES
35763    },
35764    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date']]], ['core/query-pagination'], ['core/query-no-results']],
35765    scope: ['block']
35766  }, {
35767    name: 'title-excerpt',
35768    title: (0,external_wp_i18n_namespaceObject.__)('Title & Excerpt'),
35769    icon: titleExcerpt,
35770    attributes: { ...QUERY_DEFAULT_ATTRIBUTES
35771    },
35772    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
35773    scope: ['block']
35774  }, {
35775    name: 'title-date-excerpt',
35776    title: (0,external_wp_i18n_namespaceObject.__)('Title, Date, & Excerpt'),
35777    icon: titleDateExcerpt,
35778    attributes: { ...QUERY_DEFAULT_ATTRIBUTES
35779    },
35780    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
35781    scope: ['block']
35782  }, {
35783    name: 'image-date-title',
35784    title: (0,external_wp_i18n_namespaceObject.__)('Image, Date, & Title'),
35785    icon: imageDateTitle,
35786    attributes: { ...QUERY_DEFAULT_ATTRIBUTES
35787    },
35788    innerBlocks: [['core/post-template', {}, [['core/post-featured-image'], ['core/post-date'], ['core/post-title']]], ['core/query-pagination'], ['core/query-no-results']],
35789    scope: ['block']
35790  }];
35791  /* harmony default export */ var query_variations = (query_variations_variations);
35792  
35793  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/deprecated.js
35794  
35795  
35796  /**
35797   * External dependencies
35798   */
35799  
35800  /**
35801   * WordPress dependencies
35802   */
35803  
35804  
35805  
35806  const migrateToTaxQuery = attributes => {
35807    var _query$categoryIds, _query$tagIds;
35808  
35809    const {
35810      query
35811    } = attributes;
35812    const newQuery = { ...(0,external_lodash_namespaceObject.omit)(query, ['categoryIds', 'tagIds'])
35813    };
35814  
35815    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) {
35816      var _query$categoryIds2, _query$tagIds2;
35817  
35818      newQuery.taxQuery = {
35819        category: !!((_query$categoryIds2 = query.categoryIds) !== null && _query$categoryIds2 !== void 0 && _query$categoryIds2.length) ? query.categoryIds : undefined,
35820        post_tag: !!((_query$tagIds2 = query.tagIds) !== null && _query$tagIds2 !== void 0 && _query$tagIds2.length) ? query.tagIds : undefined
35821      };
35822    }
35823  
35824    return { ...attributes,
35825      query: newQuery
35826    };
35827  };
35828  
35829  const query_deprecated_deprecated = [// Version with `categoryIds and tagIds`.
35830  {
35831    attributes: {
35832      queryId: {
35833        type: 'number'
35834      },
35835      query: {
35836        type: 'object',
35837        default: {
35838          perPage: null,
35839          pages: 0,
35840          offset: 0,
35841          postType: 'post',
35842          categoryIds: [],
35843          tagIds: [],
35844          order: 'desc',
35845          orderBy: 'date',
35846          author: '',
35847          search: '',
35848          exclude: [],
35849          sticky: '',
35850          inherit: true
35851        }
35852      },
35853      tagName: {
35854        type: 'string',
35855        default: 'div'
35856      },
35857      displayLayout: {
35858        type: 'object',
35859        default: {
35860          type: 'list'
35861        }
35862      }
35863    },
35864    supports: {
35865      align: ['wide', 'full'],
35866      html: false,
35867      color: {
35868        gradients: true,
35869        link: true
35870      },
35871      __experimentalLayout: true
35872    },
35873    isEligible: _ref => {
35874      let {
35875        query: {
35876          categoryIds,
35877          tagIds
35878        } = {}
35879      } = _ref;
35880      return categoryIds || tagIds;
35881    },
35882    migrate: migrateToTaxQuery,
35883  
35884    save(_ref2) {
35885      let {
35886        attributes: {
35887          tagName: Tag = 'div'
35888        }
35889      } = _ref2;
35890      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
35891      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
35892      return (0,external_wp_element_namespaceObject.createElement)(Tag, innerBlocksProps);
35893    }
35894  
35895  }, // Version with NO wrapper `div` element.
35896  {
35897    attributes: {
35898      queryId: {
35899        type: 'number'
35900      },
35901      query: {
35902        type: 'object',
35903        default: {
35904          perPage: null,
35905          pages: 0,
35906          offset: 0,
35907          postType: 'post',
35908          categoryIds: [],
35909          tagIds: [],
35910          order: 'desc',
35911          orderBy: 'date',
35912          author: '',
35913          search: '',
35914          exclude: [],
35915          sticky: '',
35916          inherit: true
35917        }
35918      },
35919      layout: {
35920        type: 'object',
35921        default: {
35922          type: 'list'
35923        }
35924      }
35925    },
35926    supports: {
35927      html: false
35928    },
35929  
35930    migrate(attributes) {
35931      const withTaxQuery = migrateToTaxQuery(attributes);
35932      return { ...(0,external_lodash_namespaceObject.omit)(withTaxQuery, ['layout']),
35933        displayLayout: withTaxQuery.layout
35934      };
35935    },
35936  
35937    save() {
35938      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
35939    }
35940  
35941  }];
35942  /* harmony default export */ var query_deprecated = (query_deprecated_deprecated);
35943  
35944  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/hooks.js
35945  
35946  
35947  
35948  /**
35949   * WordPress dependencies
35950   */
35951  
35952  
35953  
35954  
35955  
35956  
35957  const CreateNewPostLink = _ref => {
35958    let {
35959      attributes: {
35960        query: {
35961          postType
35962        } = {}
35963      } = {}
35964    } = _ref;
35965    if (!postType) return null;
35966    const newPostUrl = (0,external_wp_url_namespaceObject.addQueryArgs)('post-new.php', {
35967      post_type: postType
35968    });
35969    return (0,external_wp_element_namespaceObject.createElement)("div", {
35970      className: "wp-block-query__create-new-link"
35971    }, (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
35972    {
35973      a: (0,external_wp_element_namespaceObject.createElement)("a", {
35974        href: newPostUrl
35975      })
35976    }));
35977  };
35978  /**
35979   * Override the default edit UI to include layout controls
35980   *
35981   * @param {Function} BlockEdit Original component
35982   * @return {Function}           Wrapped component
35983   */
35984  
35985  
35986  const queryTopInspectorControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => {
35987    const {
35988      name,
35989      isSelected
35990    } = props;
35991  
35992    if (name !== 'core/query' || !isSelected) {
35993      return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({
35994        key: "edit"
35995      }, props));
35996    }
35997  
35998    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({
35999      key: "edit"
36000    }, props)));
36001  }, 'withInspectorControls');
36002  /* harmony default export */ var query_hooks = (queryTopInspectorControls);
36003  
36004  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/index.js
36005  /**
36006   * WordPress dependencies
36007   */
36008  
36009  
36010  /**
36011   * Internal dependencies
36012   */
36013  
36014  const query_metadata = {
36015    $schema: "https://schemas.wp.org/trunk/block.json",
36016    apiVersion: 2,
36017    name: "core/query",
36018    title: "Query Loop",
36019    category: "theme",
36020    description: "An advanced block that allows displaying post types based on different query parameters and visual configurations.",
36021    textdomain: "default",
36022    attributes: {
36023      queryId: {
36024        type: "number"
36025      },
36026      query: {
36027        type: "object",
36028        "default": {
36029          perPage: null,
36030          pages: 0,
36031          offset: 0,
36032          postType: "post",
36033          order: "desc",
36034          orderBy: "date",
36035          author: "",
36036          search: "",
36037          exclude: [],
36038          sticky: "",
36039          inherit: true,
36040          taxQuery: null
36041        }
36042      },
36043      tagName: {
36044        type: "string",
36045        "default": "div"
36046      },
36047      displayLayout: {
36048        type: "object",
36049        "default": {
36050          type: "list"
36051        }
36052      }
36053    },
36054    providesContext: {
36055      queryId: "queryId",
36056      query: "query",
36057      displayLayout: "displayLayout"
36058    },
36059    supports: {
36060      align: ["wide", "full"],
36061      html: false,
36062      color: {
36063        gradients: true,
36064        link: true,
36065        __experimentalDefaultControls: {
36066          background: true,
36067          text: true
36068        }
36069      },
36070      __experimentalLayout: true
36071    },
36072    editorStyle: "wp-block-query-editor"
36073  };
36074  
36075  
36076  
36077  
36078  
36079  const {
36080    name: query_name
36081  } = query_metadata;
36082  
36083  const query_settings = {
36084    icon: library_loop,
36085    edit: query_edit,
36086    save: QuerySave,
36087    variations: query_variations,
36088    deprecated: query_deprecated
36089  }; // Importing this file includes side effects and is whitelisted
36090  // in block-library/package.json under `sideEffects`.
36091  
36092  (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/query', query_hooks);
36093  
36094  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/edit.js
36095  
36096  
36097  /**
36098   * WordPress dependencies
36099   */
36100  
36101  
36102  const query_no_results_edit_TEMPLATE = [['core/paragraph', {
36103    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text or blocks that will display when the query returns no results.')
36104  }]];
36105  function QueryNoResultsEdit() {
36106    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
36107    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
36108      template: query_no_results_edit_TEMPLATE
36109    });
36110    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
36111  }
36112  
36113  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/save.js
36114  
36115  
36116  /**
36117   * WordPress dependencies
36118   */
36119  
36120  function QueryNoResultsSave() {
36121    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
36122  }
36123  
36124  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
36125  /**
36126   * WordPress dependencies
36127   */
36128  
36129  /**
36130   * Internal dependencies
36131   */
36132  
36133  const query_no_results_metadata = {
36134    $schema: "https://schemas.wp.org/trunk/block.json",
36135    apiVersion: 2,
36136    name: "core/query-no-results",
36137    title: "No results",
36138    category: "theme",
36139    description: "Contains the block elements used to render content when no query results are found.",
36140    parent: ["core/query"],
36141    textdomain: "default",
36142    usesContext: ["queryId", "query"],
36143    supports: {
36144      align: true,
36145      reusable: false,
36146      html: false,
36147      color: {
36148        gradients: true,
36149        link: true
36150      }
36151    }
36152  };
36153  
36154  
36155  const {
36156    name: query_no_results_name
36157  } = query_no_results_metadata;
36158  
36159  const query_no_results_settings = {
36160    icon: library_loop,
36161    edit: QueryNoResultsEdit,
36162    save: QueryNoResultsSave
36163  };
36164  
36165  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-arrow-controls.js
36166  
36167  
36168  /**
36169   * WordPress dependencies
36170   */
36171  
36172  
36173  function QueryPaginationArrowControls(_ref) {
36174    let {
36175      value,
36176      onChange
36177    } = _ref;
36178    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
36179      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
36180      value: value,
36181      onChange: onChange,
36182      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous page link.'),
36183      isBlock: true
36184    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
36185      value: "none",
36186      label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Query Pagination Next/Previous blocks')
36187    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
36188      value: "arrow",
36189      label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Query Pagination Next/Previous blocks')
36190    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
36191      value: "chevron",
36192      label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Query Pagination Next/Previous blocks')
36193    }));
36194  }
36195  
36196  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/edit.js
36197  
36198  
36199  /**
36200   * WordPress dependencies
36201   */
36202  
36203  
36204  
36205  
36206  
36207  /**
36208   * Internal dependencies
36209   */
36210  
36211  
36212  const query_pagination_edit_TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']];
36213  
36214  const edit_getDefaultBlockLayout = blockTypeOrName => {
36215    const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout');
36216    return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default;
36217  };
36218  
36219  function edit_QueryPaginationEdit(_ref) {
36220    let {
36221      attributes: {
36222        paginationArrow,
36223        layout
36224      },
36225      setAttributes,
36226      clientId,
36227      name
36228    } = _ref;
36229    const usedLayout = layout || edit_getDefaultBlockLayout(name);
36230    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
36231      const {
36232        getBlocks
36233      } = select(external_wp_blockEditor_namespaceObject.store);
36234      const innerBlocks = getBlocks(clientId);
36235      /**
36236       * Show the `paginationArrow` control only if a
36237       * `QueryPaginationNext/Previous` block exists.
36238       */
36239  
36240      return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => {
36241        return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name);
36242      });
36243    }, []);
36244    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
36245    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
36246      template: query_pagination_edit_TEMPLATE,
36247      allowedBlocks: ['core/query-pagination-previous', 'core/query-pagination-numbers', 'core/query-pagination-next'],
36248      __experimentalLayout: usedLayout
36249    });
36250    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, {
36251      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
36252    }, (0,external_wp_element_namespaceObject.createElement)(QueryPaginationArrowControls, {
36253      value: paginationArrow,
36254      onChange: value => {
36255        setAttributes({
36256          paginationArrow: value
36257        });
36258      }
36259    }))), (0,external_wp_element_namespaceObject.createElement)("nav", innerBlocksProps));
36260  }
36261  
36262  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/save.js
36263  
36264  
36265  /**
36266   * WordPress dependencies
36267   */
36268  
36269  function query_pagination_save_save() {
36270    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null);
36271  }
36272  
36273  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/deprecated.js
36274  
36275  
36276  /**
36277   * WordPress dependencies
36278   */
36279  
36280  const query_pagination_deprecated_deprecated = [// Version with wrapper `div` element.
36281  {
36282    save() {
36283      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));
36284    }
36285  
36286  }];
36287  /* harmony default export */ var query_pagination_deprecated = (query_pagination_deprecated_deprecated);
36288  
36289  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
36290  /**
36291   * WordPress dependencies
36292   */
36293  
36294  /**
36295   * Internal dependencies
36296   */
36297  
36298  const query_pagination_metadata = {
36299    $schema: "https://schemas.wp.org/trunk/block.json",
36300    apiVersion: 2,
36301    name: "core/query-pagination",
36302    title: "Pagination",
36303    category: "theme",
36304    parent: ["core/query"],
36305    description: "Displays a paginated navigation to next/previous set of posts, when applicable.",
36306    textdomain: "default",
36307    attributes: {
36308      paginationArrow: {
36309        type: "string",
36310        "default": "none"
36311      }
36312    },
36313    usesContext: ["queryId", "query"],
36314    providesContext: {
36315      paginationArrow: "paginationArrow"
36316    },
36317    supports: {
36318      align: true,
36319      reusable: false,
36320      html: false,
36321      color: {
36322        gradients: true,
36323        link: true,
36324        __experimentalDefaultControls: {
36325          background: true,
36326          text: true,
36327          link: true
36328        }
36329      },
36330      __experimentalLayout: {
36331        allowSwitching: false,
36332        allowInheriting: false,
36333        "default": {
36334          type: "flex"
36335        }
36336      }
36337    },
36338    editorStyle: "wp-block-query-pagination-editor",
36339    style: "wp-block-query-pagination"
36340  };
36341  
36342  
36343  
36344  const {
36345    name: query_pagination_name
36346  } = query_pagination_metadata;
36347  
36348  const query_pagination_settings = {
36349    icon: query_pagination,
36350    edit: edit_QueryPaginationEdit,
36351    save: query_pagination_save_save,
36352    deprecated: query_pagination_deprecated
36353  };
36354  
36355  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/edit.js
36356  
36357  
36358  
36359  /**
36360   * WordPress dependencies
36361   */
36362  
36363  
36364  const query_pagination_next_edit_arrowMap = {
36365    none: '',
36366    arrow: '→',
36367    chevron: '»'
36368  };
36369  function QueryPaginationNextEdit(_ref) {
36370    let {
36371      attributes: {
36372        label
36373      },
36374      setAttributes,
36375      context: {
36376        paginationArrow
36377      }
36378    } = _ref;
36379    const displayArrow = query_pagination_next_edit_arrowMap[paginationArrow];
36380    return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
36381      href: "#pagination-next-pseudo-link",
36382      onClick: event => event.preventDefault()
36383    }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
36384      __experimentalVersion: 2,
36385      tagName: "span",
36386      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page link'),
36387      placeholder: (0,external_wp_i18n_namespaceObject.__)('Next Page'),
36388      value: label,
36389      onChange: newLabel => setAttributes({
36390        label: newLabel
36391      })
36392    }), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
36393      className: `wp-block-query-pagination-next-arrow is-arrow-$paginationArrow}`
36394    }, displayArrow));
36395  }
36396  
36397  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
36398  /**
36399   * WordPress dependencies
36400   */
36401  
36402  /**
36403   * Internal dependencies
36404   */
36405  
36406  const query_pagination_next_metadata = {
36407    $schema: "https://schemas.wp.org/trunk/block.json",
36408    apiVersion: 2,
36409    name: "core/query-pagination-next",
36410    title: "Next Page",
36411    category: "theme",
36412    parent: ["core/query-pagination"],
36413    description: "Displays the next posts page link.",
36414    textdomain: "default",
36415    attributes: {
36416      label: {
36417        type: "string"
36418      }
36419    },
36420    usesContext: ["queryId", "query", "paginationArrow"],
36421    supports: {
36422      reusable: false,
36423      html: false,
36424      color: {
36425        gradients: true,
36426        text: false,
36427        __experimentalDefaultControls: {
36428          background: true
36429        }
36430      },
36431      typography: {
36432        fontSize: true,
36433        lineHeight: true,
36434        __experimentalFontStyle: true,
36435        __experimentalFontWeight: true,
36436        __experimentalLetterSpacing: true,
36437        __experimentalTextTransform: true,
36438        __experimentalDefaultControls: {
36439          fontSize: true
36440        }
36441      }
36442    }
36443  };
36444  
36445  const {
36446    name: query_pagination_next_name
36447  } = query_pagination_next_metadata;
36448  
36449  const query_pagination_next_settings = {
36450    icon: query_pagination_next,
36451    edit: QueryPaginationNextEdit
36452  };
36453  
36454  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/edit.js
36455  
36456  
36457  /**
36458   * WordPress dependencies
36459   */
36460  
36461  
36462  const createPaginationItem = function (content) {
36463    let Tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'a';
36464    let extraClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
36465    return (0,external_wp_element_namespaceObject.createElement)(Tag, {
36466      className: `page-numbers $extraClass}`
36467    }, content);
36468  };
36469  
36470  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));
36471  
36472  function QueryPaginationNumbersEdit() {
36473    const paginationNumbers = previewPaginationNumbers();
36474    return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), paginationNumbers);
36475  }
36476  
36477  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
36478  /**
36479   * WordPress dependencies
36480   */
36481  
36482  /**
36483   * Internal dependencies
36484   */
36485  
36486  const query_pagination_numbers_metadata = {
36487    $schema: "https://schemas.wp.org/trunk/block.json",
36488    apiVersion: 2,
36489    name: "core/query-pagination-numbers",
36490    title: "Page Numbers",
36491    category: "theme",
36492    parent: ["core/query-pagination"],
36493    description: "Displays a list of page numbers for pagination",
36494    textdomain: "default",
36495    usesContext: ["queryId", "query"],
36496    supports: {
36497      reusable: false,
36498      html: false,
36499      color: {
36500        gradients: true,
36501        text: false,
36502        __experimentalDefaultControls: {
36503          background: true
36504        }
36505      },
36506      typography: {
36507        fontSize: true,
36508        lineHeight: true,
36509        __experimentalFontStyle: true,
36510        __experimentalFontWeight: true,
36511        __experimentalLetterSpacing: true,
36512        __experimentalTextTransform: true,
36513        __experimentalDefaultControls: {
36514          fontSize: true
36515        }
36516      }
36517    },
36518    editorStyle: "query-pagination-numbers-editor"
36519  };
36520  
36521  const {
36522    name: query_pagination_numbers_name
36523  } = query_pagination_numbers_metadata;
36524  
36525  const query_pagination_numbers_settings = {
36526    icon: query_pagination_numbers,
36527    edit: QueryPaginationNumbersEdit
36528  };
36529  
36530  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/edit.js
36531  
36532  
36533  
36534  /**
36535   * WordPress dependencies
36536   */
36537  
36538  
36539  const query_pagination_previous_edit_arrowMap = {
36540    none: '',
36541    arrow: '←',
36542    chevron: '«'
36543  };
36544  function QueryPaginationPreviousEdit(_ref) {
36545    let {
36546      attributes: {
36547        label
36548      },
36549      setAttributes,
36550      context: {
36551        paginationArrow
36552      }
36553    } = _ref;
36554    const displayArrow = query_pagination_previous_edit_arrowMap[paginationArrow];
36555    return (0,external_wp_element_namespaceObject.createElement)("a", _extends({
36556      href: "#pagination-previous-pseudo-link",
36557      onClick: event => event.preventDefault()
36558    }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", {
36559      className: `wp-block-query-pagination-previous-arrow is-arrow-$paginationArrow}`
36560    }, displayArrow), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
36561      __experimentalVersion: 2,
36562      tagName: "span",
36563      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page link'),
36564      placeholder: (0,external_wp_i18n_namespaceObject.__)('Previous Page'),
36565      value: label,
36566      onChange: newLabel => setAttributes({
36567        label: newLabel
36568      })
36569    }));
36570  }
36571  
36572  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
36573  /**
36574   * WordPress dependencies
36575   */
36576  
36577  /**
36578   * Internal dependencies
36579   */
36580  
36581  const query_pagination_previous_metadata = {
36582    $schema: "https://schemas.wp.org/trunk/block.json",
36583    apiVersion: 2,
36584    name: "core/query-pagination-previous",
36585    title: "Previous Page",
36586    category: "theme",
36587    parent: ["core/query-pagination"],
36588    description: "Displays the previous posts page link.",
36589    textdomain: "default",
36590    attributes: {
36591      label: {
36592        type: "string"
36593      }
36594    },
36595    usesContext: ["queryId", "query", "paginationArrow"],
36596    supports: {
36597      reusable: false,
36598      html: false,
36599      color: {
36600        gradients: true,
36601        text: false,
36602        __experimentalDefaultControls: {
36603          background: true
36604        }
36605      },
36606      typography: {
36607        fontSize: true,
36608        lineHeight: true,
36609        __experimentalFontStyle: true,
36610        __experimentalFontWeight: true,
36611        __experimentalLetterSpacing: true,
36612        __experimentalTextTransform: true,
36613        __experimentalDefaultControls: {
36614          fontSize: true
36615        }
36616      }
36617    }
36618  };
36619  
36620  const {
36621    name: query_pagination_previous_name
36622  } = query_pagination_previous_metadata;
36623  
36624  const query_pagination_previous_settings = {
36625    icon: query_pagination_previous,
36626    edit: QueryPaginationPreviousEdit
36627  };
36628  
36629  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/edit.js
36630  
36631  
36632  /**
36633   * External dependencies
36634   */
36635  
36636  /**
36637   * WordPress dependencies
36638   */
36639  
36640  
36641  
36642  /**
36643   * Internal dependencies
36644   */
36645  
36646  
36647  const SUPPORTED_TYPES = ['archive'];
36648  function QueryTitleEdit(_ref) {
36649    let {
36650      attributes: {
36651        type,
36652        level,
36653        textAlign
36654      },
36655      setAttributes
36656    } = _ref;
36657    const TagName = `h$level}`;
36658    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
36659      className: classnames_default()({
36660        [`has-text-align-$textAlign}`]: textAlign,
36661        'wp-block-query-title__placeholder': type === 'archive'
36662      })
36663    }); // The plan is to augment this block with more
36664    // block variations like `Search Title`.
36665  
36666    if (!SUPPORTED_TYPES.includes(type)) {
36667      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.')));
36668    }
36669  
36670    let titleElement;
36671  
36672    if (type === 'archive') {
36673      titleElement = (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_i18n_namespaceObject.__)('Archive title'));
36674    }
36675  
36676    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
36677      group: "block"
36678    }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, {
36679      selectedLevel: level,
36680      onChange: newLevel => setAttributes({
36681        level: newLevel
36682      })
36683    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
36684      value: textAlign,
36685      onChange: nextAlign => {
36686        setAttributes({
36687          textAlign: nextAlign
36688        });
36689      }
36690    })), titleElement);
36691  }
36692  
36693  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive-title.js
36694  
36695  
36696  /**
36697   * WordPress dependencies
36698   */
36699  
36700  const archiveTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
36701    viewBox: "0 0 24 24",
36702    xmlns: "http://www.w3.org/2000/svg"
36703  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
36704    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"
36705  }));
36706  /* harmony default export */ var archive_title = (archiveTitle);
36707  
36708  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/variations.js
36709  /**
36710   * WordPress dependencies
36711   */
36712  
36713  
36714  const query_title_variations_variations = [{
36715    isDefault: true,
36716    name: 'archive-title',
36717    title: (0,external_wp_i18n_namespaceObject.__)('Archive Title'),
36718    description: (0,external_wp_i18n_namespaceObject.__)('Display the archive title based on the queried object.'),
36719    icon: archive_title,
36720    attributes: {
36721      type: 'archive'
36722    },
36723    scope: ['inserter']
36724  }];
36725  /**
36726   * Add `isActive` function to all `query-title` variations, if not defined.
36727   * `isActive` function is used to find a variation match from a created
36728   *  Block by providing its attributes.
36729   */
36730  
36731  query_title_variations_variations.forEach(variation => {
36732    if (variation.isActive) return;
36733  
36734    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
36735  });
36736  /* harmony default export */ var query_title_variations = (query_title_variations_variations);
36737  
36738  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/deprecated.js
36739  /**
36740   * Internal dependencies
36741   */
36742  
36743  const query_title_deprecated_v1 = {
36744    attributes: {
36745      type: {
36746        type: 'string'
36747      },
36748      textAlign: {
36749        type: 'string'
36750      },
36751      level: {
36752        type: 'number',
36753        default: 1
36754      }
36755    },
36756    supports: {
36757      align: ['wide', 'full'],
36758      html: false,
36759      color: {
36760        gradients: true
36761      },
36762      spacing: {
36763        margin: true
36764      },
36765      typography: {
36766        fontSize: true,
36767        lineHeight: true,
36768        __experimentalFontFamily: true
36769      }
36770    },
36771  
36772    save() {
36773      return null;
36774    },
36775  
36776    migrate: migrate_font_family,
36777  
36778    isEligible(_ref) {
36779      var _style$typography;
36780  
36781      let {
36782        style
36783      } = _ref;
36784      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
36785    }
36786  
36787  };
36788  /**
36789   * New deprecations need to be placed first
36790   * for them to have higher priority.
36791   *
36792   * Old deprecations may need to be updated as well.
36793   *
36794   * See block-deprecation.md
36795   */
36796  
36797  /* harmony default export */ var query_title_deprecated = ([query_title_deprecated_v1]);
36798  
36799  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-title.js
36800  
36801  
36802  /**
36803   * WordPress dependencies
36804   */
36805  
36806  const queryTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
36807    viewBox: "0 0 24 24",
36808    xmlns: "http://www.w3.org/2000/svg"
36809  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
36810    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"
36811  }));
36812  /* harmony default export */ var query_title = (queryTitle);
36813  
36814  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/index.js
36815  /**
36816   * Internal dependencies
36817   */
36818  const query_title_metadata = {
36819    $schema: "https://schemas.wp.org/trunk/block.json",
36820    apiVersion: 2,
36821    name: "core/query-title",
36822    title: "Query Title",
36823    category: "theme",
36824    description: "Display the query title.",
36825    textdomain: "default",
36826    attributes: {
36827      type: {
36828        type: "string"
36829      },
36830      textAlign: {
36831        type: "string"
36832      },
36833      level: {
36834        type: "number",
36835        "default": 1
36836      }
36837    },
36838    supports: {
36839      align: ["wide", "full"],
36840      html: false,
36841      color: {
36842        gradients: true,
36843        __experimentalDefaultControls: {
36844          background: true,
36845          text: true
36846        }
36847      },
36848      spacing: {
36849        margin: true
36850      },
36851      typography: {
36852        fontSize: true,
36853        lineHeight: true,
36854        __experimentalFontFamily: true,
36855        __experimentalFontStyle: true,
36856        __experimentalFontWeight: true,
36857        __experimentalLetterSpacing: true,
36858        __experimentalTextTransform: true,
36859        __experimentalDefaultControls: {
36860          fontSize: true,
36861          fontAppearance: true,
36862          textTransform: true
36863        }
36864      }
36865    },
36866    editorStyle: "wp-block-query-title-editor"
36867  };
36868  
36869  
36870  
36871  /**
36872   * WordPress dependencies
36873   */
36874  
36875  
36876  const {
36877    name: query_title_name
36878  } = query_title_metadata;
36879  
36880  const query_title_settings = {
36881    icon: query_title,
36882    edit: QueryTitleEdit,
36883    variations: query_title_variations,
36884    deprecated: query_title_deprecated
36885  };
36886  
36887  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/quote.js
36888  
36889  
36890  /**
36891   * WordPress dependencies
36892   */
36893  
36894  const quote = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
36895    viewBox: "0 0 24 24",
36896    xmlns: "http://www.w3.org/2000/svg"
36897  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
36898    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"
36899  }));
36900  /* harmony default export */ var library_quote = (quote);
36901  
36902  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js
36903  
36904  
36905  /**
36906   * External dependencies
36907   */
36908  
36909  /**
36910   * WordPress dependencies
36911   */
36912  
36913  
36914  const quote_deprecated_blockAttributes = {
36915    value: {
36916      type: 'string',
36917      source: 'html',
36918      selector: 'blockquote',
36919      multiline: 'p',
36920      default: ''
36921    },
36922    citation: {
36923      type: 'string',
36924      source: 'html',
36925      selector: 'cite',
36926      default: ''
36927    },
36928    align: {
36929      type: 'string'
36930    }
36931  };
36932  const quote_deprecated_deprecated = [{
36933    attributes: quote_deprecated_blockAttributes,
36934  
36935    save(_ref) {
36936      let {
36937        attributes
36938      } = _ref;
36939      const {
36940        align,
36941        value,
36942        citation
36943      } = attributes;
36944      return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
36945        style: {
36946          textAlign: align ? align : null
36947        }
36948      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
36949        multiline: true,
36950        value: value
36951      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
36952        tagName: "cite",
36953        value: citation
36954      }));
36955    }
36956  
36957  }, {
36958    attributes: { ...quote_deprecated_blockAttributes,
36959      style: {
36960        type: 'number',
36961        default: 1
36962      }
36963    },
36964  
36965    migrate(attributes) {
36966      if (attributes.style === 2) {
36967        return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['style']),
36968          className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large'
36969        };
36970      }
36971  
36972      return attributes;
36973    },
36974  
36975    save(_ref2) {
36976      let {
36977        attributes
36978      } = _ref2;
36979      const {
36980        align,
36981        value,
36982        citation,
36983        style
36984      } = attributes;
36985      return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
36986        className: style === 2 ? 'is-large' : '',
36987        style: {
36988          textAlign: align ? align : null
36989        }
36990      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
36991        multiline: true,
36992        value: value
36993      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
36994        tagName: "cite",
36995        value: citation
36996      }));
36997    }
36998  
36999  }, {
37000    attributes: { ...quote_deprecated_blockAttributes,
37001      citation: {
37002        type: 'string',
37003        source: 'html',
37004        selector: 'footer',
37005        default: ''
37006      },
37007      style: {
37008        type: 'number',
37009        default: 1
37010      }
37011    },
37012  
37013    migrate(attributes) {
37014      if (!isNaN(parseInt(attributes.style))) {
37015        return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['style'])
37016        };
37017      }
37018  
37019      return attributes;
37020    },
37021  
37022    save(_ref3) {
37023      let {
37024        attributes
37025      } = _ref3;
37026      const {
37027        align,
37028        value,
37029        citation,
37030        style
37031      } = attributes;
37032      return (0,external_wp_element_namespaceObject.createElement)("blockquote", {
37033        className: `blocks-quote-style-$style}`,
37034        style: {
37035          textAlign: align ? align : null
37036        }
37037      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
37038        multiline: true,
37039        value: value
37040      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
37041        tagName: "footer",
37042        value: citation
37043      }));
37044    }
37045  
37046  }];
37047  /* harmony default export */ var quote_deprecated = (quote_deprecated_deprecated);
37048  
37049  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/edit.js
37050  
37051  
37052  /**
37053   * External dependencies
37054   */
37055  
37056  /**
37057   * WordPress dependencies
37058   */
37059  
37060  
37061  
37062  
37063  
37064  
37065  const edit_isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
37066  function QuoteEdit(_ref) {
37067    let {
37068      attributes,
37069      setAttributes,
37070      isSelected,
37071      mergeBlocks,
37072      onReplace,
37073      className,
37074      insertBlocksAfter,
37075      style
37076    } = _ref;
37077    const {
37078      align,
37079      value,
37080      citation
37081    } = attributes;
37082    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
37083      className: classnames_default()(className, {
37084        [`has-text-align-$align}`]: align
37085      }),
37086      style
37087    });
37088    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
37089      group: "block"
37090    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
37091      value: align,
37092      onChange: nextAlign => {
37093        setAttributes({
37094          align: nextAlign
37095        });
37096      }
37097    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BlockQuotation, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
37098      identifier: "value",
37099      multiline: true,
37100      value: value,
37101      onChange: nextValue => setAttributes({
37102        value: nextValue
37103      }),
37104      onMerge: mergeBlocks,
37105      onRemove: forward => {
37106        const hasEmptyCitation = !citation || citation.length === 0;
37107  
37108        if (!forward && hasEmptyCitation) {
37109          onReplace([]);
37110        }
37111      },
37112      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Quote text'),
37113      placeholder: // translators: placeholder text used for the quote
37114      (0,external_wp_i18n_namespaceObject.__)('Add quote'),
37115      onReplace: onReplace,
37116      onSplit: piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { ...attributes,
37117        value: piece
37118      }),
37119      __unstableOnSplitMiddle: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'),
37120      textAlign: align
37121    }), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
37122      identifier: "citation",
37123      tagName: edit_isWebPlatform ? 'cite' : undefined,
37124      style: {
37125        display: 'block'
37126      },
37127      value: citation,
37128      onChange: nextCitation => setAttributes({
37129        citation: nextCitation
37130      }),
37131      __unstableMobileNoFocusOnMount: true,
37132      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Quote citation text'),
37133      placeholder: // translators: placeholder text used for the citation
37134      (0,external_wp_i18n_namespaceObject.__)('Add citation'),
37135      className: "wp-block-quote__citation",
37136      textAlign: align,
37137      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
37138    })));
37139  }
37140  
37141  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/save.js
37142  
37143  
37144  /**
37145   * External dependencies
37146   */
37147  
37148  /**
37149   * WordPress dependencies
37150   */
37151  
37152  
37153  function quote_save_save(_ref) {
37154    let {
37155      attributes
37156    } = _ref;
37157    const {
37158      align,
37159      value,
37160      citation
37161    } = attributes;
37162    const className = classnames_default()({
37163      [`has-text-align-$align}`]: align
37164    });
37165    return (0,external_wp_element_namespaceObject.createElement)("blockquote", external_wp_blockEditor_namespaceObject.useBlockProps.save({
37166      className
37167    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
37168      multiline: true,
37169      value: value
37170    }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
37171      tagName: "cite",
37172      value: citation
37173    }));
37174  }
37175  
37176  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/transforms.js
37177  /**
37178   * WordPress dependencies
37179   */
37180  
37181  
37182  const quote_transforms_transforms = {
37183    from: [{
37184      type: 'block',
37185      isMultiBlock: true,
37186      blocks: ['core/paragraph'],
37187      transform: attributes => {
37188        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
37189          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
37190            value: (0,external_wp_richText_namespaceObject.join)(attributes.map(_ref => {
37191              let {
37192                content
37193              } = _ref;
37194              return (0,external_wp_richText_namespaceObject.create)({
37195                html: content
37196              });
37197            }), '\u2028'),
37198            multilineTag: 'p'
37199          }),
37200          anchor: attributes.anchor
37201        });
37202      }
37203    }, {
37204      type: 'block',
37205      blocks: ['core/heading'],
37206      transform: _ref2 => {
37207        let {
37208          content,
37209          anchor
37210        } = _ref2;
37211        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
37212          value: `<p>$content}</p>`,
37213          anchor
37214        });
37215      }
37216    }, {
37217      type: 'block',
37218      blocks: ['core/pullquote'],
37219      transform: _ref3 => {
37220        let {
37221          value,
37222          citation,
37223          anchor
37224        } = _ref3;
37225        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
37226          value,
37227          citation,
37228          anchor
37229        });
37230      }
37231    }, {
37232      type: 'prefix',
37233      prefix: '>',
37234      transform: content => {
37235        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
37236          value: `<p>$content}</p>`
37237        });
37238      }
37239    }, {
37240      type: 'raw',
37241      isMatch: node => {
37242        const isParagraphOrSingleCite = (() => {
37243          let hasCitation = false;
37244          return child => {
37245            // Child is a paragraph.
37246            if (child.nodeName === 'P') {
37247              return true;
37248            } // Child is a cite and no other cite child exists before it.
37249  
37250  
37251            if (!hasCitation && child.nodeName === 'CITE') {
37252              hasCitation = true;
37253              return true;
37254            }
37255          };
37256        })();
37257  
37258        return node.nodeName === 'BLOCKQUOTE' && // The quote block can only handle multiline paragraph
37259        // content with an optional cite child.
37260        Array.from(node.childNodes).every(isParagraphOrSingleCite);
37261      },
37262      schema: _ref4 => {
37263        let {
37264          phrasingContentSchema
37265        } = _ref4;
37266        return {
37267          blockquote: {
37268            children: {
37269              p: {
37270                children: phrasingContentSchema
37271              },
37272              cite: {
37273                children: phrasingContentSchema
37274              }
37275            }
37276          }
37277        };
37278      }
37279    }],
37280    to: [{
37281      type: 'block',
37282      blocks: ['core/paragraph'],
37283      transform: _ref5 => {
37284        let {
37285          value,
37286          citation
37287        } = _ref5;
37288        const paragraphs = [];
37289  
37290        if (value && value !== '<p></p>') {
37291          paragraphs.push(...(0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
37292            html: value,
37293            multilineTag: 'p'
37294          }), '\u2028').map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
37295            content: (0,external_wp_richText_namespaceObject.toHTMLString)({
37296              value: piece
37297            })
37298          })));
37299        }
37300  
37301        if (citation && citation !== '<p></p>') {
37302          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
37303            content: citation
37304          }));
37305        }
37306  
37307        if (paragraphs.length === 0) {
37308          return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
37309            content: ''
37310          });
37311        }
37312  
37313        return paragraphs;
37314      }
37315    }, {
37316      type: 'block',
37317      blocks: ['core/heading'],
37318      transform: _ref6 => {
37319        let {
37320          value,
37321          citation,
37322          ...attrs
37323        } = _ref6;
37324  
37325        // If there is no quote content, use the citation as the
37326        // content of the resulting heading. A nonexistent citation
37327        // will result in an empty heading.
37328        if (value === '<p></p>') {
37329          return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
37330            content: citation
37331          });
37332        }
37333  
37334        const pieces = (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({
37335          html: value,
37336          multilineTag: 'p'
37337        }), '\u2028');
37338        const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
37339          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
37340            value: pieces[0]
37341          })
37342        });
37343  
37344        if (!citation && pieces.length === 1) {
37345          return headingBlock;
37346        }
37347  
37348        const quotePieces = pieces.slice(1);
37349        const quoteBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { ...attrs,
37350          citation,
37351          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
37352            value: quotePieces.length ? (0,external_wp_richText_namespaceObject.join)(pieces.slice(1), '\u2028') : (0,external_wp_richText_namespaceObject.create)(),
37353            multilineTag: 'p'
37354          })
37355        });
37356        return [headingBlock, quoteBlock];
37357      }
37358    }, {
37359      type: 'block',
37360      blocks: ['core/pullquote'],
37361      transform: _ref7 => {
37362        let {
37363          value,
37364          citation,
37365          anchor
37366        } = _ref7;
37367        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
37368          value,
37369          citation,
37370          anchor
37371        });
37372      }
37373    }]
37374  };
37375  /* harmony default export */ var quote_transforms = (quote_transforms_transforms);
37376  
37377  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/index.js
37378  /**
37379   * WordPress dependencies
37380   */
37381  
37382  
37383  /**
37384   * Internal dependencies
37385   */
37386  
37387  
37388  
37389  const quote_metadata = {
37390    $schema: "https://schemas.wp.org/trunk/block.json",
37391    apiVersion: 2,
37392    name: "core/quote",
37393    title: "Quote",
37394    category: "text",
37395    description: "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" \u2014 Julio Cort\xE1zar",
37396    keywords: ["blockquote", "cite"],
37397    textdomain: "default",
37398    attributes: {
37399      value: {
37400        type: "string",
37401        source: "html",
37402        selector: "blockquote",
37403        multiline: "p",
37404        "default": "",
37405        __experimentalRole: "content"
37406      },
37407      citation: {
37408        type: "string",
37409        source: "html",
37410        selector: "cite",
37411        "default": "",
37412        __experimentalRole: "content"
37413      },
37414      align: {
37415        type: "string"
37416      }
37417    },
37418    supports: {
37419      anchor: true,
37420      __experimentalSlashInserter: true,
37421      typography: {
37422        fontSize: true,
37423        lineHeight: true,
37424        __experimentalFontStyle: true,
37425        __experimentalFontWeight: true,
37426        __experimentalLetterSpacing: true,
37427        __experimentalTextTransform: true,
37428        __experimentalDefaultControls: {
37429          fontSize: true,
37430          fontAppearance: true
37431        }
37432      },
37433      color: {
37434        gradients: true,
37435        link: true,
37436        __experimentalDefaultControls: {
37437          background: true,
37438          text: true
37439        }
37440      }
37441    },
37442    styles: [{
37443      name: "default",
37444      label: "Default",
37445      isDefault: true
37446    }, {
37447      name: "plain",
37448      label: "Plain"
37449    }],
37450    editorStyle: "wp-block-quote-editor",
37451    style: "wp-block-quote"
37452  };
37453  
37454  
37455  
37456  const {
37457    name: quote_name
37458  } = quote_metadata;
37459  
37460  const quote_settingsV1 = {
37461    icon: library_quote,
37462    example: {
37463      attributes: {
37464        value: '<p>' + (0,external_wp_i18n_namespaceObject.__)('In quoting others, we cite ourselves.') + '</p>',
37465        citation: 'Julio Cortázar'
37466      }
37467    },
37468    transforms: quote_transforms,
37469    edit: QuoteEdit,
37470    save: quote_save_save,
37471  
37472    merge(attributes, _ref) {
37473      let {
37474        value,
37475        citation
37476      } = _ref;
37477  
37478      // Quote citations cannot be merged. Pick the second one unless it's
37479      // empty.
37480      if (!citation) {
37481        citation = attributes.citation;
37482      }
37483  
37484      if (!value || value === '<p></p>') {
37485        return { ...attributes,
37486          citation
37487        };
37488      }
37489  
37490      return { ...attributes,
37491        value: attributes.value + value,
37492        citation
37493      };
37494    },
37495  
37496    deprecated: quote_deprecated
37497  };
37498  let quote_settings = quote_settingsV1;
37499  
37500  if (false) { var quote_window; }
37501  
37502  
37503  
37504  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js
37505  
37506  
37507  /**
37508   * WordPress dependencies
37509   */
37510  
37511  const symbol = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
37512    xmlns: "http://www.w3.org/2000/svg",
37513    viewBox: "0 0 24 24"
37514  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
37515    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"
37516  }));
37517  /* harmony default export */ var library_symbol = (symbol);
37518  
37519  ;// CONCATENATED MODULE: external ["wp","reusableBlocks"]
37520  var external_wp_reusableBlocks_namespaceObject = window["wp"]["reusableBlocks"];
37521  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/ungroup.js
37522  
37523  
37524  /**
37525   * WordPress dependencies
37526   */
37527  
37528  const ungroup = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
37529    xmlns: "http://www.w3.org/2000/svg",
37530    viewBox: "0 0 24 24"
37531  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
37532    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"
37533  }));
37534  /* harmony default export */ var library_ungroup = (ungroup);
37535  
37536  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/edit.js
37537  
37538  
37539  /**
37540   * WordPress dependencies
37541   */
37542  
37543  
37544  
37545  
37546  
37547  
37548  
37549  function ReusableBlockEdit(_ref) {
37550    let {
37551      attributes: {
37552        ref
37553      },
37554      clientId
37555    } = _ref;
37556    const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(ref);
37557    const {
37558      record,
37559      hasResolved
37560    } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecord)('postType', 'wp_block', ref);
37561    const isMissing = hasResolved && !record;
37562    const canRemove = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).canRemoveBlock(clientId), [clientId]);
37563    const {
37564      __experimentalConvertBlockToStatic: convertBlockToStatic
37565    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_reusableBlocks_namespaceObject.store);
37566    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_block', {
37567      id: ref
37568    });
37569    const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_block', 'title', ref);
37570    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
37571    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, {
37572      value: blocks,
37573      onInput,
37574      onChange,
37575      renderAppender: blocks !== null && blocks !== void 0 && blocks.length ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
37576    });
37577  
37578    if (hasAlreadyRendered) {
37579      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.')));
37580    }
37581  
37582    if (isMissing) {
37583      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.')));
37584    }
37585  
37586    if (!hasResolved) {
37587      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)));
37588    }
37589  
37590    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, {
37591      onClick: () => convertBlockToStatic(clientId),
37592      label: (0,external_wp_i18n_namespaceObject.__)('Convert to regular blocks'),
37593      icon: library_ungroup,
37594      showTooltip: true
37595    }))), (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, {
37596      label: (0,external_wp_i18n_namespaceObject.__)('Name'),
37597      value: title,
37598      onChange: setTitle
37599    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, {
37600      clientId: clientId,
37601      wrapperProps: innerBlocksProps,
37602      className: "block-library-block__reusable-block-container"
37603    })));
37604  }
37605  
37606  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/index.js
37607  /**
37608   * WordPress dependencies
37609   */
37610  
37611  /**
37612   * Internal dependencies
37613   */
37614  
37615  const block_metadata = {
37616    $schema: "https://schemas.wp.org/trunk/block.json",
37617    apiVersion: 2,
37618    name: "core/block",
37619    title: "Reusable block",
37620    category: "reusable",
37621    description: "Create and save content to reuse across your site. Update the block, and the changes apply everywhere it\u2019s used.",
37622    textdomain: "default",
37623    attributes: {
37624      ref: {
37625        type: "number"
37626      }
37627    },
37628    supports: {
37629      customClassName: false,
37630      html: false,
37631      inserter: false
37632    },
37633    editorStyle: "wp-block-editor"
37634  };
37635  
37636  const {
37637    name: block_name
37638  } = block_metadata;
37639  
37640  const block_settings = {
37641    edit: ReusableBlockEdit,
37642    icon: library_symbol
37643  };
37644  
37645  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/edit.js
37646  
37647  
37648  
37649  /**
37650   * WordPress dependencies
37651   */
37652  
37653  
37654  
37655  
37656  function ReadMore(_ref) {
37657    let {
37658      attributes: {
37659        content,
37660        linkTarget
37661      },
37662      setAttributes,
37663      insertBlocksAfter
37664    } = _ref;
37665    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
37666    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, {
37667      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
37668    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
37669      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
37670      onChange: value => setAttributes({
37671        linkTarget: value ? '_blank' : '_self'
37672      }),
37673      checked: linkTarget === '_blank'
37674    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
37675      tagName: "a",
37676      "aria-label": (0,external_wp_i18n_namespaceObject.__)('"Read more" link text'),
37677      placeholder: (0,external_wp_i18n_namespaceObject.__)('Read more'),
37678      value: content,
37679      onChange: newValue => setAttributes({
37680        content: newValue
37681      }),
37682      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
37683      withoutInteractiveFormatting: true
37684    }, blockProps)));
37685  }
37686  
37687  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
37688  /**
37689   * WordPress dependencies
37690   */
37691  
37692  /**
37693   * Internal dependencies
37694   */
37695  
37696  const read_more_metadata = {
37697    $schema: "https://schemas.wp.org/trunk/block.json",
37698    apiVersion: 2,
37699    name: "core/read-more",
37700    title: "Read More",
37701    category: "theme",
37702    description: "Displays the link of a post, page, or any other content-type.",
37703    textdomain: "default",
37704    attributes: {
37705      content: {
37706        type: "string"
37707      },
37708      linkTarget: {
37709        type: "string",
37710        "default": "_self"
37711      }
37712    },
37713    usesContext: ["postId"],
37714    supports: {
37715      html: false,
37716      color: {
37717        gradients: true,
37718        text: true
37719      },
37720      typography: {
37721        fontSize: true,
37722        lineHeight: true,
37723        __experimentalFontFamily: true,
37724        __experimentalFontWeight: true,
37725        __experimentalFontStyle: true,
37726        __experimentalTextTransform: true,
37727        __experimentalLetterSpacing: true,
37728        __experimentalTextDecoration: true,
37729        __experimentalDefaultControls: {
37730          fontSize: true,
37731          textDecoration: true
37732        }
37733      },
37734      spacing: {
37735        margin: ["top", "bottom"],
37736        padding: true,
37737        __experimentalDefaultControls: {
37738          padding: true
37739        }
37740      },
37741      __experimentalBorder: {
37742        color: true,
37743        radius: true,
37744        width: true,
37745        __experimentalDefaultControls: {
37746          width: true
37747        }
37748      }
37749    },
37750    style: "wp-block-read-more"
37751  };
37752  
37753  const {
37754    name: read_more_name
37755  } = read_more_metadata;
37756  
37757  const read_more_settings = {
37758    icon: library_link,
37759    edit: ReadMore
37760  };
37761  
37762  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rss.js
37763  
37764  
37765  /**
37766   * WordPress dependencies
37767   */
37768  
37769  const rss = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
37770    xmlns: "http://www.w3.org/2000/svg",
37771    viewBox: "0 0 24 24"
37772  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
37773    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"
37774  }));
37775  /* harmony default export */ var library_rss = (rss);
37776  
37777  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/edit.js
37778  
37779  
37780  /**
37781   * WordPress dependencies
37782   */
37783  
37784  
37785  
37786  
37787  
37788  
37789  
37790  const DEFAULT_MIN_ITEMS = 1;
37791  const DEFAULT_MAX_ITEMS = 20;
37792  function RSSEdit(_ref) {
37793    let {
37794      attributes,
37795      setAttributes
37796    } = _ref;
37797    const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(!attributes.feedURL);
37798    const {
37799      blockLayout,
37800      columns,
37801      displayAuthor,
37802      displayDate,
37803      displayExcerpt,
37804      excerptLength,
37805      feedURL,
37806      itemsToShow
37807    } = attributes;
37808  
37809    function toggleAttribute(propName) {
37810      return () => {
37811        const value = attributes[propName];
37812        setAttributes({
37813          [propName]: !value
37814        });
37815      };
37816    }
37817  
37818    function onSubmitURL(event) {
37819      event.preventDefault();
37820  
37821      if (feedURL) {
37822        setAttributes({
37823          feedURL: (0,external_wp_url_namespaceObject.prependHTTP)(feedURL)
37824        });
37825        setIsEditing(false);
37826      }
37827    }
37828  
37829    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
37830  
37831    if (isEditing) {
37832      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
37833        icon: library_rss,
37834        label: "RSS"
37835      }, (0,external_wp_element_namespaceObject.createElement)("form", {
37836        onSubmit: onSubmitURL,
37837        className: "wp-block-rss__placeholder-form"
37838      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
37839        placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL here…'),
37840        value: feedURL,
37841        onChange: value => setAttributes({
37842          feedURL: value
37843        }),
37844        className: "wp-block-rss__placeholder-input"
37845      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
37846        variant: "primary",
37847        type: "submit"
37848      }, (0,external_wp_i18n_namespaceObject.__)('Use URL')))));
37849    }
37850  
37851    const toolbarControls = [{
37852      icon: library_edit,
37853      title: (0,external_wp_i18n_namespaceObject.__)('Edit RSS URL'),
37854      onClick: () => setIsEditing(true)
37855    }, {
37856      icon: library_list,
37857      title: (0,external_wp_i18n_namespaceObject.__)('List view'),
37858      onClick: () => setAttributes({
37859        blockLayout: 'list'
37860      }),
37861      isActive: blockLayout === 'list'
37862    }, {
37863      icon: library_grid,
37864      title: (0,external_wp_i18n_namespaceObject.__)('Grid view'),
37865      onClick: () => setAttributes({
37866        blockLayout: 'grid'
37867      }),
37868      isActive: blockLayout === 'grid'
37869    }];
37870    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, {
37871      controls: toolbarControls
37872    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
37873      title: (0,external_wp_i18n_namespaceObject.__)('RSS settings')
37874    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
37875      label: (0,external_wp_i18n_namespaceObject.__)('Number of items'),
37876      value: itemsToShow,
37877      onChange: value => setAttributes({
37878        itemsToShow: value
37879      }),
37880      min: DEFAULT_MIN_ITEMS,
37881      max: DEFAULT_MAX_ITEMS,
37882      required: true
37883    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
37884      label: (0,external_wp_i18n_namespaceObject.__)('Display author'),
37885      checked: displayAuthor,
37886      onChange: toggleAttribute('displayAuthor')
37887    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
37888      label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
37889      checked: displayDate,
37890      onChange: toggleAttribute('displayDate')
37891    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
37892      label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
37893      checked: displayExcerpt,
37894      onChange: toggleAttribute('displayExcerpt')
37895    }), displayExcerpt && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
37896      label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
37897      value: excerptLength,
37898      onChange: value => setAttributes({
37899        excerptLength: value
37900      }),
37901      min: 10,
37902      max: 100,
37903      required: true
37904    }), blockLayout === 'grid' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
37905      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
37906      value: columns,
37907      onChange: value => setAttributes({
37908        columns: value
37909      }),
37910      min: 2,
37911      max: 6,
37912      required: true
37913    }))), (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()), {
37914      block: "core/rss",
37915      attributes: attributes
37916    }))));
37917  }
37918  
37919  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/index.js
37920  /**
37921   * WordPress dependencies
37922   */
37923  
37924  /**
37925   * Internal dependencies
37926   */
37927  
37928  const rss_metadata = {
37929    $schema: "https://schemas.wp.org/trunk/block.json",
37930    apiVersion: 2,
37931    name: "core/rss",
37932    title: "RSS",
37933    category: "widgets",
37934    description: "Display entries from any RSS or Atom feed.",
37935    keywords: ["atom", "feed"],
37936    textdomain: "default",
37937    attributes: {
37938      columns: {
37939        type: "number",
37940        "default": 2
37941      },
37942      blockLayout: {
37943        type: "string",
37944        "default": "list"
37945      },
37946      feedURL: {
37947        type: "string",
37948        "default": ""
37949      },
37950      itemsToShow: {
37951        type: "number",
37952        "default": 5
37953      },
37954      displayExcerpt: {
37955        type: "boolean",
37956        "default": false
37957      },
37958      displayAuthor: {
37959        type: "boolean",
37960        "default": false
37961      },
37962      displayDate: {
37963        type: "boolean",
37964        "default": false
37965      },
37966      excerptLength: {
37967        type: "number",
37968        "default": 55
37969      }
37970    },
37971    supports: {
37972      align: true,
37973      html: false
37974    },
37975    editorStyle: "wp-block-rss-editor",
37976    style: "wp-block-rss"
37977  };
37978  
37979  const {
37980    name: rss_name
37981  } = rss_metadata;
37982  
37983  const rss_settings = {
37984    icon: library_rss,
37985    example: {
37986      attributes: {
37987        feedURL: 'https://wordpress.org'
37988      }
37989    },
37990    edit: RSSEdit
37991  };
37992  
37993  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js
37994  
37995  
37996  /**
37997   * WordPress dependencies
37998   */
37999  
38000  const search = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
38001    xmlns: "http://www.w3.org/2000/svg",
38002    viewBox: "0 0 24 24"
38003  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
38004    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"
38005  }));
38006  /* harmony default export */ var library_search = (search);
38007  
38008  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/icons.js
38009  
38010  
38011  /**
38012   * WordPress dependencies
38013   */
38014  
38015  const buttonOnly = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
38016    xmlns: "http://www.w3.org/2000/svg",
38017    viewBox: "0 0 24 24"
38018  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38019    x: "7",
38020    y: "10",
38021    width: "10",
38022    height: "4",
38023    rx: "1",
38024    fill: "currentColor"
38025  }));
38026  const buttonOutside = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
38027    xmlns: "http://www.w3.org/2000/svg",
38028    viewBox: "0 0 24 24"
38029  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38030    x: "4.75",
38031    y: "15.25",
38032    width: "6.5",
38033    height: "9.5",
38034    transform: "rotate(-90 4.75 15.25)",
38035    stroke: "currentColor",
38036    strokeWidth: "1.5",
38037    fill: "none"
38038  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38039    x: "16",
38040    y: "10",
38041    width: "4",
38042    height: "4",
38043    rx: "1",
38044    fill: "currentColor"
38045  }));
38046  const buttonInside = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
38047    xmlns: "http://www.w3.org/2000/svg",
38048    viewBox: "0 0 24 24"
38049  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38050    x: "4.75",
38051    y: "15.25",
38052    width: "6.5",
38053    height: "14.5",
38054    transform: "rotate(-90 4.75 15.25)",
38055    stroke: "currentColor",
38056    strokeWidth: "1.5",
38057    fill: "none"
38058  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38059    x: "14",
38060    y: "10",
38061    width: "4",
38062    height: "4",
38063    rx: "1",
38064    fill: "currentColor"
38065  }));
38066  const noButton = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
38067    xmlns: "http://www.w3.org/2000/svg",
38068    viewBox: "0 0 24 24"
38069  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38070    x: "4.75",
38071    y: "15.25",
38072    width: "6.5",
38073    height: "14.5",
38074    transform: "rotate(-90 4.75 15.25)",
38075    stroke: "currentColor",
38076    fill: "none",
38077    strokeWidth: "1.5"
38078  }));
38079  const buttonWithIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
38080    xmlns: "http://www.w3.org/2000/svg",
38081    viewBox: "0 0 24 24"
38082  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38083    x: "4.75",
38084    y: "7.75",
38085    width: "14.5",
38086    height: "8.5",
38087    rx: "1.25",
38088    stroke: "currentColor",
38089    fill: "none",
38090    strokeWidth: "1.5"
38091  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38092    x: "8",
38093    y: "11",
38094    width: "8",
38095    height: "2",
38096    fill: "currentColor"
38097  }));
38098  const toggleLabel = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
38099    xmlns: "http://www.w3.org/2000/svg",
38100    viewBox: "0 0 24 24"
38101  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38102    x: "4.75",
38103    y: "17.25",
38104    width: "5.5",
38105    height: "14.5",
38106    transform: "rotate(-90 4.75 17.25)",
38107    stroke: "currentColor",
38108    fill: "none",
38109    strokeWidth: "1.5"
38110  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
38111    x: "4",
38112    y: "7",
38113    width: "10",
38114    height: "2",
38115    fill: "currentColor"
38116  }));
38117  
38118  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/utils.js
38119  /**
38120   * Constants
38121   */
38122  const PC_WIDTH_DEFAULT = 50;
38123  const PX_WIDTH_DEFAULT = 350;
38124  const MIN_WIDTH = 220;
38125  const MIN_WIDTH_UNIT = 'px';
38126  /**
38127   * Returns a boolean whether passed unit is percentage
38128   *
38129   * @param {string} unit Block width unit.
38130   *
38131   * @return {boolean}     Whether unit is '%'.
38132   */
38133  
38134  function utils_isPercentageUnit(unit) {
38135    return unit === '%';
38136  }
38137  
38138  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/edit.js
38139  
38140  
38141  /**
38142   * External dependencies
38143   */
38144  
38145  /**
38146   * WordPress dependencies
38147   */
38148  
38149  
38150  
38151  
38152  
38153  
38154  
38155  
38156  
38157  /**
38158   * Internal dependencies
38159   */
38160  
38161  
38162   // Used to calculate border radius adjustment to avoid "fat" corners when
38163  // button is placed inside wrapper.
38164  
38165  const DEFAULT_INNER_PADDING = '4px';
38166  function SearchEdit(_ref) {
38167    var _style$border, _style$border2, _style$border3;
38168  
38169    let {
38170      className,
38171      attributes,
38172      setAttributes,
38173      toggleSelection,
38174      isSelected,
38175      clientId
38176    } = _ref;
38177    const {
38178      label,
38179      showLabel,
38180      placeholder,
38181      width,
38182      widthUnit,
38183      align,
38184      buttonText,
38185      buttonPosition,
38186      buttonUseIcon,
38187      style
38188    } = attributes;
38189    const insertedInNavigationBlock = (0,external_wp_data_namespaceObject.useSelect)(select => {
38190      var _getBlockParentsByBlo;
38191  
38192      const {
38193        getBlockParentsByBlockName,
38194        wasBlockJustInserted
38195      } = select(external_wp_blockEditor_namespaceObject.store);
38196      return !!((_getBlockParentsByBlo = getBlockParentsByBlockName(clientId, 'core/navigation')) !== null && _getBlockParentsByBlo !== void 0 && _getBlockParentsByBlo.length) && wasBlockJustInserted(clientId);
38197    }, [clientId]);
38198    const {
38199      __unstableMarkNextChangeAsNotPersistent
38200    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
38201    (0,external_wp_element_namespaceObject.useEffect)(() => {
38202      if (!insertedInNavigationBlock) return; // This side-effect should not create an undo level.
38203  
38204      __unstableMarkNextChangeAsNotPersistent();
38205  
38206      setAttributes({
38207        showLabel: false,
38208        buttonUseIcon: true,
38209        buttonPosition: 'button-inside'
38210      });
38211    }, [insertedInNavigationBlock]);
38212    const borderRadius = style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius;
38213    const borderColor = style === null || style === void 0 ? void 0 : (_style$border2 = style.border) === null || _style$border2 === void 0 ? void 0 : _style$border2.color;
38214    const borderWidth = style === null || style === void 0 ? void 0 : (_style$border3 = style.border) === null || _style$border3 === void 0 ? void 0 : _style$border3.width;
38215    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes); // Check for old deprecated numerical border radius. Done as a separate
38216    // check so that a borderRadius style won't overwrite the longhand
38217    // per-corner styles.
38218  
38219    if (typeof borderRadius === 'number') {
38220      borderProps.style.borderRadius = `$borderRadius}px`;
38221    }
38222  
38223    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
38224    const unitControlInstanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
38225    const unitControlInputId = `wp-block-search__width-$unitControlInstanceId}`;
38226    const isButtonPositionInside = 'button-inside' === buttonPosition;
38227    const isButtonPositionOutside = 'button-outside' === buttonPosition;
38228    const hasNoButton = 'no-button' === buttonPosition;
38229    const hasOnlyButton = 'button-only' === buttonPosition;
38230    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
38231      availableUnits: ['%', 'px'],
38232      defaultValues: {
38233        '%': PC_WIDTH_DEFAULT,
38234        px: PX_WIDTH_DEFAULT
38235      }
38236    });
38237  
38238    const getBlockClassNames = () => {
38239      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);
38240    };
38241  
38242    const buttonPositionControls = [{
38243      role: 'menuitemradio',
38244      title: (0,external_wp_i18n_namespaceObject.__)('Button outside'),
38245      isActive: buttonPosition === 'button-outside',
38246      icon: buttonOutside,
38247      onClick: () => {
38248        setAttributes({
38249          buttonPosition: 'button-outside'
38250        });
38251      }
38252    }, {
38253      role: 'menuitemradio',
38254      title: (0,external_wp_i18n_namespaceObject.__)('Button inside'),
38255      isActive: buttonPosition === 'button-inside',
38256      icon: buttonInside,
38257      onClick: () => {
38258        setAttributes({
38259          buttonPosition: 'button-inside'
38260        });
38261      }
38262    }, {
38263      role: 'menuitemradio',
38264      title: (0,external_wp_i18n_namespaceObject.__)('No button'),
38265      isActive: buttonPosition === 'no-button',
38266      icon: noButton,
38267      onClick: () => {
38268        setAttributes({
38269          buttonPosition: 'no-button'
38270        });
38271      }
38272    }];
38273  
38274    const getButtonPositionIcon = () => {
38275      switch (buttonPosition) {
38276        case 'button-inside':
38277          return buttonInside;
38278  
38279        case 'button-outside':
38280          return buttonOutside;
38281  
38282        case 'no-button':
38283          return noButton;
38284  
38285        case 'button-only':
38286          return buttonOnly;
38287      }
38288    };
38289  
38290    const getResizableSides = () => {
38291      if (hasOnlyButton) {
38292        return {};
38293      }
38294  
38295      return {
38296        right: align !== 'right',
38297        left: align === 'right'
38298      };
38299    };
38300  
38301    const renderTextField = () => {
38302      // If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.
38303      const textFieldClasses = classnames_default()('wp-block-search__input', isButtonPositionInside ? undefined : borderProps.className);
38304      const textFieldStyles = isButtonPositionInside ? {
38305        borderRadius
38306      } : borderProps.style;
38307      return (0,external_wp_element_namespaceObject.createElement)("input", {
38308        className: textFieldClasses,
38309        style: textFieldStyles,
38310        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text') // We hide the placeholder field's placeholder when there is a value. This
38311        // stops screen readers from reading the placeholder field's placeholder
38312        // which is confusing.
38313        ,
38314        placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
38315        value: placeholder,
38316        onChange: event => setAttributes({
38317          placeholder: event.target.value
38318        })
38319      });
38320    };
38321  
38322    const renderButton = () => {
38323      // If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.
38324      const buttonClasses = classnames_default()('wp-block-search__button', colorProps.className, isButtonPositionInside ? undefined : borderProps.className, buttonUseIcon ? 'has-icon' : undefined);
38325      const buttonStyles = { ...colorProps.style,
38326        ...(isButtonPositionInside ? {
38327          borderRadius
38328        } : borderProps.style)
38329      };
38330      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, buttonUseIcon && (0,external_wp_element_namespaceObject.createElement)("button", {
38331        type: "button",
38332        className: buttonClasses,
38333        style: buttonStyles,
38334        "aria-label": buttonText ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(buttonText) : (0,external_wp_i18n_namespaceObject.__)('Search')
38335      }, (0,external_wp_element_namespaceObject.createElement)(icon, {
38336        icon: library_search
38337      })), !buttonUseIcon && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
38338        className: buttonClasses,
38339        style: buttonStyles,
38340        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
38341        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add button text…'),
38342        withoutInteractiveFormatting: true,
38343        value: buttonText,
38344        onChange: html => setAttributes({
38345          buttonText: html
38346        })
38347      }));
38348    };
38349  
38350    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, {
38351      title: (0,external_wp_i18n_namespaceObject.__)('Toggle search label'),
38352      icon: toggleLabel,
38353      onClick: () => {
38354        setAttributes({
38355          showLabel: !showLabel
38356        });
38357      },
38358      className: showLabel ? 'is-pressed' : undefined
38359    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
38360      icon: getButtonPositionIcon(),
38361      label: (0,external_wp_i18n_namespaceObject.__)('Change button position'),
38362      controls: buttonPositionControls
38363    }), !hasNoButton && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
38364      title: (0,external_wp_i18n_namespaceObject.__)('Use button with icon'),
38365      icon: buttonWithIcon,
38366      onClick: () => {
38367        setAttributes({
38368          buttonUseIcon: !buttonUseIcon
38369        });
38370      },
38371      className: buttonUseIcon ? 'is-pressed' : undefined
38372    }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
38373      title: (0,external_wp_i18n_namespaceObject.__)('Display Settings')
38374    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
38375      label: (0,external_wp_i18n_namespaceObject.__)('Width'),
38376      id: unitControlInputId
38377    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
38378      id: unitControlInputId,
38379      min: `$MIN_WIDTH}$MIN_WIDTH_UNIT}`,
38380      onChange: newWidth => {
38381        const filteredWidth = widthUnit === '%' && parseInt(newWidth, 10) > 100 ? 100 : newWidth;
38382        setAttributes({
38383          width: parseInt(filteredWidth, 10)
38384        });
38385      },
38386      onUnitChange: newUnit => {
38387        setAttributes({
38388          width: '%' === newUnit ? PC_WIDTH_DEFAULT : PX_WIDTH_DEFAULT,
38389          widthUnit: newUnit
38390        });
38391      },
38392      style: {
38393        maxWidth: 80
38394      },
38395      value: `$width}$widthUnit}`,
38396      units: units
38397    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, {
38398      className: "wp-block-search__components-button-group",
38399      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Percentage Width')
38400    }, [25, 50, 75, 100].map(widthValue => {
38401      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
38402        key: widthValue,
38403        isSmall: true,
38404        variant: `$widthValue}%` === `$width}$widthUnit}` ? 0 : undefined,
38405        onClick: () => setAttributes({
38406          width: widthValue,
38407          widthUnit: '%'
38408        })
38409      }, widthValue, "%");
38410    }))))));
38411  
38412    const padBorderRadius = radius => radius ? `calc($radius} + $DEFAULT_INNER_PADDING})` : undefined;
38413  
38414    const getWrapperStyles = () => {
38415      const styles = {
38416        borderColor,
38417        borderWidth: isButtonPositionInside ? borderWidth : undefined
38418      };
38419      const isNonZeroBorderRadius = borderRadius !== undefined && parseInt(borderRadius, 10) !== 0;
38420  
38421      if (isButtonPositionInside && isNonZeroBorderRadius) {
38422        // We have button inside wrapper and a border radius value to apply.
38423        // Add default padding so we don't get "fat" corners.
38424        //
38425        // CSS calc() is used here to support non-pixel units. The inline
38426        // style using calc() will only apply if both values have units.
38427        if (typeof borderRadius === 'object') {
38428          // Individual corner border radii present.
38429          const {
38430            topLeft,
38431            topRight,
38432            bottomLeft,
38433            bottomRight
38434          } = borderRadius;
38435          return {
38436            borderTopLeftRadius: padBorderRadius(topLeft),
38437            borderTopRightRadius: padBorderRadius(topRight),
38438            borderBottomLeftRadius: padBorderRadius(bottomLeft),
38439            borderBottomRightRadius: padBorderRadius(bottomRight),
38440            ...styles
38441          };
38442        } // The inline style using calc() will only apply if both values
38443        // supplied to calc() have units. Deprecated block's may have
38444        // unitless integer.
38445  
38446  
38447        const radius = Number.isInteger(borderRadius) ? `$borderRadius}px` : borderRadius;
38448        styles.borderRadius = `calc($radius} + $DEFAULT_INNER_PADDING})`;
38449      }
38450  
38451      return styles;
38452    };
38453  
38454    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
38455      className: getBlockClassNames()
38456    });
38457    return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, controls, showLabel && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
38458      className: "wp-block-search__label",
38459      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
38460      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add label…'),
38461      withoutInteractiveFormatting: true,
38462      value: label,
38463      onChange: html => setAttributes({
38464        label: html
38465      })
38466    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
38467      size: {
38468        width: `$width}$widthUnit}`
38469      },
38470      className: classnames_default()('wp-block-search__inside-wrapper', isButtonPositionInside ? borderProps.className : undefined),
38471      style: getWrapperStyles(),
38472      minWidth: MIN_WIDTH,
38473      enable: getResizableSides(),
38474      onResizeStart: (event, direction, elt) => {
38475        setAttributes({
38476          width: parseInt(elt.offsetWidth, 10),
38477          widthUnit: 'px'
38478        });
38479        toggleSelection(false);
38480      },
38481      onResizeStop: (event, direction, elt, delta) => {
38482        setAttributes({
38483          width: parseInt(width + delta.width, 10)
38484        });
38485        toggleSelection(true);
38486      },
38487      showHandle: isSelected
38488    }, (isButtonPositionInside || isButtonPositionOutside) && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, renderTextField(), renderButton()), hasOnlyButton && renderButton(), hasNoButton && renderTextField()));
38489  }
38490  
38491  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/variations.js
38492  /**
38493   * WordPress dependencies
38494   */
38495  
38496  const search_variations_variations = [{
38497    name: 'default',
38498    isDefault: true,
38499    attributes: {
38500      buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
38501      label: (0,external_wp_i18n_namespaceObject.__)('Search')
38502    }
38503  }];
38504  /* harmony default export */ var search_variations = (search_variations_variations);
38505  
38506  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/index.js
38507  /**
38508   * WordPress dependencies
38509   */
38510  
38511  /**
38512   * Internal dependencies
38513   */
38514  
38515  const search_metadata = {
38516    $schema: "https://schemas.wp.org/trunk/block.json",
38517    apiVersion: 2,
38518    name: "core/search",
38519    title: "Search",
38520    category: "widgets",
38521    description: "Help visitors find your content.",
38522    keywords: ["find"],
38523    textdomain: "default",
38524    attributes: {
38525      label: {
38526        type: "string",
38527        __experimentalRole: "content"
38528      },
38529      showLabel: {
38530        type: "boolean",
38531        "default": true
38532      },
38533      placeholder: {
38534        type: "string",
38535        "default": "",
38536        __experimentalRole: "content"
38537      },
38538      width: {
38539        type: "number"
38540      },
38541      widthUnit: {
38542        type: "string"
38543      },
38544      buttonText: {
38545        type: "string",
38546        __experimentalRole: "content"
38547      },
38548      buttonPosition: {
38549        type: "string",
38550        "default": "button-outside"
38551      },
38552      buttonUseIcon: {
38553        type: "boolean",
38554        "default": false
38555      }
38556    },
38557    supports: {
38558      align: ["left", "center", "right"],
38559      color: {
38560        gradients: true,
38561        __experimentalSkipSerialization: true,
38562        __experimentalDefaultControls: {
38563          background: true,
38564          text: true
38565        }
38566      },
38567      __experimentalBorder: {
38568        color: true,
38569        radius: true,
38570        width: true,
38571        __experimentalSkipSerialization: true,
38572        __experimentalDefaultControls: {
38573          color: true,
38574          radius: true,
38575          width: true
38576        }
38577      },
38578      html: false
38579    },
38580    editorStyle: "wp-block-search-editor",
38581    style: "wp-block-search"
38582  };
38583  
38584  
38585  const {
38586    name: search_name
38587  } = search_metadata;
38588  
38589  const search_settings = {
38590    icon: library_search,
38591    example: {},
38592    variations: search_variations,
38593    edit: SearchEdit
38594  };
38595  
38596  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/separator.js
38597  
38598  
38599  /**
38600   * WordPress dependencies
38601   */
38602  
38603  const separator = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
38604    viewBox: "0 0 24 24",
38605    xmlns: "http://www.w3.org/2000/svg"
38606  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
38607    d: "M20.2 7v4H3.8V7H2.2v9h1.6v-3.5h16.4V16h1.6V7z"
38608  }));
38609  /* harmony default export */ var library_separator = (separator);
38610  
38611  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/use-deprecated-opacity.js
38612  /**
38613   * WordPress dependencies
38614   */
38615  
38616  
38617  function useDeprecatedOpacity(opacity, currentColor, setAttributes) {
38618    const [deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor] = (0,external_wp_element_namespaceObject.useState)(false);
38619    const previousColor = (0,external_wp_compose_namespaceObject.usePrevious)(currentColor); // A separator with no color set will always have previousColor set to undefined,
38620    // and we need to differentiate these from those with color set that will return
38621    // previousColor as undefined on the first render.
38622  
38623    (0,external_wp_element_namespaceObject.useEffect)(() => {
38624      if (opacity === 'css' && !currentColor && !previousColor) {
38625        setDeprecatedOpacityWithNoColor(true);
38626      }
38627    }, [currentColor, previousColor, opacity]); // For deprecated blocks, that have a default 0.4 css opacity set, we
38628    // need to remove this if the current color is changed, or a color is added.
38629    // In these instances the opacity attribute is set back to the default of
38630    // alpha-channel which allows a new custom opacity to be set via the color picker.
38631  
38632    (0,external_wp_element_namespaceObject.useEffect)(() => {
38633      if (opacity === 'css' && (deprecatedOpacityWithNoColor && currentColor || previousColor && currentColor !== previousColor)) {
38634        setAttributes({
38635          opacity: 'alpha-channel'
38636        });
38637        setDeprecatedOpacityWithNoColor(false);
38638      }
38639    }, [deprecatedOpacityWithNoColor, currentColor, previousColor]);
38640  }
38641  
38642  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/edit.js
38643  
38644  
38645  /**
38646   * External dependencies
38647   */
38648  
38649  /**
38650   * WordPress dependencies
38651   */
38652  
38653  
38654  
38655  /**
38656   * Internal dependencies
38657   */
38658  
38659  
38660  function SeparatorEdit(_ref) {
38661    var _colorProps$style, _style$color;
38662  
38663    let {
38664      attributes,
38665      setAttributes
38666    } = _ref;
38667    const {
38668      backgroundColor,
38669      opacity,
38670      style
38671    } = attributes;
38672    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
38673    const currentColor = colorProps === null || colorProps === void 0 ? void 0 : (_colorProps$style = colorProps.style) === null || _colorProps$style === void 0 ? void 0 : _colorProps$style.backgroundColor;
38674    const hasCustomColor = !!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.background);
38675    useDeprecatedOpacity(opacity, currentColor, setAttributes); // The dots styles uses text for the dots, to change those dots color is
38676    // using color, not backgroundColor.
38677  
38678    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
38679    const className = classnames_default()({
38680      'has-text-color': backgroundColor || currentColor,
38681      [colorClass]: colorClass,
38682      'has-css-opacity': opacity === 'css',
38683      'has-alpha-channel-opacity': opacity === 'alpha-channel'
38684    }, colorProps.classname);
38685    const styles = {
38686      color: currentColor,
38687      backgroundColor: currentColor
38688    };
38689    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)({
38690      className,
38691      style: hasCustomColor ? styles : undefined
38692    })));
38693  }
38694  
38695  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/save.js
38696  
38697  
38698  /**
38699   * External dependencies
38700   */
38701  
38702  /**
38703   * WordPress dependencies
38704   */
38705  
38706  
38707  function separatorSave(_ref) {
38708    var _style$color, _colorProps$style;
38709  
38710    let {
38711      attributes
38712    } = _ref;
38713    const {
38714      backgroundColor,
38715      style,
38716      opacity
38717    } = attributes;
38718    const customColor = style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.background;
38719    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); // The hr support changing color using border-color, since border-color
38720    // is not yet supported in the color palette, we use background-color.
38721    // The dots styles uses text for the dots, to change those dots color is
38722    // using color, not backgroundColor.
38723  
38724    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
38725    const className = classnames_default()({
38726      'has-text-color': backgroundColor || customColor,
38727      [colorClass]: colorClass,
38728      'has-css-opacity': opacity === 'css',
38729      'has-alpha-channel-opacity': opacity === 'alpha-channel'
38730    }, colorProps.className);
38731    const styles = {
38732      backgroundColor: colorProps === null || colorProps === void 0 ? void 0 : (_colorProps$style = colorProps.style) === null || _colorProps$style === void 0 ? void 0 : _colorProps$style.backgroundColor,
38733      color: colorClass ? undefined : customColor
38734    };
38735    return (0,external_wp_element_namespaceObject.createElement)("hr", external_wp_blockEditor_namespaceObject.useBlockProps.save({
38736      className,
38737      style: styles
38738    }));
38739  }
38740  
38741  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/transforms.js
38742  /**
38743   * WordPress dependencies
38744   */
38745  
38746  const separator_transforms_transforms = {
38747    from: [{
38748      type: 'enter',
38749      regExp: /^-{3,}$/,
38750      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/separator')
38751    }, {
38752      type: 'raw',
38753      selector: 'hr',
38754      schema: {
38755        hr: {}
38756      }
38757    }]
38758  };
38759  /* harmony default export */ var separator_transforms = (separator_transforms_transforms);
38760  
38761  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/deprecated.js
38762  
38763  
38764  /**
38765   * External dependencies
38766   */
38767  
38768  
38769  /**
38770   * WordPress dependencies
38771   */
38772  
38773  
38774  const separator_deprecated_v1 = {
38775    attributes: {
38776      color: {
38777        type: 'string'
38778      },
38779      customColor: {
38780        type: 'string'
38781      }
38782    },
38783  
38784    save(_ref) {
38785      let {
38786        attributes
38787      } = _ref;
38788      const {
38789        color,
38790        customColor
38791      } = attributes; // the hr support changing color using border-color, since border-color
38792      // is not yet supported in the color palette, we use background-color
38793  
38794      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
38795      // using color, not backgroundColor
38796  
38797      const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', color);
38798      const className = classnames_default()({
38799        'has-text-color has-background': color || customColor,
38800        [backgroundClass]: backgroundClass,
38801        [colorClass]: colorClass
38802      });
38803      const style = {
38804        backgroundColor: backgroundClass ? undefined : customColor,
38805        color: colorClass ? undefined : customColor
38806      };
38807      return (0,external_wp_element_namespaceObject.createElement)("hr", external_wp_blockEditor_namespaceObject.useBlockProps.save({
38808        className,
38809        style
38810      }));
38811    },
38812  
38813    migrate(attributes) {
38814      const {
38815        color,
38816        customColor
38817      } = attributes;
38818      return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['color', 'customColor']),
38819        backgroundColor: color ? color : undefined,
38820        opacity: 'css',
38821        style: customColor ? {
38822          color: {
38823            background: customColor
38824          }
38825        } : undefined
38826      };
38827    }
38828  
38829  };
38830  /* harmony default export */ var separator_deprecated = ([separator_deprecated_v1]);
38831  
38832  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/index.js
38833  /**
38834   * WordPress dependencies
38835   */
38836  
38837  /**
38838   * Internal dependencies
38839   */
38840  
38841  
38842  const separator_metadata = {
38843    $schema: "https://schemas.wp.org/trunk/block.json",
38844    apiVersion: 2,
38845    name: "core/separator",
38846    title: "Separator",
38847    category: "design",
38848    description: "Create a break between ideas or sections with a horizontal separator.",
38849    keywords: ["horizontal-line", "hr", "divider"],
38850    textdomain: "default",
38851    attributes: {
38852      opacity: {
38853        type: "string",
38854        "default": "alpha-channel"
38855      }
38856    },
38857    supports: {
38858      anchor: true,
38859      align: ["center", "wide", "full"],
38860      color: {
38861        __experimentalSkipSerialization: true,
38862        gradients: true,
38863        background: true,
38864        text: false,
38865        __experimentalDefaultControls: {
38866          background: true
38867        }
38868      }
38869    },
38870    styles: [{
38871      name: "default",
38872      label: "Default",
38873      isDefault: true
38874    }, {
38875      name: "wide",
38876      label: "Wide Line"
38877    }, {
38878      name: "dots",
38879      label: "Dots"
38880    }],
38881    editorStyle: "wp-block-separator-editor",
38882    style: "wp-block-separator"
38883  };
38884  
38885  
38886  
38887  const {
38888    name: separator_name
38889  } = separator_metadata;
38890  
38891  const separator_settings = {
38892    icon: library_separator,
38893    example: {
38894      attributes: {
38895        customColor: '#065174',
38896        className: 'is-style-wide'
38897      }
38898    },
38899    transforms: separator_transforms,
38900    edit: SeparatorEdit,
38901    save: separatorSave,
38902    deprecated: separator_deprecated
38903  };
38904  
38905  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shortcode.js
38906  
38907  
38908  /**
38909   * WordPress dependencies
38910   */
38911  
38912  const shortcode = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
38913    viewBox: "0 0 24 24",
38914    xmlns: "http://www.w3.org/2000/svg"
38915  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
38916    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"
38917  }));
38918  /* harmony default export */ var library_shortcode = (shortcode);
38919  
38920  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js
38921  
38922  
38923  /**
38924   * WordPress dependencies
38925   */
38926  
38927  
38928  
38929  
38930  function ShortcodeEdit(_ref) {
38931    let {
38932      attributes,
38933      setAttributes
38934    } = _ref;
38935    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ShortcodeEdit);
38936    const inputId = `blocks-shortcode-input-$instanceId}`;
38937    return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
38938      className: 'components-placeholder'
38939    }), (0,external_wp_element_namespaceObject.createElement)("label", {
38940      htmlFor: inputId,
38941      className: "components-placeholder__label"
38942    }, (0,external_wp_element_namespaceObject.createElement)(icon, {
38943      icon: library_shortcode
38944    }), (0,external_wp_i18n_namespaceObject.__)('Shortcode')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, {
38945      className: "blocks-shortcode__textarea",
38946      id: inputId,
38947      value: attributes.text,
38948      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Shortcode text'),
38949      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write shortcode here…'),
38950      onChange: text => setAttributes({
38951        text
38952      })
38953    }));
38954  }
38955  
38956  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/save.js
38957  
38958  
38959  /**
38960   * WordPress dependencies
38961   */
38962  
38963  function shortcode_save_save(_ref) {
38964    let {
38965      attributes
38966    } = _ref;
38967    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.text);
38968  }
38969  
38970  ;// CONCATENATED MODULE: external ["wp","autop"]
38971  var external_wp_autop_namespaceObject = window["wp"]["autop"];
38972  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js
38973  /**
38974   * WordPress dependencies
38975   */
38976  
38977  const shortcode_transforms_transforms = {
38978    from: [{
38979      type: 'shortcode',
38980      // Per "Shortcode names should be all lowercase and use all
38981      // letters, but numbers and underscores should work fine too.
38982      // Be wary of using hyphens (dashes), you'll be better off not
38983      // using them." in https://codex.wordpress.org/Shortcode_API
38984      // Require that the first character be a letter. This notably
38985      // prevents footnote markings ([1]) from being caught as
38986      // shortcodes.
38987      tag: '[a-z][a-z0-9_-]*',
38988      attributes: {
38989        text: {
38990          type: 'string',
38991          shortcode: (attrs, _ref) => {
38992            let {
38993              content
38994            } = _ref;
38995            return (0,external_wp_autop_namespaceObject.removep)((0,external_wp_autop_namespaceObject.autop)(content));
38996          }
38997        }
38998      },
38999      priority: 20
39000    }]
39001  };
39002  /* harmony default export */ var shortcode_transforms = (shortcode_transforms_transforms);
39003  
39004  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
39005  /**
39006   * WordPress dependencies
39007   */
39008  
39009  /**
39010   * Internal dependencies
39011   */
39012  
39013  
39014  
39015  
39016  const shortcode_metadata = {
39017    $schema: "https://schemas.wp.org/trunk/block.json",
39018    apiVersion: 2,
39019    name: "core/shortcode",
39020    title: "Shortcode",
39021    category: "widgets",
39022    description: "Insert additional custom elements with a WordPress shortcode.",
39023    textdomain: "default",
39024    attributes: {
39025      text: {
39026        type: "string",
39027        source: "html"
39028      }
39029    },
39030    supports: {
39031      className: false,
39032      customClassName: false,
39033      html: false
39034    },
39035    editorStyle: "wp-block-shortcode-editor"
39036  };
39037  const {
39038    name: shortcode_name
39039  } = shortcode_metadata;
39040  
39041  const shortcode_settings = {
39042    icon: library_shortcode,
39043    transforms: shortcode_transforms,
39044    edit: ShortcodeEdit,
39045    save: shortcode_save_save
39046  };
39047  
39048  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/site-logo.js
39049  
39050  
39051  /**
39052   * WordPress dependencies
39053   */
39054  
39055  const siteLogo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
39056    xmlns: "http://www.w3.org/2000/svg",
39057    viewBox: "0 0 24 24"
39058  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
39059    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"
39060  }));
39061  /* harmony default export */ var site_logo = (siteLogo);
39062  
39063  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/edit.js
39064  
39065  
39066  /**
39067   * External dependencies
39068   */
39069  
39070  
39071  /**
39072   * WordPress dependencies
39073   */
39074  
39075  
39076  
39077  
39078  
39079  
39080  
39081  
39082  
39083  
39084  
39085  
39086  /**
39087   * Internal dependencies
39088   */
39089  
39090  
39091  /**
39092   * Module constants
39093   */
39094  
39095  
39096  const site_logo_edit_ALLOWED_MEDIA_TYPES = ['image'];
39097  const ACCEPT_MEDIA_STRING = 'image/*';
39098  
39099  const SiteLogo = _ref => {
39100    let {
39101      alt,
39102      attributes: {
39103        align,
39104        width,
39105        height,
39106        isLink,
39107        linkTarget,
39108        shouldSyncIcon
39109      },
39110      containerRef,
39111      isSelected,
39112      setAttributes,
39113      setLogo,
39114      logoUrl,
39115      siteUrl,
39116      logoId,
39117      iconId,
39118      setIcon,
39119      canUserEdit
39120    } = _ref;
39121    const clientWidth = useClientWidth(containerRef, [align]);
39122    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
39123    const isWideAligned = (0,external_lodash_namespaceObject.includes)(['wide', 'full'], align);
39124    const isResizable = !isWideAligned && isLargeViewport;
39125    const [{
39126      naturalWidth,
39127      naturalHeight
39128    }, setNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
39129    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
39130    const {
39131      toggleSelection
39132    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
39133    const classes = classnames_default()('custom-logo-link', {
39134      'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(logoUrl)
39135    });
39136    const {
39137      imageEditing,
39138      maxWidth,
39139      title
39140    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
39141      const {
39142        getSettings
39143      } = select(external_wp_blockEditor_namespaceObject.store);
39144      const siteEntities = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('root', 'site');
39145      return {
39146        title: siteEntities.title,
39147        ...(0,external_lodash_namespaceObject.pick)(getSettings(), ['imageEditing', 'maxWidth'])
39148      };
39149    }, []);
39150    (0,external_wp_element_namespaceObject.useEffect)(() => {
39151      // Turn the `Use as site icon` toggle off if it is on but the logo and icon have
39152      // fallen out of sync. This can happen if the toggle is saved in the `on` position,
39153      // but changes are later made to the site icon in the Customizer.
39154      if (shouldSyncIcon && logoId !== iconId) {
39155        setAttributes({
39156          shouldSyncIcon: false
39157        });
39158      }
39159    }, []);
39160    (0,external_wp_element_namespaceObject.useEffect)(() => {
39161      if (!isSelected) {
39162        setIsEditingImage(false);
39163      }
39164    }, [isSelected]);
39165  
39166    function onResizeStart() {
39167      toggleSelection(false);
39168    }
39169  
39170    function onResizeStop() {
39171      toggleSelection(true);
39172    }
39173  
39174    const img = (0,external_wp_element_namespaceObject.createElement)("img", {
39175      className: "custom-logo",
39176      src: logoUrl,
39177      alt: alt,
39178      onLoad: event => {
39179        setNaturalSize((0,external_lodash_namespaceObject.pick)(event.target, ['naturalWidth', 'naturalHeight']));
39180      }
39181    });
39182    let imgWrapper = img; // Disable reason: Image itself is not meant to be interactive, but
39183    // should direct focus to block.
39184  
39185    if (isLink) {
39186      imgWrapper =
39187      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
39188      (0,external_wp_element_namespaceObject.createElement)("a", {
39189        href: siteUrl,
39190        className: classes,
39191        rel: "home",
39192        title: title,
39193        onClick: event => event.preventDefault()
39194      }, img)
39195      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
39196      ;
39197    }
39198  
39199    let imageWidthWithinContainer;
39200  
39201    if (clientWidth && naturalWidth && naturalHeight) {
39202      const exceedMaxWidth = naturalWidth > clientWidth;
39203      imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;
39204    }
39205  
39206    if (!isResizable || !imageWidthWithinContainer) {
39207      return (0,external_wp_element_namespaceObject.createElement)("div", {
39208        style: {
39209          width,
39210          height
39211        }
39212      }, imgWrapper);
39213    } // Set the default width to a responsible size.
39214    // Note that this width is also set in the attached frontend CSS file.
39215  
39216  
39217    const defaultWidth = 120;
39218    const currentWidth = width || defaultWidth;
39219    const ratio = naturalWidth / naturalHeight;
39220    const currentHeight = currentWidth / ratio;
39221    const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : Math.ceil(MIN_SIZE * ratio);
39222    const minHeight = naturalHeight < naturalWidth ? MIN_SIZE : Math.ceil(MIN_SIZE / ratio); // With the current implementation of ResizableBox, an image needs an
39223    // explicit pixel value for the max-width. In absence of being able to
39224    // set the content-width, this max-width is currently dictated by the
39225    // vanilla editor style. The following variable adds a buffer to this
39226    // vanilla style, so 3rd party themes have some wiggleroom. This does,
39227    // in most cases, allow you to scale the image beyond the width of the
39228    // main column, though not infinitely.
39229    // @todo It would be good to revisit this once a content-width variable
39230    // becomes available.
39231  
39232    const maxWidthBuffer = maxWidth * 2.5;
39233    let showRightHandle = false;
39234    let showLeftHandle = false;
39235    /* eslint-disable no-lonely-if */
39236    // See https://github.com/WordPress/gutenberg/issues/7584.
39237  
39238    if (align === 'center') {
39239      // When the image is centered, show both handles.
39240      showRightHandle = true;
39241      showLeftHandle = true;
39242    } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
39243      // In RTL mode the image is on the right by default.
39244      // Show the right handle and hide the left handle only when it is
39245      // aligned left. Otherwise always show the left handle.
39246      if (align === 'left') {
39247        showRightHandle = true;
39248      } else {
39249        showLeftHandle = true;
39250      }
39251    } else {
39252      // Show the left handle and hide the right handle only when the
39253      // image is aligned right. Otherwise always show the right handle.
39254      if (align === 'right') {
39255        showLeftHandle = true;
39256      } else {
39257        showRightHandle = true;
39258      }
39259    }
39260    /* eslint-enable no-lonely-if */
39261  
39262  
39263    const canEditImage = logoId && naturalWidth && naturalHeight && imageEditing;
39264    const imgEdit = canEditImage && isEditingImage ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditingProvider, {
39265      id: logoId,
39266      url: logoUrl,
39267      naturalWidth: naturalWidth,
39268      naturalHeight: naturalHeight,
39269      clientWidth: clientWidth,
39270      onSaveImage: imageAttributes => {
39271        setLogo(imageAttributes.id);
39272      },
39273      isEditing: isEditingImage,
39274      onFinishEditing: () => setIsEditingImage(false)
39275    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
39276      url: logoUrl,
39277      width: currentWidth,
39278      height: currentHeight,
39279      clientWidth: clientWidth,
39280      naturalHeight: naturalHeight,
39281      naturalWidth: naturalWidth
39282    })) : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, {
39283      size: {
39284        width: currentWidth,
39285        height: currentHeight
39286      },
39287      showHandle: isSelected,
39288      minWidth: minWidth,
39289      maxWidth: maxWidthBuffer,
39290      minHeight: minHeight,
39291      maxHeight: maxWidthBuffer / ratio,
39292      lockAspectRatio: true,
39293      enable: {
39294        top: false,
39295        right: showRightHandle,
39296        bottom: true,
39297        left: showLeftHandle
39298      },
39299      onResizeStart: onResizeStart,
39300      onResizeStop: (event, direction, elt, delta) => {
39301        onResizeStop();
39302        setAttributes({
39303          width: parseInt(currentWidth + delta.width, 10),
39304          height: parseInt(currentHeight + delta.height, 10)
39305        });
39306      }
39307    }, imgWrapper);
39308    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>.'), {
39309      a: // eslint-disable-next-line jsx-a11y/anchor-has-content
39310      (0,external_wp_element_namespaceObject.createElement)("a", {
39311        href: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline',
39312        target: "_blank",
39313        rel: "noopener noreferrer"
39314      })
39315    });
39316    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, {
39317      title: (0,external_wp_i18n_namespaceObject.__)('Settings')
39318    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
39319      label: (0,external_wp_i18n_namespaceObject.__)('Image width'),
39320      onChange: newWidth => setAttributes({
39321        width: newWidth
39322      }),
39323      min: minWidth,
39324      max: maxWidthBuffer,
39325      initialPosition: Math.min(defaultWidth, maxWidthBuffer),
39326      value: width || '',
39327      disabled: !isResizable
39328    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
39329      label: (0,external_wp_i18n_namespaceObject.__)('Link image to home'),
39330      onChange: () => setAttributes({
39331        isLink: !isLink
39332      }),
39333      checked: isLink
39334    }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
39335      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
39336      onChange: value => setAttributes({
39337        linkTarget: value ? '_blank' : '_self'
39338      }),
39339      checked: linkTarget === '_blank'
39340    })), canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
39341      label: (0,external_wp_i18n_namespaceObject.__)('Use as site icon'),
39342      onChange: value => {
39343        setAttributes({
39344          shouldSyncIcon: value
39345        });
39346        setIcon(value ? logoId : undefined);
39347      },
39348      checked: !!shouldSyncIcon,
39349      help: syncSiteIconHelpText
39350    })))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
39351      group: "block"
39352    }, canEditImage && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
39353      onClick: () => setIsEditingImage(true),
39354      icon: library_crop,
39355      label: (0,external_wp_i18n_namespaceObject.__)('Crop')
39356    })), imgEdit);
39357  };
39358  
39359  function LogoEdit(_ref2) {
39360    let {
39361      attributes,
39362      className,
39363      setAttributes,
39364      isSelected
39365    } = _ref2;
39366    const {
39367      width,
39368      shouldSyncIcon
39369    } = attributes;
39370    const [logoUrl, setLogoUrl] = (0,external_wp_element_namespaceObject.useState)();
39371    const ref = (0,external_wp_element_namespaceObject.useRef)();
39372    const {
39373      siteLogoId,
39374      canUserEdit,
39375      url,
39376      siteIconId,
39377      mediaItemData,
39378      isRequestingMediaItem
39379    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
39380      const {
39381        canUser,
39382        getEntityRecord,
39383        getEditedEntityRecord
39384      } = select(external_wp_coreData_namespaceObject.store);
39385      const siteSettings = getEditedEntityRecord('root', 'site');
39386      const siteData = getEntityRecord('root', '__unstableBase');
39387  
39388      const _siteLogo = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_logo;
39389  
39390      const _readOnlyLogo = siteData === null || siteData === void 0 ? void 0 : siteData.site_logo;
39391  
39392      const _canUserEdit = canUser('update', 'settings');
39393  
39394      const _siteLogoId = _canUserEdit ? _siteLogo : _readOnlyLogo;
39395  
39396      const _siteIconId = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_icon;
39397  
39398      const mediaItem = _siteLogoId && select(external_wp_coreData_namespaceObject.store).getMedia(_siteLogoId, {
39399        context: 'view'
39400      });
39401  
39402      const _isRequestingMediaItem = _siteLogoId && !select(external_wp_coreData_namespaceObject.store).hasFinishedResolution('getMedia', [_siteLogoId, {
39403        context: 'view'
39404      }]);
39405  
39406      return {
39407        siteLogoId: _siteLogoId,
39408        canUserEdit: _canUserEdit,
39409        url: siteData === null || siteData === void 0 ? void 0 : siteData.url,
39410        mediaItemData: mediaItem,
39411        isRequestingMediaItem: _isRequestingMediaItem,
39412        siteIconId: _siteIconId
39413      };
39414    }, []);
39415    const {
39416      editEntityRecord
39417    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
39418  
39419    const setLogo = function (newValue) {
39420      let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
39421  
39422      // `shouldForceSync` is used to force syncing when the attribute
39423      // may not have updated yet.
39424      if (shouldSyncIcon || shouldForceSync) {
39425        setIcon(newValue);
39426      }
39427  
39428      editEntityRecord('root', 'site', undefined, {
39429        site_logo: newValue
39430      });
39431    };
39432  
39433    const setIcon = newValue => // The new value needs to be `null` to reset the Site Icon.
39434    editEntityRecord('root', 'site', undefined, {
39435      site_icon: newValue !== null && newValue !== void 0 ? newValue : null
39436    });
39437  
39438    let alt = null;
39439  
39440    if (mediaItemData) {
39441      alt = mediaItemData.alt_text;
39442  
39443      if (logoUrl !== mediaItemData.source_url) {
39444        setLogoUrl(mediaItemData.source_url);
39445      }
39446    }
39447  
39448    const onInitialSelectLogo = media => {
39449      // Initialize the syncSiteIcon toggle. If we currently have no Site logo and no
39450      // site icon, automatically sync the logo to the icon.
39451      if (shouldSyncIcon === undefined) {
39452        const shouldForceSync = !siteIconId;
39453        setAttributes({
39454          shouldSyncIcon: shouldForceSync
39455        }); // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by
39456        // the time `setLogo` is called, pass an argument to force the syncing.
39457  
39458        onSelectLogo(media, shouldForceSync);
39459        return;
39460      }
39461  
39462      onSelectLogo(media);
39463    };
39464  
39465    const onSelectLogo = function (media) {
39466      let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
39467  
39468      if (!media) {
39469        return;
39470      }
39471  
39472      if (!media.id && media.url) {
39473        // This is a temporary blob image.
39474        setLogo(undefined);
39475        setLogoUrl(media.url);
39476        return;
39477      }
39478  
39479      setLogo(media.id, shouldForceSync);
39480    };
39481  
39482    const onRemoveLogo = () => {
39483      setLogo(null);
39484      setLogoUrl(undefined);
39485      setAttributes({
39486        width: undefined
39487      });
39488    };
39489  
39490    const {
39491      createErrorNotice
39492    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
39493  
39494    const onUploadError = message => {
39495      createErrorNotice(message[2], {
39496        type: 'snackbar'
39497      });
39498    };
39499  
39500    const controls = canUserEdit && logoUrl && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
39501      group: "other"
39502    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
39503      mediaURL: logoUrl,
39504      allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
39505      accept: ACCEPT_MEDIA_STRING,
39506      onSelect: onSelectLogo,
39507      onError: onUploadError
39508    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
39509      onClick: onRemoveLogo
39510    }, (0,external_wp_i18n_namespaceObject.__)('Reset'))));
39511    let logoImage;
39512    const isLoading = siteLogoId === undefined || isRequestingMediaItem;
39513  
39514    if (isLoading) {
39515      logoImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null);
39516    }
39517  
39518    if (!!logoUrl) {
39519      logoImage = (0,external_wp_element_namespaceObject.createElement)(SiteLogo, {
39520        alt: alt,
39521        attributes: attributes,
39522        className: className,
39523        containerRef: ref,
39524        isSelected: isSelected,
39525        setAttributes: setAttributes,
39526        logoUrl: logoUrl,
39527        setLogo: setLogo,
39528        logoId: (mediaItemData === null || mediaItemData === void 0 ? void 0 : mediaItemData.id) || siteLogoId,
39529        siteUrl: url,
39530        setIcon: setIcon,
39531        iconId: siteIconId,
39532        canUserEdit: canUserEdit
39533      });
39534    }
39535  
39536    const placeholder = content => {
39537      const placeholderClassName = classnames_default()('block-editor-media-placeholder', className);
39538      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
39539        className: placeholderClassName,
39540        preview: logoImage
39541      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
39542        className: "components-placeholder__illustration",
39543        fill: "none",
39544        xmlns: "http://www.w3.org/2000/svg",
39545        viewBox: "0 0 60 60"
39546      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
39547        vectorEffect: "non-scaling-stroke",
39548        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"
39549      })), content);
39550    };
39551  
39552    const classes = classnames_default()(className, {
39553      'is-default-size': !width
39554    });
39555    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
39556      ref,
39557      className: classes
39558    });
39559  
39560    const label = (0,external_wp_i18n_namespaceObject.__)('Add a site logo');
39561  
39562    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, {
39563      className: "site-logo_placeholder"
39564    }, isLoading && (0,external_wp_element_namespaceObject.createElement)("span", {
39565      className: "components-placeholder__preview"
39566    }, (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, {
39567      onSelect: onInitialSelectLogo,
39568      accept: ACCEPT_MEDIA_STRING,
39569      allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
39570      onError: onUploadError,
39571      placeholder: placeholder,
39572      mediaLibraryButton: _ref3 => {
39573        let {
39574          open
39575        } = _ref3;
39576        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
39577          icon: library_upload,
39578          variant: "primary",
39579          label: label,
39580          showTooltip: true,
39581          tooltipPosition: "top center",
39582          onClick: () => {
39583            open();
39584          }
39585        });
39586      }
39587    }));
39588  }
39589  
39590  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/transforms.js
39591  /**
39592   * WordPress dependencies
39593   */
39594  
39595  const site_logo_transforms_transforms = {
39596    to: [{
39597      type: 'block',
39598      blocks: ['core/site-title'],
39599      transform: _ref => {
39600        let {
39601          isLink,
39602          linkTarget
39603        } = _ref;
39604        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-title', {
39605          isLink,
39606          linkTarget
39607        });
39608      }
39609    }]
39610  };
39611  /* harmony default export */ var site_logo_transforms = (site_logo_transforms_transforms);
39612  
39613  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
39614  /**
39615   * WordPress dependencies
39616   */
39617  
39618  /**
39619   * Internal dependencies
39620   */
39621  
39622  const site_logo_metadata = {
39623    $schema: "https://schemas.wp.org/trunk/block.json",
39624    apiVersion: 2,
39625    name: "core/site-logo",
39626    title: "Site Logo",
39627    category: "theme",
39628    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.",
39629    textdomain: "default",
39630    attributes: {
39631      width: {
39632        type: "number"
39633      },
39634      isLink: {
39635        type: "boolean",
39636        "default": true
39637      },
39638      linkTarget: {
39639        type: "string",
39640        "default": "_self"
39641      },
39642      shouldSyncIcon: {
39643        type: "boolean"
39644      }
39645    },
39646    example: {
39647      viewportWidth: 500,
39648      attributes: {
39649        width: 350,
39650        className: "block-editor-block-types-list__site-logo-example"
39651      }
39652    },
39653    supports: {
39654      html: false,
39655      align: true,
39656      alignWide: false,
39657      color: {
39658        __experimentalDuotone: "img, .components-placeholder__illustration, .components-placeholder::before",
39659        text: false,
39660        background: false
39661      }
39662    },
39663    styles: [{
39664      name: "default",
39665      label: "Default",
39666      isDefault: true
39667    }, {
39668      name: "rounded",
39669      label: "Rounded"
39670    }],
39671    editorStyle: "wp-block-site-logo-editor",
39672    style: "wp-block-site-logo"
39673  };
39674  
39675  
39676  const {
39677    name: site_logo_name
39678  } = site_logo_metadata;
39679  
39680  const site_logo_settings = {
39681    icon: site_logo,
39682    edit: LogoEdit,
39683    transforms: site_logo_transforms
39684  };
39685  
39686  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/edit.js
39687  
39688  
39689  
39690  /**
39691   * External dependencies
39692   */
39693  
39694  /**
39695   * WordPress dependencies
39696   */
39697  
39698  
39699  
39700  
39701  
39702  
39703  function SiteTaglineEdit(_ref) {
39704    let {
39705      attributes,
39706      setAttributes,
39707      insertBlocksAfter
39708    } = _ref;
39709    const {
39710      textAlign
39711    } = attributes;
39712    const [siteTagline, setSiteTagline] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'description');
39713    const {
39714      canUserEdit,
39715      readOnlySiteTagLine
39716    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
39717      const {
39718        canUser,
39719        getEntityRecord
39720      } = select(external_wp_coreData_namespaceObject.store);
39721      const siteData = getEntityRecord('root', '__unstableBase');
39722      return {
39723        canUserEdit: canUser('update', 'settings'),
39724        readOnlySiteTagLine: siteData === null || siteData === void 0 ? void 0 : siteData.description
39725      };
39726    }, []);
39727    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
39728      className: classnames_default()({
39729        [`has-text-align-$textAlign}`]: textAlign,
39730        'wp-block-site-tagline__placeholder': !canUserEdit && !readOnlySiteTagLine
39731      })
39732    });
39733    const siteTaglineContent = canUserEdit ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
39734      allowedFormats: [],
39735      onChange: setSiteTagline,
39736      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site tagline text'),
39737      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site tagline…'),
39738      tagName: "p",
39739      value: siteTagline,
39740      disableLineBreaks: true,
39741      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
39742    }, blockProps)) : (0,external_wp_element_namespaceObject.createElement)("p", blockProps, readOnlySiteTagLine || (0,external_wp_i18n_namespaceObject.__)('Site Tagline placeholder'));
39743    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
39744      group: "block"
39745    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
39746      onChange: newAlign => setAttributes({
39747        textAlign: newAlign
39748      }),
39749      value: textAlign
39750    })), siteTaglineContent);
39751  }
39752  
39753  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/icon.js
39754  
39755  
39756  /**
39757   * WordPress dependencies
39758   */
39759  
39760  /* harmony default export */ var site_tagline_icon = ((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
39761    xmlns: "http://www.w3.org/2000/svg",
39762    width: "24",
39763    height: "24"
39764  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
39765    fill: "none",
39766    d: "M0 0h24v24H0z"
39767  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
39768    d: "M4 9h16v2H4V9zm0 4h10v2H4v-2z"
39769  })));
39770  
39771  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/deprecated.js
39772  /**
39773   * Internal dependencies
39774   */
39775  
39776  const site_tagline_deprecated_v1 = {
39777    attributes: {
39778      textAlign: {
39779        type: 'string'
39780      }
39781    },
39782    supports: {
39783      align: ['wide', 'full'],
39784      html: false,
39785      color: {
39786        gradients: true
39787      },
39788      spacing: {
39789        margin: true,
39790        padding: true
39791      },
39792      typography: {
39793        fontSize: true,
39794        lineHeight: true,
39795        __experimentalFontFamily: true,
39796        __experimentalTextTransform: true,
39797        __experimentalFontStyle: true,
39798        __experimentalFontWeight: true,
39799        __experimentalLetterSpacing: true
39800      }
39801    },
39802  
39803    save() {
39804      return null;
39805    },
39806  
39807    migrate: migrate_font_family,
39808  
39809    isEligible(_ref) {
39810      var _style$typography;
39811  
39812      let {
39813        style
39814      } = _ref;
39815      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
39816    }
39817  
39818  };
39819  /**
39820   * New deprecations need to be placed first
39821   * for them to have higher priority.
39822   *
39823   * Old deprecations may need to be updated as well.
39824   *
39825   * See block-deprecation.md
39826   */
39827  
39828  /* harmony default export */ var site_tagline_deprecated = ([site_tagline_deprecated_v1]);
39829  
39830  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
39831  /**
39832   * Internal dependencies
39833   */
39834  const site_tagline_metadata = {
39835    $schema: "https://schemas.wp.org/trunk/block.json",
39836    apiVersion: 2,
39837    name: "core/site-tagline",
39838    title: "Site Tagline",
39839    category: "theme",
39840    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.",
39841    keywords: ["description"],
39842    textdomain: "default",
39843    attributes: {
39844      textAlign: {
39845        type: "string"
39846      }
39847    },
39848    supports: {
39849      align: ["wide", "full"],
39850      html: false,
39851      color: {
39852        gradients: true,
39853        __experimentalDefaultControls: {
39854          background: true,
39855          text: true
39856        }
39857      },
39858      spacing: {
39859        margin: true,
39860        padding: true
39861      },
39862      typography: {
39863        fontSize: true,
39864        lineHeight: true,
39865        __experimentalFontFamily: true,
39866        __experimentalTextTransform: true,
39867        __experimentalFontStyle: true,
39868        __experimentalFontWeight: true,
39869        __experimentalLetterSpacing: true,
39870        __experimentalDefaultControls: {
39871          fontSize: true
39872        }
39873      }
39874    },
39875    editorStyle: "wp-block-site-tagline-editor"
39876  };
39877  
39878  
39879  
39880  const {
39881    name: site_tagline_name
39882  } = site_tagline_metadata;
39883  
39884  const site_tagline_settings = {
39885    icon: site_tagline_icon,
39886    edit: SiteTaglineEdit,
39887    deprecated: site_tagline_deprecated
39888  };
39889  
39890  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/map-marker.js
39891  
39892  
39893  /**
39894   * WordPress dependencies
39895   */
39896  
39897  const mapMarker = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
39898    xmlns: "https://www.w3.org/2000/svg",
39899    viewBox: "0 0 24 24"
39900  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
39901    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"
39902  }));
39903  /* harmony default export */ var map_marker = (mapMarker);
39904  
39905  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/level-icon.js
39906  
39907  
39908  /**
39909   * WordPress dependencies
39910   */
39911  
39912  
39913  function LevelIcon(_ref) {
39914    let {
39915      level,
39916      isPressed = false
39917    } = _ref;
39918    if (level === 0) return library_paragraph;
39919    const levelToPath = {
39920      1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z',
39921      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',
39922      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',
39923      4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z',
39924      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',
39925      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'
39926    };
39927    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
39928      width: "20",
39929      height: "20",
39930      viewBox: "0 0 20 20",
39931      xmlns: "http://www.w3.org/2000/svg",
39932      isPressed: isPressed
39933    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
39934      d: levelToPath[level]
39935    }));
39936  }
39937  
39938  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/level-toolbar.js
39939  
39940  
39941  /**
39942   * WordPress dependencies
39943   */
39944  
39945  
39946  /**
39947   * Internal dependencies
39948   */
39949  
39950  
39951  function LevelControl(_ref) {
39952    let {
39953      level,
39954      onChange
39955    } = _ref;
39956    const allControls = [1, 2, 3, 4, 5, 6, 0].map(currentLevel => {
39957      const isActive = currentLevel === level;
39958      return {
39959        icon: (0,external_wp_element_namespaceObject.createElement)(LevelIcon, {
39960          level: currentLevel,
39961          isPressed: isActive
39962        }),
39963        title: currentLevel === 0 ? (0,external_wp_i18n_namespaceObject.__)('Paragraph') : // translators: %s: heading level e.g: "1", "2", "3"
39964        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Heading %d'), currentLevel),
39965        isActive,
39966        onClick: () => onChange(currentLevel)
39967      };
39968    });
39969    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
39970      label: (0,external_wp_i18n_namespaceObject.__)('Change heading level'),
39971      icon: (0,external_wp_element_namespaceObject.createElement)(LevelIcon, {
39972        level: level
39973      }),
39974      controls: allControls
39975    });
39976  }
39977  
39978  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/index.js
39979  
39980  
39981  /**
39982   * External dependencies
39983   */
39984  
39985  /**
39986   * WordPress dependencies
39987   */
39988  
39989  
39990  
39991  
39992  
39993  
39994  
39995  
39996  /**
39997   * Internal dependencies
39998   */
39999  
40000  
40001  function SiteTitleEdit(_ref) {
40002    let {
40003      attributes,
40004      setAttributes,
40005      insertBlocksAfter
40006    } = _ref;
40007    const {
40008      level,
40009      textAlign,
40010      isLink,
40011      linkTarget
40012    } = attributes;
40013    const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'title');
40014    const {
40015      canUserEdit,
40016      readOnlyTitle
40017    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
40018      const {
40019        canUser,
40020        getEntityRecord
40021      } = select(external_wp_coreData_namespaceObject.store);
40022      const siteData = getEntityRecord('root', '__unstableBase');
40023      return {
40024        canUserEdit: canUser('update', 'settings'),
40025        readOnlyTitle: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(siteData === null || siteData === void 0 ? void 0 : siteData.name)
40026      };
40027    }, []);
40028    const TagName = level === 0 ? 'p' : `h$level}`;
40029    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
40030      className: classnames_default()({
40031        [`has-text-align-$textAlign}`]: textAlign,
40032        'wp-block-site-title__placeholder': !canUserEdit && !readOnlyTitle
40033      })
40034    });
40035    const siteTitleContent = canUserEdit ? (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
40036      tagName: isLink ? 'a' : 'span',
40037      href: isLink ? '#site-title-pseudo-link' : undefined,
40038      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site title text'),
40039      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site title…'),
40040      value: title,
40041      onChange: setTitle,
40042      allowedFormats: [],
40043      disableLineBreaks: true,
40044      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
40045    })) : (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, isLink ? (0,external_wp_element_namespaceObject.createElement)("a", {
40046      href: "#site-title-pseudo-link",
40047      onClick: event => event.preventDefault()
40048    }, readOnlyTitle || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')) : (0,external_wp_element_namespaceObject.createElement)("span", null, title || readOnlyTitle));
40049    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
40050      group: "block"
40051    }, (0,external_wp_element_namespaceObject.createElement)(LevelControl, {
40052      level: level,
40053      onChange: newLevel => setAttributes({
40054        level: newLevel
40055      })
40056    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
40057      value: textAlign,
40058      onChange: nextAlign => {
40059        setAttributes({
40060          textAlign: nextAlign
40061        });
40062      }
40063    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
40064      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
40065    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
40066      label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
40067      onChange: () => setAttributes({
40068        isLink: !isLink
40069      }),
40070      checked: isLink
40071    }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
40072      label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
40073      onChange: value => setAttributes({
40074        linkTarget: value ? '_blank' : '_self'
40075      }),
40076      checked: linkTarget === '_blank'
40077    }))), siteTitleContent);
40078  }
40079  
40080  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/deprecated.js
40081  /**
40082   * Internal dependencies
40083   */
40084  
40085  const site_title_deprecated_v1 = {
40086    attributes: {
40087      level: {
40088        type: 'number',
40089        default: 1
40090      },
40091      textAlign: {
40092        type: 'string'
40093      },
40094      isLink: {
40095        type: 'boolean',
40096        default: true
40097      },
40098      linkTarget: {
40099        type: 'string',
40100        default: '_self'
40101      }
40102    },
40103    supports: {
40104      align: ['wide', 'full'],
40105      html: false,
40106      color: {
40107        gradients: true,
40108        link: true
40109      },
40110      spacing: {
40111        padding: true,
40112        margin: true
40113      },
40114      typography: {
40115        fontSize: true,
40116        lineHeight: true,
40117        __experimentalFontFamily: true,
40118        __experimentalTextTransform: true,
40119        __experimentalFontStyle: true,
40120        __experimentalFontWeight: true,
40121        __experimentalLetterSpacing: true
40122      }
40123    },
40124  
40125    save() {
40126      return null;
40127    },
40128  
40129    migrate: migrate_font_family,
40130  
40131    isEligible(_ref) {
40132      var _style$typography;
40133  
40134      let {
40135        style
40136      } = _ref;
40137      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
40138    }
40139  
40140  };
40141  /**
40142   * New deprecations need to be placed first
40143   * for them to have higher priority.
40144   *
40145   * Old deprecations may need to be updated as well.
40146   *
40147   * See block-deprecation.md
40148   */
40149  
40150  /* harmony default export */ var site_title_deprecated = ([site_title_deprecated_v1]);
40151  
40152  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/transforms.js
40153  /**
40154   * WordPress dependencies
40155   */
40156  
40157  const site_title_transforms_transforms = {
40158    to: [{
40159      type: 'block',
40160      blocks: ['core/site-logo'],
40161      transform: _ref => {
40162        let {
40163          isLink,
40164          linkTarget
40165        } = _ref;
40166        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo', {
40167          isLink,
40168          linkTarget
40169        });
40170      }
40171    }]
40172  };
40173  /* harmony default export */ var site_title_transforms = (site_title_transforms_transforms);
40174  
40175  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
40176  /**
40177   * WordPress dependencies
40178   */
40179  
40180  /**
40181   * Internal dependencies
40182   */
40183  
40184  const site_title_metadata = {
40185    $schema: "https://schemas.wp.org/trunk/block.json",
40186    apiVersion: 2,
40187    name: "core/site-title",
40188    title: "Site Title",
40189    category: "theme",
40190    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.",
40191    textdomain: "default",
40192    attributes: {
40193      level: {
40194        type: "number",
40195        "default": 1
40196      },
40197      textAlign: {
40198        type: "string"
40199      },
40200      isLink: {
40201        type: "boolean",
40202        "default": true
40203      },
40204      linkTarget: {
40205        type: "string",
40206        "default": "_self"
40207      }
40208    },
40209    example: {
40210      viewportWidth: 500
40211    },
40212    supports: {
40213      align: ["wide", "full"],
40214      html: false,
40215      color: {
40216        gradients: true,
40217        link: true,
40218        __experimentalDefaultControls: {
40219          background: true,
40220          text: true,
40221          link: true
40222        }
40223      },
40224      spacing: {
40225        padding: true,
40226        margin: true
40227      },
40228      typography: {
40229        fontSize: true,
40230        lineHeight: true,
40231        __experimentalFontFamily: true,
40232        __experimentalTextTransform: true,
40233        __experimentalFontStyle: true,
40234        __experimentalFontWeight: true,
40235        __experimentalLetterSpacing: true,
40236        __experimentalDefaultControls: {
40237          fontSize: true,
40238          lineHeight: true,
40239          fontAppearance: true,
40240          letterSpacing: true,
40241          textTransform: true
40242        }
40243      }
40244    },
40245    editorStyle: "wp-block-site-title-editor"
40246  };
40247  
40248  
40249  
40250  const {
40251    name: site_title_name
40252  } = site_title_metadata;
40253  
40254  const site_title_settings = {
40255    icon: map_marker,
40256    edit: SiteTitleEdit,
40257    transforms: site_title_transforms,
40258    deprecated: site_title_deprecated
40259  };
40260  
40261  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/share.js
40262  
40263  
40264  /**
40265   * WordPress dependencies
40266   */
40267  
40268  const share = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40269    viewBox: "0 0 24 24",
40270    xmlns: "http://www.w3.org/2000/svg"
40271  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40272    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"
40273  }));
40274  /* harmony default export */ var library_share = (share);
40275  
40276  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js
40277  
40278  
40279  /**
40280   * WordPress dependencies
40281   */
40282  
40283  const keyboardReturn = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40284    xmlns: "http://www.w3.org/2000/svg",
40285    viewBox: "-2 -2 24 24"
40286  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40287    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"
40288  }));
40289  /* harmony default export */ var keyboard_return = (keyboardReturn);
40290  
40291  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js
40292  
40293  
40294  /**
40295   * WordPress dependencies
40296   */
40297  
40298  const WordPressIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40299    width: "24",
40300    height: "24",
40301    viewBox: "0 0 24 24",
40302    version: "1.1",
40303    xmlns: "http://www.w3.org/2000/svg"
40304  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40305    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"
40306  }));
40307  
40308  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js
40309  
40310  
40311  /**
40312   * WordPress dependencies
40313   */
40314  
40315  const FivehundredpxIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40316    width: "24",
40317    height: "24",
40318    viewBox: "0 0 24 24",
40319    version: "1.1"
40320  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40321    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"
40322  }));
40323  
40324  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js
40325  
40326  
40327  /**
40328   * WordPress dependencies
40329   */
40330  
40331  const AmazonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40332    width: "24",
40333    height: "24",
40334    viewBox: "0 0 24 24",
40335    version: "1.1"
40336  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40337    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"
40338  }));
40339  
40340  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js
40341  
40342  
40343  /**
40344   * WordPress dependencies
40345   */
40346  
40347  const BandcampIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40348    width: "24",
40349    height: "24",
40350    viewBox: "0 0 24 24",
40351    version: "1.1"
40352  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40353    d: "M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"
40354  }));
40355  
40356  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js
40357  
40358  
40359  /**
40360   * WordPress dependencies
40361   */
40362  
40363  const BehanceIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40364    width: "24",
40365    height: "24",
40366    viewBox: "0 0 24 24",
40367    version: "1.1"
40368  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40369    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"
40370  }));
40371  
40372  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js
40373  
40374  
40375  /**
40376   * WordPress dependencies
40377   */
40378  
40379  const ChainIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40380    width: "24",
40381    height: "24",
40382    viewBox: "0 0 24 24",
40383    version: "1.1"
40384  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40385    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"
40386  }));
40387  
40388  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js
40389  
40390  
40391  /**
40392   * WordPress dependencies
40393   */
40394  
40395  const CodepenIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40396    width: "24",
40397    height: "24",
40398    viewBox: "0 0 24 24",
40399    version: "1.1"
40400  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40401    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"
40402  }));
40403  
40404  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js
40405  
40406  
40407  /**
40408   * WordPress dependencies
40409   */
40410  
40411  const DeviantArtIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40412    width: "24",
40413    height: "24",
40414    viewBox: "0 0 24 24",
40415    version: "1.1"
40416  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40417    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"
40418  }));
40419  
40420  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js
40421  
40422  
40423  /**
40424   * WordPress dependencies
40425   */
40426  
40427  const DribbbleIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40428    width: "24",
40429    height: "24",
40430    viewBox: "0 0 24 24",
40431    version: "1.1"
40432  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40433    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"
40434  }));
40435  
40436  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js
40437  
40438  
40439  /**
40440   * WordPress dependencies
40441   */
40442  
40443  const DropboxIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40444    width: "24",
40445    height: "24",
40446    viewBox: "0 0 24 24",
40447    version: "1.1"
40448  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40449    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"
40450  }));
40451  
40452  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js
40453  
40454  
40455  /**
40456   * WordPress dependencies
40457   */
40458  
40459  const EtsyIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40460    width: "24",
40461    height: "24",
40462    viewBox: "0 0 24 24",
40463    version: "1.1"
40464  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40465    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"
40466  }));
40467  
40468  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js
40469  
40470  
40471  /**
40472   * WordPress dependencies
40473   */
40474  
40475  const FacebookIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40476    width: "24",
40477    height: "24",
40478    viewBox: "0 0 24 24",
40479    version: "1.1"
40480  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40481    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"
40482  }));
40483  
40484  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js
40485  
40486  
40487  /**
40488   * WordPress dependencies
40489   */
40490  
40491  const FeedIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40492    width: "24",
40493    height: "24",
40494    viewBox: "0 0 24 24",
40495    version: "1.1"
40496  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40497    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"
40498  }));
40499  
40500  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js
40501  
40502  
40503  /**
40504   * WordPress dependencies
40505   */
40506  
40507  const FlickrIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40508    width: "24",
40509    height: "24",
40510    viewBox: "0 0 24 24",
40511    version: "1.1"
40512  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40513    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"
40514  }));
40515  
40516  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js
40517  
40518  
40519  /**
40520   * WordPress dependencies
40521   */
40522  
40523  const FoursquareIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40524    width: "24",
40525    height: "24",
40526    viewBox: "0 0 24 24",
40527    version: "1.1"
40528  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40529    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"
40530  }));
40531  
40532  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js
40533  
40534  
40535  /**
40536   * WordPress dependencies
40537   */
40538  
40539  const GoodreadsIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40540    width: "24",
40541    height: "24",
40542    viewBox: "0 0 24 24",
40543    version: "1.1"
40544  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40545    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"
40546  }));
40547  
40548  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js
40549  
40550  
40551  /**
40552   * WordPress dependencies
40553   */
40554  
40555  const GoogleIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40556    width: "24",
40557    height: "24",
40558    viewBox: "0 0 24 24",
40559    version: "1.1"
40560  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40561    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"
40562  }));
40563  
40564  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js
40565  
40566  
40567  /**
40568   * WordPress dependencies
40569   */
40570  
40571  const GitHubIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40572    width: "24",
40573    height: "24",
40574    viewBox: "0 0 24 24",
40575    version: "1.1"
40576  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40577    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"
40578  }));
40579  
40580  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js
40581  
40582  
40583  /**
40584   * WordPress dependencies
40585   */
40586  
40587  const InstagramIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40588    width: "24",
40589    height: "24",
40590    viewBox: "0 0 24 24",
40591    version: "1.1"
40592  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40593    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"
40594  }));
40595  
40596  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js
40597  
40598  
40599  /**
40600   * WordPress dependencies
40601   */
40602  
40603  const LastfmIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40604    width: "24",
40605    height: "24",
40606    viewBox: "0 0 24 24",
40607    version: "1.1"
40608  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40609    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"
40610  }));
40611  
40612  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js
40613  
40614  
40615  /**
40616   * WordPress dependencies
40617   */
40618  
40619  const LinkedInIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40620    width: "24",
40621    height: "24",
40622    viewBox: "0 0 24 24",
40623    version: "1.1"
40624  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40625    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"
40626  }));
40627  
40628  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js
40629  
40630  
40631  /**
40632   * WordPress dependencies
40633   */
40634  
40635  const MailIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40636    width: "24",
40637    height: "24",
40638    viewBox: "0 0 24 24",
40639    version: "1.1"
40640  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40641    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"
40642  }));
40643  
40644  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js
40645  
40646  
40647  /**
40648   * WordPress dependencies
40649   */
40650  
40651  const MastodonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40652    width: "24",
40653    height: "24",
40654    viewBox: "0 0 24 24",
40655    version: "1.1"
40656  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40657    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"
40658  }));
40659  
40660  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js
40661  
40662  
40663  /**
40664   * WordPress dependencies
40665   */
40666  
40667  const MeetupIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40668    width: "24",
40669    height: "24",
40670    viewBox: "0 0 24 24",
40671    version: "1.1"
40672  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40673    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"
40674  }));
40675  
40676  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js
40677  
40678  
40679  /**
40680   * WordPress dependencies
40681   */
40682  
40683  const MediumIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40684    width: "24",
40685    height: "24",
40686    viewBox: "0 0 24 24",
40687    version: "1.1"
40688  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40689    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"
40690  }));
40691  
40692  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/patreon.js
40693  
40694  
40695  /**
40696   * WordPress dependencies
40697   */
40698  
40699  const PatreonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40700    width: "24",
40701    height: "24",
40702    viewBox: "0 0 569 546",
40703    version: "1.1"
40704  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, {
40705    cx: "363",
40706    cy: "205",
40707    r: "205"
40708  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, {
40709    width: "100",
40710    height: "546",
40711    x: "0",
40712    y: "0"
40713  }));
40714  
40715  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js
40716  
40717  
40718  /**
40719   * WordPress dependencies
40720   */
40721  
40722  const PinterestIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40723    width: "24",
40724    height: "24",
40725    viewBox: "0 0 24 24",
40726    version: "1.1"
40727  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40728    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"
40729  }));
40730  
40731  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js
40732  
40733  
40734  /**
40735   * WordPress dependencies
40736   */
40737  
40738  const PocketIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40739    width: "24",
40740    height: "24",
40741    viewBox: "0 0 24 24",
40742    version: "1.1"
40743  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40744    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"
40745  }));
40746  
40747  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js
40748  
40749  
40750  /**
40751   * WordPress dependencies
40752   */
40753  
40754  const RedditIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40755    width: "24",
40756    height: "24",
40757    viewBox: "0 0 24 24",
40758    version: "1.1"
40759  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40760    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"
40761  }));
40762  
40763  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js
40764  
40765  
40766  /**
40767   * WordPress dependencies
40768   */
40769  
40770  const SkypeIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40771    width: "24",
40772    height: "24",
40773    viewBox: "0 0 24 24",
40774    version: "1.1"
40775  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40776    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"
40777  }));
40778  
40779  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js
40780  
40781  
40782  /**
40783   * WordPress dependencies
40784   */
40785  
40786  const SnapchatIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40787    width: "24",
40788    height: "24",
40789    viewBox: "0 0 24 24",
40790    version: "1.1"
40791  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40792    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"
40793  }));
40794  
40795  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js
40796  
40797  
40798  /**
40799   * WordPress dependencies
40800   */
40801  
40802  const SoundCloudIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40803    width: "24",
40804    height: "24",
40805    viewBox: "0 0 24 24",
40806    version: "1.1"
40807  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40808    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"
40809  }));
40810  
40811  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js
40812  
40813  
40814  /**
40815   * WordPress dependencies
40816   */
40817  
40818  const SpotifyIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40819    width: "24",
40820    height: "24",
40821    viewBox: "0 0 24 24",
40822    version: "1.1"
40823  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40824    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"
40825  }));
40826  
40827  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/telegram.js
40828  
40829  
40830  /**
40831   * WordPress dependencies
40832   */
40833  
40834  const TelegramIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40835    width: "24",
40836    height: "24",
40837    viewBox: "0 0 128 128",
40838    version: "1.1"
40839  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40840    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"
40841  }));
40842  
40843  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tiktok.js
40844  
40845  
40846  /**
40847   * WordPress dependencies
40848   */
40849  
40850  const TiktokIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40851    width: "24",
40852    height: "24",
40853    viewBox: "0 0 32 32",
40854    version: "1.1"
40855  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40856    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"
40857  }));
40858  
40859  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js
40860  
40861  
40862  /**
40863   * WordPress dependencies
40864   */
40865  
40866  const TumblrIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40867    width: "24",
40868    height: "24",
40869    viewBox: "0 0 24 24",
40870    version: "1.1"
40871  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40872    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"
40873  }));
40874  
40875  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js
40876  
40877  
40878  /**
40879   * WordPress dependencies
40880   */
40881  
40882  const TwitchIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40883    width: "24",
40884    height: "24",
40885    viewBox: "0 0 24 24",
40886    version: "1.1"
40887  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40888    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"
40889  }));
40890  
40891  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js
40892  
40893  
40894  /**
40895   * WordPress dependencies
40896   */
40897  
40898  const TwitterIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40899    width: "24",
40900    height: "24",
40901    viewBox: "0 0 24 24",
40902    version: "1.1"
40903  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40904    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"
40905  }));
40906  
40907  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js
40908  
40909  
40910  /**
40911   * WordPress dependencies
40912   */
40913  
40914  const VimeoIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40915    width: "24",
40916    height: "24",
40917    viewBox: "0 0 24 24",
40918    version: "1.1"
40919  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40920    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"
40921  }));
40922  
40923  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js
40924  
40925  
40926  /**
40927   * WordPress dependencies
40928   */
40929  
40930  const VkIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40931    width: "24",
40932    height: "24",
40933    viewBox: "0 0 24 24",
40934    version: "1.1"
40935  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40936    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"
40937  }));
40938  
40939  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js
40940  
40941  
40942  /**
40943   * WordPress dependencies
40944   */
40945  
40946  const YelpIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40947    width: "24",
40948    height: "24",
40949    viewBox: "0 0 24 24",
40950    version: "1.1"
40951  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40952    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"
40953  }));
40954  
40955  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js
40956  
40957  
40958  /**
40959   * WordPress dependencies
40960   */
40961  
40962  const YouTubeIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
40963    width: "24",
40964    height: "24",
40965    viewBox: "0 0 24 24",
40966    version: "1.1"
40967  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
40968    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"
40969  }));
40970  
40971  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/variations.js
40972  /**
40973   * Internal dependencies
40974   */
40975  
40976  const social_link_variations_variations = [{
40977    isDefault: true,
40978    name: 'wordpress',
40979    attributes: {
40980      service: 'wordpress'
40981    },
40982    title: 'WordPress',
40983    icon: WordPressIcon
40984  }, {
40985    name: 'fivehundredpx',
40986    attributes: {
40987      service: 'fivehundredpx'
40988    },
40989    title: '500px',
40990    icon: FivehundredpxIcon
40991  }, {
40992    name: 'amazon',
40993    attributes: {
40994      service: 'amazon'
40995    },
40996    title: 'Amazon',
40997    icon: AmazonIcon
40998  }, {
40999    name: 'bandcamp',
41000    attributes: {
41001      service: 'bandcamp'
41002    },
41003    title: 'Bandcamp',
41004    icon: BandcampIcon
41005  }, {
41006    name: 'behance',
41007    attributes: {
41008      service: 'behance'
41009    },
41010    title: 'Behance',
41011    icon: BehanceIcon
41012  }, {
41013    name: 'chain',
41014    attributes: {
41015      service: 'chain'
41016    },
41017    title: 'Link',
41018    icon: ChainIcon
41019  }, {
41020    name: 'codepen',
41021    attributes: {
41022      service: 'codepen'
41023    },
41024    title: 'CodePen',
41025    icon: CodepenIcon
41026  }, {
41027    name: 'deviantart',
41028    attributes: {
41029      service: 'deviantart'
41030    },
41031    title: 'DeviantArt',
41032    icon: DeviantArtIcon
41033  }, {
41034    name: 'dribbble',
41035    attributes: {
41036      service: 'dribbble'
41037    },
41038    title: 'Dribbble',
41039    icon: DribbbleIcon
41040  }, {
41041    name: 'dropbox',
41042    attributes: {
41043      service: 'dropbox'
41044    },
41045    title: 'Dropbox',
41046    icon: DropboxIcon
41047  }, {
41048    name: 'etsy',
41049    attributes: {
41050      service: 'etsy'
41051    },
41052    title: 'Etsy',
41053    icon: EtsyIcon
41054  }, {
41055    name: 'facebook',
41056    attributes: {
41057      service: 'facebook'
41058    },
41059    title: 'Facebook',
41060    icon: FacebookIcon
41061  }, {
41062    name: 'feed',
41063    attributes: {
41064      service: 'feed'
41065    },
41066    title: 'RSS Feed',
41067    icon: FeedIcon
41068  }, {
41069    name: 'flickr',
41070    attributes: {
41071      service: 'flickr'
41072    },
41073    title: 'Flickr',
41074    icon: FlickrIcon
41075  }, {
41076    name: 'foursquare',
41077    attributes: {
41078      service: 'foursquare'
41079    },
41080    title: 'Foursquare',
41081    icon: FoursquareIcon
41082  }, {
41083    name: 'goodreads',
41084    attributes: {
41085      service: 'goodreads'
41086    },
41087    title: 'Goodreads',
41088    icon: GoodreadsIcon
41089  }, {
41090    name: 'google',
41091    attributes: {
41092      service: 'google'
41093    },
41094    title: 'Google',
41095    icon: GoogleIcon
41096  }, {
41097    name: 'github',
41098    attributes: {
41099      service: 'github'
41100    },
41101    title: 'GitHub',
41102    icon: GitHubIcon
41103  }, {
41104    name: 'instagram',
41105    attributes: {
41106      service: 'instagram'
41107    },
41108    title: 'Instagram',
41109    icon: InstagramIcon
41110  }, {
41111    name: 'lastfm',
41112    attributes: {
41113      service: 'lastfm'
41114    },
41115    title: 'Last.fm',
41116    icon: LastfmIcon
41117  }, {
41118    name: 'linkedin',
41119    attributes: {
41120      service: 'linkedin'
41121    },
41122    title: 'LinkedIn',
41123    icon: LinkedInIcon
41124  }, {
41125    name: 'mail',
41126    attributes: {
41127      service: 'mail'
41128    },
41129    title: 'Mail',
41130    keywords: ['email', 'e-mail'],
41131    icon: MailIcon
41132  }, {
41133    name: 'mastodon',
41134    attributes: {
41135      service: 'mastodon'
41136    },
41137    title: 'Mastodon',
41138    icon: MastodonIcon
41139  }, {
41140    name: 'meetup',
41141    attributes: {
41142      service: 'meetup'
41143    },
41144    title: 'Meetup',
41145    icon: MeetupIcon
41146  }, {
41147    name: 'medium',
41148    attributes: {
41149      service: 'medium'
41150    },
41151    title: 'Medium',
41152    icon: MediumIcon
41153  }, {
41154    name: 'patreon',
41155    attributes: {
41156      service: 'patreon'
41157    },
41158    title: 'Patreon',
41159    icon: PatreonIcon
41160  }, {
41161    name: 'pinterest',
41162    attributes: {
41163      service: 'pinterest'
41164    },
41165    title: 'Pinterest',
41166    icon: PinterestIcon
41167  }, {
41168    name: 'pocket',
41169    attributes: {
41170      service: 'pocket'
41171    },
41172    title: 'Pocket',
41173    icon: PocketIcon
41174  }, {
41175    name: 'reddit',
41176    attributes: {
41177      service: 'reddit'
41178    },
41179    title: 'Reddit',
41180    icon: RedditIcon
41181  }, {
41182    name: 'skype',
41183    attributes: {
41184      service: 'skype'
41185    },
41186    title: 'Skype',
41187    icon: SkypeIcon
41188  }, {
41189    name: 'snapchat',
41190    attributes: {
41191      service: 'snapchat'
41192    },
41193    title: 'Snapchat',
41194    icon: SnapchatIcon
41195  }, {
41196    name: 'soundcloud',
41197    attributes: {
41198      service: 'soundcloud'
41199    },
41200    title: 'SoundCloud',
41201    icon: SoundCloudIcon
41202  }, {
41203    name: 'spotify',
41204    attributes: {
41205      service: 'spotify'
41206    },
41207    title: 'Spotify',
41208    icon: SpotifyIcon
41209  }, {
41210    name: 'telegram',
41211    attributes: {
41212      service: 'telegram'
41213    },
41214    title: 'Telegram',
41215    icon: TelegramIcon
41216  }, {
41217    name: 'tiktok',
41218    attributes: {
41219      service: 'tiktok'
41220    },
41221    title: 'TikTok',
41222    icon: TiktokIcon
41223  }, {
41224    name: 'tumblr',
41225    attributes: {
41226      service: 'tumblr'
41227    },
41228    title: 'Tumblr',
41229    icon: TumblrIcon
41230  }, {
41231    name: 'twitch',
41232    attributes: {
41233      service: 'twitch'
41234    },
41235    title: 'Twitch',
41236    icon: TwitchIcon
41237  }, {
41238    name: 'twitter',
41239    attributes: {
41240      service: 'twitter'
41241    },
41242    title: 'Twitter',
41243    icon: TwitterIcon
41244  }, {
41245    name: 'vimeo',
41246    attributes: {
41247      service: 'vimeo'
41248    },
41249    title: 'Vimeo',
41250    icon: VimeoIcon
41251  }, {
41252    name: 'vk',
41253    attributes: {
41254      service: 'vk'
41255    },
41256    title: 'VK',
41257    icon: VkIcon
41258  }, {
41259    name: 'yelp',
41260    attributes: {
41261      service: 'yelp'
41262    },
41263    title: 'Yelp',
41264    icon: YelpIcon
41265  }, {
41266    name: 'youtube',
41267    attributes: {
41268      service: 'youtube'
41269    },
41270    title: 'YouTube',
41271    icon: YouTubeIcon
41272  }];
41273  /**
41274   * Add `isActive` function to all `social link` variations, if not defined.
41275   * `isActive` function is used to find a variation match from a created
41276   *  Block by providing its attributes.
41277   */
41278  
41279  social_link_variations_variations.forEach(variation => {
41280    if (variation.isActive) return;
41281  
41282    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service;
41283  });
41284  /* harmony default export */ var social_link_variations = (social_link_variations_variations);
41285  
41286  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js
41287  /**
41288   * External dependencies
41289   */
41290  
41291  /**
41292   * WordPress dependencies
41293   */
41294  
41295  
41296  /**
41297   * Internal dependencies
41298   */
41299  
41300  
41301  
41302  /**
41303   * Retrieves the social service's icon component.
41304   *
41305   * @param {string} name key for a social service (lowercase slug)
41306   *
41307   * @return {WPComponent} Icon component for social service.
41308   */
41309  
41310  const getIconBySite = name => {
41311    const variation = (0,external_lodash_namespaceObject.find)(social_link_variations, {
41312      name
41313    });
41314    return variation ? variation.icon : ChainIcon;
41315  };
41316  /**
41317   * Retrieves the display name for the social service.
41318   *
41319   * @param {string} name key for a social service (lowercase slug)
41320   *
41321   * @return {string} Display name for social service
41322   */
41323  
41324  const getNameBySite = name => {
41325    const variation = (0,external_lodash_namespaceObject.find)(social_link_variations, {
41326      name
41327    });
41328    return variation ? variation.title : (0,external_wp_i18n_namespaceObject.__)('Social Icon');
41329  };
41330  
41331  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/edit.js
41332  
41333  
41334  /**
41335   * External dependencies
41336   */
41337  
41338  /**
41339   * WordPress dependencies
41340   */
41341  
41342  
41343  
41344  
41345  
41346  
41347  /**
41348   * Internal dependencies
41349   */
41350  
41351  
41352  
41353  const SocialLinkURLPopover = _ref => {
41354    let {
41355      url,
41356      setAttributes,
41357      setPopover,
41358      anchorRef
41359    } = _ref;
41360    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.URLPopover, {
41361      anchorRef: anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current,
41362      onClose: () => setPopover(false)
41363    }, (0,external_wp_element_namespaceObject.createElement)("form", {
41364      className: "block-editor-url-popover__link-editor",
41365      onSubmit: event => {
41366        event.preventDefault();
41367        setPopover(false);
41368      }
41369    }, (0,external_wp_element_namespaceObject.createElement)("div", {
41370      className: "block-editor-url-input"
41371    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.URLInput, {
41372      value: url,
41373      onChange: nextURL => setAttributes({
41374        url: nextURL
41375      }),
41376      placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter address'),
41377      disableSuggestions: true
41378    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
41379      icon: keyboard_return,
41380      label: (0,external_wp_i18n_namespaceObject.__)('Apply'),
41381      type: "submit"
41382    })));
41383  };
41384  
41385  const SocialLinkEdit = _ref2 => {
41386    let {
41387      attributes,
41388      context,
41389      isSelected,
41390      setAttributes
41391    } = _ref2;
41392    const {
41393      url,
41394      service,
41395      label
41396    } = attributes;
41397    const {
41398      showLabels,
41399      iconColorValue,
41400      iconBackgroundColorValue
41401    } = context;
41402    const [showURLPopover, setPopover] = (0,external_wp_element_namespaceObject.useState)(false);
41403    const classes = classnames_default()('wp-social-link', 'wp-social-link-' + service, {
41404      'wp-social-link__is-incomplete': !url
41405    });
41406    const ref = (0,external_wp_element_namespaceObject.useRef)();
41407    const IconComponent = getIconBySite(service);
41408    const socialLinkName = getNameBySite(service);
41409    const socialLinkLabel = label !== null && label !== void 0 ? label : socialLinkName;
41410    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41411      className: classes,
41412      style: {
41413        color: iconColorValue,
41414        backgroundColor: iconBackgroundColorValue
41415      }
41416    });
41417    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, {
41418      title: (0,external_wp_i18n_namespaceObject.sprintf)(
41419      /* translators: %s: name of the social service. */
41420      (0,external_wp_i18n_namespaceObject.__)('%s label'), socialLinkName),
41421      initialOpen: false
41422    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelRow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
41423      label: (0,external_wp_i18n_namespaceObject.__)('Link label'),
41424      help: (0,external_wp_i18n_namespaceObject.__)('Briefly describe the link to help screen reader users.'),
41425      value: label,
41426      onChange: value => setAttributes({
41427        label: value
41428      })
41429    })))), (0,external_wp_element_namespaceObject.createElement)("li", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
41430      className: "wp-block-social-link-anchor",
41431      ref: ref,
41432      onClick: () => setPopover(true)
41433    }, (0,external_wp_element_namespaceObject.createElement)(IconComponent, null), (0,external_wp_element_namespaceObject.createElement)("span", {
41434      className: classnames_default()('wp-block-social-link-label', {
41435        'screen-reader-text': !showLabels
41436      })
41437    }, socialLinkLabel), isSelected && showURLPopover && (0,external_wp_element_namespaceObject.createElement)(SocialLinkURLPopover, {
41438      url: url,
41439      setAttributes: setAttributes,
41440      setPopover: setPopover,
41441      anchorRef: ref
41442    }))));
41443  };
41444  
41445  /* harmony default export */ var social_link_edit = (SocialLinkEdit);
41446  
41447  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
41448  /**
41449   * WordPress dependencies
41450   */
41451  
41452  /**
41453   * Internal dependencies
41454   */
41455  
41456  
41457  const social_link_metadata = {
41458    $schema: "https://schemas.wp.org/trunk/block.json",
41459    apiVersion: 2,
41460    name: "core/social-link",
41461    title: "Social Icon",
41462    category: "widgets",
41463    parent: ["core/social-links"],
41464    description: "Display an icon linking to a social media profile or site.",
41465    textdomain: "default",
41466    attributes: {
41467      url: {
41468        type: "string"
41469      },
41470      service: {
41471        type: "string"
41472      },
41473      label: {
41474        type: "string"
41475      }
41476    },
41477    usesContext: ["openInNewTab", "showLabels", "iconColorValue", "iconBackgroundColorValue"],
41478    supports: {
41479      reusable: false,
41480      html: false
41481    },
41482    editorStyle: "wp-block-social-link-editor"
41483  };
41484  
41485  const {
41486    name: social_link_name
41487  } = social_link_metadata;
41488  
41489  const social_link_settings = {
41490    icon: library_share,
41491    edit: social_link_edit,
41492    variations: social_link_variations
41493  };
41494  
41495  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/deprecated.js
41496  
41497  
41498  /**
41499   * External dependencies
41500   */
41501  
41502  /**
41503   * WordPress dependencies
41504   */
41505  
41506  
41507  /**
41508   * The specific handling by `className` below is needed because `itemsJustification`
41509   * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't
41510   * declared in block.json.
41511   *
41512   * @param {Object} attributes Block's attributes.
41513   */
41514  
41515  const social_links_deprecated_migrateWithLayout = attributes => {
41516    var _className$match, _className$match$;
41517  
41518    if (!!attributes.layout) {
41519      return attributes;
41520    }
41521  
41522    const {
41523      className
41524    } = attributes; // Matches classes with `items-justified-` prefix.
41525  
41526    const prefix = `items-justified-`;
41527    const justifiedItemsRegex = new RegExp(`\\b$prefix}[^ ]*[ ]?\\b`, 'g');
41528    const newAttributes = { ...attributes,
41529      className: className === null || className === void 0 ? void 0 : className.replace(justifiedItemsRegex, '').trim()
41530    };
41531    /**
41532     * Add `layout` prop only if `justifyContent` is defined, for backwards
41533     * compatibility. In other cases the block's default layout will be used.
41534     * Also noting that due to the missing attribute, it's possible for a block
41535     * to have more than one of `justified` classes.
41536     */
41537  
41538    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();
41539  
41540    if (justifyContent) {
41541      Object.assign(newAttributes, {
41542        layout: {
41543          type: 'flex',
41544          justifyContent: justifyContent.slice(prefix.length)
41545        }
41546      });
41547    }
41548  
41549    return newAttributes;
41550  }; // Social Links block deprecations.
41551  
41552  
41553  const social_links_deprecated_deprecated = [// V1. Remove CSS variable use for colors.
41554  {
41555    attributes: {
41556      iconColor: {
41557        type: 'string'
41558      },
41559      customIconColor: {
41560        type: 'string'
41561      },
41562      iconColorValue: {
41563        type: 'string'
41564      },
41565      iconBackgroundColor: {
41566        type: 'string'
41567      },
41568      customIconBackgroundColor: {
41569        type: 'string'
41570      },
41571      iconBackgroundColorValue: {
41572        type: 'string'
41573      },
41574      openInNewTab: {
41575        type: 'boolean',
41576        default: false
41577      },
41578      size: {
41579        type: 'string'
41580      }
41581    },
41582    providesContext: {
41583      openInNewTab: 'openInNewTab'
41584    },
41585    supports: {
41586      align: ['left', 'center', 'right'],
41587      anchor: true
41588    },
41589    migrate: social_links_deprecated_migrateWithLayout,
41590    save: props => {
41591      const {
41592        attributes: {
41593          iconBackgroundColorValue,
41594          iconColorValue,
41595          itemsJustification,
41596          size
41597        }
41598      } = props;
41599      const className = classnames_default()(size, {
41600        'has-icon-color': iconColorValue,
41601        'has-icon-background-color': iconBackgroundColorValue,
41602        [`items-justified-$itemsJustification}`]: itemsJustification
41603      });
41604      const style = {
41605        '--wp--social-links--icon-color': iconColorValue,
41606        '--wp--social-links--icon-background-color': iconBackgroundColorValue
41607      };
41608      return (0,external_wp_element_namespaceObject.createElement)("ul", external_wp_blockEditor_namespaceObject.useBlockProps.save({
41609        className,
41610        style
41611      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null));
41612    }
41613  }];
41614  /* harmony default export */ var social_links_deprecated = (social_links_deprecated_deprecated);
41615  
41616  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
41617  
41618  
41619  /**
41620   * WordPress dependencies
41621   */
41622  
41623  const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
41624    xmlns: "http://www.w3.org/2000/svg",
41625    viewBox: "0 0 24 24"
41626  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
41627    d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
41628  }));
41629  /* harmony default export */ var library_check = (check);
41630  
41631  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/edit.js
41632  
41633  
41634  /**
41635   * External dependencies
41636   */
41637  
41638  /**
41639   * WordPress dependencies
41640   */
41641  
41642  
41643  
41644  
41645  
41646  
41647  
41648  const social_links_edit_ALLOWED_BLOCKS = ['core/social-link'];
41649  const sizeOptions = [{
41650    name: (0,external_wp_i18n_namespaceObject.__)('Small'),
41651    value: 'has-small-icon-size'
41652  }, {
41653    name: (0,external_wp_i18n_namespaceObject.__)('Normal'),
41654    value: 'has-normal-icon-size'
41655  }, {
41656    name: (0,external_wp_i18n_namespaceObject.__)('Large'),
41657    value: 'has-large-icon-size'
41658  }, {
41659    name: (0,external_wp_i18n_namespaceObject.__)('Huge'),
41660    value: 'has-huge-icon-size'
41661  }];
41662  
41663  const social_links_edit_getDefaultBlockLayout = blockTypeOrName => {
41664    const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout');
41665    return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default;
41666  };
41667  
41668  function SocialLinksEdit(props) {
41669    var _attributes$className;
41670  
41671    const {
41672      name,
41673      attributes,
41674      iconBackgroundColor,
41675      iconColor,
41676      isSelected,
41677      setAttributes,
41678      setIconBackgroundColor,
41679      setIconColor
41680    } = props;
41681    const {
41682      iconBackgroundColorValue,
41683      customIconBackgroundColor,
41684      iconColorValue,
41685      openInNewTab,
41686      showLabels,
41687      size,
41688      layout
41689    } = attributes;
41690    const usedLayout = layout || social_links_edit_getDefaultBlockLayout(name);
41691    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
41692    // restore it when any other style is selected.
41693  
41694    const backgroundBackup = (0,external_wp_element_namespaceObject.useRef)({});
41695    (0,external_wp_element_namespaceObject.useEffect)(() => {
41696      if (logosOnly) {
41697        backgroundBackup.current = {
41698          iconBackgroundColor,
41699          iconBackgroundColorValue,
41700          customIconBackgroundColor
41701        };
41702        setAttributes({
41703          iconBackgroundColor: undefined,
41704          customIconBackgroundColor: undefined,
41705          iconBackgroundColorValue: undefined
41706        });
41707      } else {
41708        setAttributes({ ...backgroundBackup.current
41709        });
41710      }
41711    }, [logosOnly]);
41712    const SocialPlaceholder = (0,external_wp_element_namespaceObject.createElement)("li", {
41713      className: "wp-block-social-links__social-placeholder"
41714    }, (0,external_wp_element_namespaceObject.createElement)("div", {
41715      className: "wp-block-social-links__social-placeholder-icons"
41716    }, (0,external_wp_element_namespaceObject.createElement)("div", {
41717      className: "wp-social-link wp-social-link-twitter"
41718    }), (0,external_wp_element_namespaceObject.createElement)("div", {
41719      className: "wp-social-link wp-social-link-facebook"
41720    }), (0,external_wp_element_namespaceObject.createElement)("div", {
41721      className: "wp-social-link wp-social-link-instagram"
41722    })));
41723    const SelectedSocialPlaceholder = (0,external_wp_element_namespaceObject.createElement)("li", {
41724      className: "wp-block-social-links__social-prompt"
41725    }, (0,external_wp_i18n_namespaceObject.__)('Click plus to add')); // Fallback color values are used maintain selections in case switching
41726    // themes and named colors in palette do not match.
41727  
41728    const className = classnames_default()(size, {
41729      'has-icon-color': iconColor.color || iconColorValue,
41730      'has-icon-background-color': iconBackgroundColor.color || iconBackgroundColorValue
41731    });
41732    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41733      className
41734    });
41735    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
41736      allowedBlocks: social_links_edit_ALLOWED_BLOCKS,
41737      placeholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,
41738      templateLock: false,
41739      __experimentalAppenderTagName: 'li',
41740      __experimentalLayout: usedLayout
41741    });
41742    const POPOVER_PROPS = {
41743      position: 'bottom right'
41744    };
41745    const colorSettings = [{
41746      // Use custom attribute as fallback to prevent loss of named color selection when
41747      // switching themes to a new theme that does not have a matching named color.
41748      value: iconColor.color || iconColorValue,
41749      onChange: colorValue => {
41750        setIconColor(colorValue);
41751        setAttributes({
41752          iconColorValue: colorValue
41753        });
41754      },
41755      label: (0,external_wp_i18n_namespaceObject.__)('Icon color')
41756    }];
41757  
41758    if (!logosOnly) {
41759      colorSettings.push({
41760        // Use custom attribute as fallback to prevent loss of named color selection when
41761        // switching themes to a new theme that does not have a matching named color.
41762        value: iconBackgroundColor.color || iconBackgroundColorValue,
41763        onChange: colorValue => {
41764          setIconBackgroundColor(colorValue);
41765          setAttributes({
41766            iconBackgroundColorValue: colorValue
41767          });
41768        },
41769        label: (0,external_wp_i18n_namespaceObject.__)('Icon background')
41770      });
41771    }
41772  
41773    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
41774      group: "other"
41775    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
41776      label: (0,external_wp_i18n_namespaceObject.__)('Size'),
41777      text: (0,external_wp_i18n_namespaceObject.__)('Size'),
41778      icon: null,
41779      popoverProps: POPOVER_PROPS
41780    }, _ref => {
41781      let {
41782        onClose
41783      } = _ref;
41784      return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, sizeOptions.map(entry => {
41785        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
41786          icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && library_check,
41787          isSelected: size === entry.value,
41788          key: entry.value,
41789          onClick: () => {
41790            setAttributes({
41791              size: entry.value
41792            });
41793          },
41794          onClose: onClose,
41795          role: "menuitemradio"
41796        }, entry.name);
41797      }));
41798    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
41799      title: (0,external_wp_i18n_namespaceObject.__)('Link settings')
41800    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
41801      label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
41802      checked: openInNewTab,
41803      onChange: () => setAttributes({
41804        openInNewTab: !openInNewTab
41805      })
41806    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
41807      label: (0,external_wp_i18n_namespaceObject.__)('Show labels'),
41808      checked: showLabels,
41809      onChange: () => setAttributes({
41810        showLabels: !showLabels
41811      })
41812    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PanelColorSettings, {
41813      __experimentalHasMultipleOrigins: true,
41814      __experimentalIsRenderedInSidebar: true,
41815      title: (0,external_wp_i18n_namespaceObject.__)('Color'),
41816      colorSettings: colorSettings
41817    }), !logosOnly && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
41818      textColor: iconColorValue,
41819      backgroundColor: iconBackgroundColorValue,
41820      isLargeText: false
41821    })), (0,external_wp_element_namespaceObject.createElement)("ul", innerBlocksProps));
41822  }
41823  const iconColorAttributes = {
41824    iconColor: 'icon-color',
41825    iconBackgroundColor: 'icon-background-color'
41826  };
41827  /* harmony default export */ var social_links_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)(iconColorAttributes)(SocialLinksEdit));
41828  
41829  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/save.js
41830  
41831  
41832  /**
41833   * External dependencies
41834   */
41835  
41836  /**
41837   * WordPress dependencies
41838   */
41839  
41840  
41841  function social_links_save_save(props) {
41842    const {
41843      attributes: {
41844        iconBackgroundColorValue,
41845        iconColorValue,
41846        showLabels,
41847        size
41848      }
41849    } = props;
41850    const className = classnames_default()(size, {
41851      'has-visible-labels': showLabels,
41852      'has-icon-color': iconColorValue,
41853      'has-icon-background-color': iconBackgroundColorValue
41854    });
41855    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
41856      className
41857    });
41858    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
41859    return (0,external_wp_element_namespaceObject.createElement)("ul", innerBlocksProps);
41860  }
41861  
41862  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
41863  /**
41864   * WordPress dependencies
41865   */
41866  
41867  /**
41868   * Internal dependencies
41869   */
41870  
41871  
41872  
41873  const social_links_metadata = {
41874    $schema: "https://schemas.wp.org/trunk/block.json",
41875    apiVersion: 2,
41876    name: "core/social-links",
41877    title: "Social Icons",
41878    category: "widgets",
41879    description: "Display icons linking to your social media profiles or sites.",
41880    keywords: ["links"],
41881    textdomain: "default",
41882    attributes: {
41883      iconColor: {
41884        type: "string"
41885      },
41886      customIconColor: {
41887        type: "string"
41888      },
41889      iconColorValue: {
41890        type: "string"
41891      },
41892      iconBackgroundColor: {
41893        type: "string"
41894      },
41895      customIconBackgroundColor: {
41896        type: "string"
41897      },
41898      iconBackgroundColorValue: {
41899        type: "string"
41900      },
41901      openInNewTab: {
41902        type: "boolean",
41903        "default": false
41904      },
41905      showLabels: {
41906        type: "boolean",
41907        "default": false
41908      },
41909      size: {
41910        type: "string"
41911      }
41912    },
41913    providesContext: {
41914      openInNewTab: "openInNewTab",
41915      showLabels: "showLabels",
41916      iconColorValue: "iconColorValue",
41917      iconBackgroundColorValue: "iconBackgroundColorValue"
41918    },
41919    supports: {
41920      align: ["left", "center", "right"],
41921      anchor: true,
41922      __experimentalExposeControlsToChildren: true,
41923      __experimentalLayout: {
41924        allowSwitching: false,
41925        allowInheriting: false,
41926        allowVerticalAlignment: false,
41927        "default": {
41928          type: "flex"
41929        }
41930      },
41931      spacing: {
41932        blockGap: ["horizontal", "vertical"],
41933        margin: ["top", "bottom"],
41934        units: ["px", "em", "rem", "vh", "vw"],
41935        __experimentalDefaultControls: {
41936          blockGap: true
41937        }
41938      }
41939    },
41940    styles: [{
41941      name: "default",
41942      label: "Default",
41943      isDefault: true
41944    }, {
41945      name: "logos-only",
41946      label: "Logos Only"
41947    }, {
41948      name: "pill-shape",
41949      label: "Pill Shape"
41950    }],
41951    editorStyle: "wp-block-social-links-editor",
41952    style: "wp-block-social-links"
41953  };
41954  
41955  const {
41956    name: social_links_name
41957  } = social_links_metadata;
41958  
41959  const social_links_settings = {
41960    example: {
41961      innerBlocks: [{
41962        name: 'core/social-link',
41963        attributes: {
41964          service: 'wordpress',
41965          url: 'https://wordpress.org'
41966        }
41967      }, {
41968        name: 'core/social-link',
41969        attributes: {
41970          service: 'facebook',
41971          url: 'https://www.facebook.com/WordPress/'
41972        }
41973      }, {
41974        name: 'core/social-link',
41975        attributes: {
41976          service: 'twitter',
41977          url: 'https://twitter.com/WordPress'
41978        }
41979      }]
41980    },
41981    icon: library_share,
41982    edit: social_links_edit,
41983    save: social_links_save_save,
41984    deprecated: social_links_deprecated
41985  };
41986  
41987  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js
41988  
41989  
41990  /**
41991   * WordPress dependencies
41992   */
41993  
41994  const resizeCornerNE = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
41995    viewBox: "0 0 24 24",
41996    xmlns: "http://www.w3.org/2000/svg"
41997  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
41998    d: "M12.5 4.2v1.6h4.7L5.8 17.2V12H4.2v7.8H12v-1.6H6.8L18.2 6.8v4.7h1.6V4.2z"
41999  }));
42000  /* harmony default export */ var resize_corner_n_e = (resizeCornerNE);
42001  
42002  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/deprecated.js
42003  
42004  
42005  /**
42006   * WordPress dependencies
42007   */
42008  
42009  const spacer_deprecated_deprecated = [{
42010    attributes: {
42011      height: {
42012        type: 'number',
42013        default: 100
42014      },
42015      width: {
42016        type: 'number'
42017      }
42018    },
42019  
42020    migrate(attributes) {
42021      const {
42022        height,
42023        width
42024      } = attributes;
42025      return { ...attributes,
42026        width: width !== undefined ? `$width}px` : undefined,
42027        height: height !== undefined ? `$height}px` : undefined
42028      };
42029    },
42030  
42031    save(_ref) {
42032      let {
42033        attributes
42034      } = _ref;
42035      return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
42036        style: {
42037          height: attributes.height,
42038          width: attributes.width
42039        },
42040        'aria-hidden': true
42041      }));
42042    }
42043  
42044  }];
42045  /* harmony default export */ var spacer_deprecated = (spacer_deprecated_deprecated);
42046  
42047  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/controls.js
42048  
42049  
42050  /**
42051   * WordPress dependencies
42052   */
42053  
42054  
42055  
42056  
42057  /**
42058   * Internal dependencies
42059   */
42060  
42061  
42062  
42063  function DimensionInput(_ref) {
42064    var _ref2;
42065  
42066    let {
42067      label,
42068      onChange,
42069      isResizing,
42070      value = ''
42071    } = _ref;
42072    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
42073    // percentage, since this is relative to the parent container. This
42074    // unit is disabled from the UI.
42075  
42076    const availableUnitSettings = (_ref2 = (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || undefined) === null || _ref2 === void 0 ? void 0 : _ref2.filter(availableUnit => availableUnit !== '%');
42077    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
42078      availableUnits: availableUnitSettings || ['px', 'em', 'rem', 'vw', 'vh'],
42079      defaultValues: {
42080        px: 100,
42081        em: 10,
42082        rem: 10,
42083        vw: 10,
42084        vh: 25
42085      }
42086    });
42087  
42088    const handleOnChange = unprocessedValue => {
42089      onChange(unprocessedValue);
42090    }; // Force the unit to update to `px` when the Spacer is being resized.
42091  
42092  
42093    const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
42094    const computedValue = [parsedQuantity, isResizing ? 'px' : parsedUnit].join('');
42095    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
42096      label: label,
42097      id: inputId
42098    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
42099      id: inputId,
42100      isResetValueOnUnitChange: true,
42101      min: MIN_SPACER_SIZE,
42102      onChange: handleOnChange,
42103      style: {
42104        maxWidth: 80
42105      },
42106      value: computedValue,
42107      units: units
42108    }));
42109  }
42110  
42111  function SpacerControls(_ref3) {
42112    let {
42113      setAttributes,
42114      orientation,
42115      height,
42116      width,
42117      isResizing
42118    } = _ref3;
42119    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
42120      title: (0,external_wp_i18n_namespaceObject.__)('Spacer settings')
42121    }, orientation === 'horizontal' && (0,external_wp_element_namespaceObject.createElement)(DimensionInput, {
42122      label: (0,external_wp_i18n_namespaceObject.__)('Width'),
42123      value: width,
42124      onChange: nextWidth => setAttributes({
42125        width: nextWidth
42126      }),
42127      isResizing: isResizing
42128    }), orientation !== 'horizontal' && (0,external_wp_element_namespaceObject.createElement)(DimensionInput, {
42129      label: (0,external_wp_i18n_namespaceObject.__)('Height'),
42130      value: height,
42131      onChange: nextHeight => setAttributes({
42132        height: nextHeight
42133      }),
42134      isResizing: isResizing
42135    })));
42136  }
42137  
42138  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/edit.js
42139  
42140  
42141  
42142  /**
42143   * External dependencies
42144   */
42145  
42146  /**
42147   * WordPress dependencies
42148   */
42149  
42150  
42151  
42152  
42153  
42154  /**
42155   * Internal dependencies
42156   */
42157  
42158  
42159  const MIN_SPACER_SIZE = 0;
42160  
42161  const ResizableSpacer = _ref => {
42162    let {
42163      orientation,
42164      onResizeStart,
42165      onResize,
42166      onResizeStop,
42167      isSelected,
42168      isResizing,
42169      setIsResizing,
42170      ...props
42171    } = _ref;
42172  
42173    const getCurrentSize = elt => {
42174      return orientation === 'horizontal' ? elt.clientWidth : elt.clientHeight;
42175    };
42176  
42177    const getNextVal = elt => {
42178      return `$getCurrentSize(elt)}px`;
42179    };
42180  
42181    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({
42182      className: classnames_default()('block-library-spacer__resize-container', {
42183        'resize-horizontal': orientation === 'horizontal',
42184        'is-resizing': isResizing,
42185        'is-selected': isSelected
42186      }),
42187      onResizeStart: (_event, _direction, elt) => {
42188        const nextVal = getNextVal(elt);
42189        onResizeStart(nextVal);
42190        onResize(nextVal);
42191      },
42192      onResize: (_event, _direction, elt) => {
42193        onResize(getNextVal(elt));
42194  
42195        if (!isResizing) {
42196          setIsResizing(true);
42197        }
42198      },
42199      onResizeStop: (_event, _direction, elt) => {
42200        const nextVal = getCurrentSize(elt);
42201        onResizeStop(`$nextVal}px`);
42202        setIsResizing(false);
42203      },
42204      __experimentalShowTooltip: true,
42205      __experimentalTooltipProps: {
42206        axis: orientation === 'horizontal' ? 'x' : 'y',
42207        position: 'corner',
42208        isVisible: isResizing
42209      },
42210      showHandle: isSelected
42211    }, props));
42212  };
42213  
42214  const SpacerEdit = _ref2 => {
42215    let {
42216      attributes,
42217      isSelected,
42218      setAttributes,
42219      toggleSelection,
42220      context
42221    } = _ref2;
42222    const {
42223      orientation
42224    } = context;
42225    const {
42226      height,
42227      width
42228    } = attributes;
42229    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
42230    const [temporaryHeight, setTemporaryHeight] = (0,external_wp_element_namespaceObject.useState)(null);
42231    const [temporaryWidth, setTemporaryWidth] = (0,external_wp_element_namespaceObject.useState)(null);
42232  
42233    const onResizeStart = () => toggleSelection(false);
42234  
42235    const onResizeStop = () => toggleSelection(true);
42236  
42237    const handleOnVerticalResizeStop = newHeight => {
42238      onResizeStop();
42239      setAttributes({
42240        height: newHeight
42241      });
42242      setTemporaryHeight(null);
42243    };
42244  
42245    const handleOnHorizontalResizeStop = newWidth => {
42246      onResizeStop();
42247      setAttributes({
42248        width: newWidth
42249      });
42250      setTemporaryWidth(null);
42251    };
42252  
42253    const style = {
42254      height: orientation === 'horizontal' ? 24 : temporaryHeight || height || undefined,
42255      width: orientation === 'horizontal' ? temporaryWidth || width || undefined : undefined
42256    };
42257  
42258    const resizableBoxWithOrientation = blockOrientation => {
42259      if (blockOrientation === 'horizontal') {
42260        return (0,external_wp_element_namespaceObject.createElement)(ResizableSpacer, {
42261          minWidth: MIN_SPACER_SIZE,
42262          enable: {
42263            top: false,
42264            right: true,
42265            bottom: false,
42266            left: false,
42267            topRight: false,
42268            bottomRight: false,
42269            bottomLeft: false,
42270            topLeft: false
42271          },
42272          orientation: blockOrientation,
42273          onResizeStart: onResizeStart,
42274          onResize: setTemporaryWidth,
42275          onResizeStop: handleOnHorizontalResizeStop,
42276          isSelected: isSelected,
42277          isResizing: isResizing,
42278          setIsResizing: setIsResizing
42279        });
42280      }
42281  
42282      return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(ResizableSpacer, {
42283        minHeight: MIN_SPACER_SIZE,
42284        enable: {
42285          top: false,
42286          right: false,
42287          bottom: true,
42288          left: false,
42289          topRight: false,
42290          bottomRight: false,
42291          bottomLeft: false,
42292          topLeft: false
42293        },
42294        orientation: blockOrientation,
42295        onResizeStart: onResizeStart,
42296        onResize: setTemporaryHeight,
42297        onResizeStop: handleOnVerticalResizeStop,
42298        isSelected: isSelected,
42299        isResizing: isResizing,
42300        setIsResizing: setIsResizing
42301      }));
42302    };
42303  
42304    (0,external_wp_element_namespaceObject.useEffect)(() => {
42305      if (orientation === 'horizontal' && !width) {
42306        setAttributes({
42307          height: '0px',
42308          width: '72px'
42309        });
42310      }
42311    }, []);
42312    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)({
42313      style
42314    }), resizableBoxWithOrientation(orientation)), (0,external_wp_element_namespaceObject.createElement)(SpacerControls, {
42315      setAttributes: setAttributes,
42316      height: temporaryHeight || height,
42317      width: temporaryWidth || width,
42318      orientation: orientation,
42319      isResizing: isResizing
42320    }));
42321  };
42322  
42323  /* harmony default export */ var spacer_edit = (SpacerEdit);
42324  
42325  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/save.js
42326  
42327  
42328  /**
42329   * WordPress dependencies
42330   */
42331  
42332  function spacer_save_save(_ref) {
42333    let {
42334      attributes: {
42335        height,
42336        width
42337      }
42338    } = _ref;
42339    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
42340      style: {
42341        height,
42342        width
42343      },
42344      'aria-hidden': true
42345    }));
42346  }
42347  
42348  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
42349  /**
42350   * WordPress dependencies
42351   */
42352  
42353  /**
42354   * Internal dependencies
42355   */
42356  
42357  
42358  
42359  const spacer_metadata = {
42360    $schema: "https://schemas.wp.org/trunk/block.json",
42361    apiVersion: 2,
42362    name: "core/spacer",
42363    title: "Spacer",
42364    category: "design",
42365    description: "Add white space between blocks and customize its height.",
42366    textdomain: "default",
42367    attributes: {
42368      height: {
42369        type: "string",
42370        "default": "100px"
42371      },
42372      width: {
42373        type: "string"
42374      }
42375    },
42376    usesContext: ["orientation"],
42377    supports: {
42378      anchor: true
42379    },
42380    editorStyle: "wp-block-spacer-editor",
42381    style: "wp-block-spacer"
42382  };
42383  
42384  const {
42385    name: spacer_name
42386  } = spacer_metadata;
42387  
42388  const spacer_settings = {
42389    icon: resize_corner_n_e,
42390    edit: spacer_edit,
42391    save: spacer_save_save,
42392    deprecated: spacer_deprecated
42393  };
42394  
42395  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-table.js
42396  
42397  
42398  /**
42399   * WordPress dependencies
42400   */
42401  
42402  const blockTable = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42403    viewBox: "0 0 24 24",
42404    xmlns: "http://www.w3.org/2000/svg"
42405  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42406    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"
42407  }));
42408  /* harmony default export */ var block_table = (blockTable);
42409  
42410  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/deprecated.js
42411  
42412  
42413  /**
42414   * External dependencies
42415   */
42416  
42417  /**
42418   * WordPress dependencies
42419   */
42420  
42421  
42422  const deprecated_supports = {
42423    align: true
42424  }; // As the previous arbitrary colors won't match theme color palettes, the hex
42425  // value will be mapped to the style.color.background attribute as if it was
42426  // a custom color selection.
42427  
42428  const oldColors = {
42429    'subtle-light-gray': '#f3f4f5',
42430    'subtle-pale-green': '#e9fbe5',
42431    'subtle-pale-blue': '#e7f5fe',
42432    'subtle-pale-pink': '#fcf0ef'
42433  };
42434  const table_deprecated_deprecated = [// Deprecation migrating table block to use colors block support feature.
42435  {
42436    attributes: {
42437      hasFixedLayout: {
42438        type: 'boolean',
42439        default: false
42440      },
42441      backgroundColor: {
42442        type: 'string'
42443      },
42444      caption: {
42445        type: 'string',
42446        source: 'html',
42447        selector: 'figcaption',
42448        default: ''
42449      },
42450      head: {
42451        type: 'array',
42452        default: [],
42453        source: 'query',
42454        selector: 'thead tr',
42455        query: {
42456          cells: {
42457            type: 'array',
42458            default: [],
42459            source: 'query',
42460            selector: 'td,th',
42461            query: {
42462              content: {
42463                type: 'string',
42464                source: 'html'
42465              },
42466              tag: {
42467                type: 'string',
42468                default: 'td',
42469                source: 'tag'
42470              },
42471              scope: {
42472                type: 'string',
42473                source: 'attribute',
42474                attribute: 'scope'
42475              },
42476              align: {
42477                type: 'string',
42478                source: 'attribute',
42479                attribute: 'data-align'
42480              }
42481            }
42482          }
42483        }
42484      },
42485      body: {
42486        type: 'array',
42487        default: [],
42488        source: 'query',
42489        selector: 'tbody tr',
42490        query: {
42491          cells: {
42492            type: 'array',
42493            default: [],
42494            source: 'query',
42495            selector: 'td,th',
42496            query: {
42497              content: {
42498                type: 'string',
42499                source: 'html'
42500              },
42501              tag: {
42502                type: 'string',
42503                default: 'td',
42504                source: 'tag'
42505              },
42506              scope: {
42507                type: 'string',
42508                source: 'attribute',
42509                attribute: 'scope'
42510              },
42511              align: {
42512                type: 'string',
42513                source: 'attribute',
42514                attribute: 'data-align'
42515              }
42516            }
42517          }
42518        }
42519      },
42520      foot: {
42521        type: 'array',
42522        default: [],
42523        source: 'query',
42524        selector: 'tfoot tr',
42525        query: {
42526          cells: {
42527            type: 'array',
42528            default: [],
42529            source: 'query',
42530            selector: 'td,th',
42531            query: {
42532              content: {
42533                type: 'string',
42534                source: 'html'
42535              },
42536              tag: {
42537                type: 'string',
42538                default: 'td',
42539                source: 'tag'
42540              },
42541              scope: {
42542                type: 'string',
42543                source: 'attribute',
42544                attribute: 'scope'
42545              },
42546              align: {
42547                type: 'string',
42548                source: 'attribute',
42549                attribute: 'data-align'
42550              }
42551            }
42552          }
42553        }
42554      }
42555    },
42556    supports: {
42557      anchor: true,
42558      align: true,
42559      __experimentalSelector: '.wp-block-table > table'
42560    },
42561    save: _ref => {
42562      let {
42563        attributes
42564      } = _ref;
42565      const {
42566        hasFixedLayout,
42567        head,
42568        body,
42569        foot,
42570        backgroundColor,
42571        caption
42572      } = attributes;
42573      const isEmpty = !head.length && !body.length && !foot.length;
42574  
42575      if (isEmpty) {
42576        return null;
42577      }
42578  
42579      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
42580      const classes = classnames_default()(backgroundClass, {
42581        'has-fixed-layout': hasFixedLayout,
42582        'has-background': !!backgroundClass
42583      });
42584      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
42585  
42586      const Section = _ref2 => {
42587        let {
42588          type,
42589          rows
42590        } = _ref2;
42591  
42592        if (!rows.length) {
42593          return null;
42594        }
42595  
42596        const Tag = `t$type}`;
42597        return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref3, rowIndex) => {
42598          let {
42599            cells
42600          } = _ref3;
42601          return (0,external_wp_element_namespaceObject.createElement)("tr", {
42602            key: rowIndex
42603          }, cells.map((_ref4, cellIndex) => {
42604            let {
42605              content,
42606              tag,
42607              scope,
42608              align
42609            } = _ref4;
42610            const cellClasses = classnames_default()({
42611              [`has-text-align-$align}`]: align
42612            });
42613            return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
42614              className: cellClasses ? cellClasses : undefined,
42615              "data-align": align,
42616              tagName: tag,
42617              value: content,
42618              key: cellIndex,
42619              scope: tag === 'th' ? scope : undefined
42620            });
42621          }));
42622        }));
42623      };
42624  
42625      return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("table", {
42626        className: classes === '' ? undefined : classes
42627      }, (0,external_wp_element_namespaceObject.createElement)(Section, {
42628        type: "head",
42629        rows: head
42630      }), (0,external_wp_element_namespaceObject.createElement)(Section, {
42631        type: "body",
42632        rows: body
42633      }), (0,external_wp_element_namespaceObject.createElement)(Section, {
42634        type: "foot",
42635        rows: foot
42636      })), hasCaption && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
42637        tagName: "figcaption",
42638        value: caption
42639      }));
42640    },
42641    isEligible: attributes => {
42642      return attributes.backgroundColor && attributes.backgroundColor in oldColors && !attributes.style;
42643    },
42644    // This version is the first to introduce the style attribute to the
42645    // table block. As a result, we'll explicitly override that.
42646    migrate: attributes => {
42647      return { ...attributes,
42648        backgroundColor: undefined,
42649        style: {
42650          color: {
42651            background: oldColors[attributes.backgroundColor]
42652          }
42653        }
42654      };
42655    }
42656  }, {
42657    attributes: {
42658      hasFixedLayout: {
42659        type: 'boolean',
42660        default: false
42661      },
42662      backgroundColor: {
42663        type: 'string'
42664      },
42665      head: {
42666        type: 'array',
42667        default: [],
42668        source: 'query',
42669        selector: 'thead tr',
42670        query: {
42671          cells: {
42672            type: 'array',
42673            default: [],
42674            source: 'query',
42675            selector: 'td,th',
42676            query: {
42677              content: {
42678                type: 'string',
42679                source: 'html'
42680              },
42681              tag: {
42682                type: 'string',
42683                default: 'td',
42684                source: 'tag'
42685              },
42686              scope: {
42687                type: 'string',
42688                source: 'attribute',
42689                attribute: 'scope'
42690              }
42691            }
42692          }
42693        }
42694      },
42695      body: {
42696        type: 'array',
42697        default: [],
42698        source: 'query',
42699        selector: 'tbody tr',
42700        query: {
42701          cells: {
42702            type: 'array',
42703            default: [],
42704            source: 'query',
42705            selector: 'td,th',
42706            query: {
42707              content: {
42708                type: 'string',
42709                source: 'html'
42710              },
42711              tag: {
42712                type: 'string',
42713                default: 'td',
42714                source: 'tag'
42715              },
42716              scope: {
42717                type: 'string',
42718                source: 'attribute',
42719                attribute: 'scope'
42720              }
42721            }
42722          }
42723        }
42724      },
42725      foot: {
42726        type: 'array',
42727        default: [],
42728        source: 'query',
42729        selector: 'tfoot tr',
42730        query: {
42731          cells: {
42732            type: 'array',
42733            default: [],
42734            source: 'query',
42735            selector: 'td,th',
42736            query: {
42737              content: {
42738                type: 'string',
42739                source: 'html'
42740              },
42741              tag: {
42742                type: 'string',
42743                default: 'td',
42744                source: 'tag'
42745              },
42746              scope: {
42747                type: 'string',
42748                source: 'attribute',
42749                attribute: 'scope'
42750              }
42751            }
42752          }
42753        }
42754      }
42755    },
42756    supports: deprecated_supports,
42757  
42758    save(_ref5) {
42759      let {
42760        attributes
42761      } = _ref5;
42762      const {
42763        hasFixedLayout,
42764        head,
42765        body,
42766        foot,
42767        backgroundColor
42768      } = attributes;
42769      const isEmpty = !head.length && !body.length && !foot.length;
42770  
42771      if (isEmpty) {
42772        return null;
42773      }
42774  
42775      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
42776      const classes = classnames_default()(backgroundClass, {
42777        'has-fixed-layout': hasFixedLayout,
42778        'has-background': !!backgroundClass
42779      });
42780  
42781      const Section = _ref6 => {
42782        let {
42783          type,
42784          rows
42785        } = _ref6;
42786  
42787        if (!rows.length) {
42788          return null;
42789        }
42790  
42791        const Tag = `t$type}`;
42792        return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref7, rowIndex) => {
42793          let {
42794            cells
42795          } = _ref7;
42796          return (0,external_wp_element_namespaceObject.createElement)("tr", {
42797            key: rowIndex
42798          }, cells.map((_ref8, cellIndex) => {
42799            let {
42800              content,
42801              tag,
42802              scope
42803            } = _ref8;
42804            return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
42805              tagName: tag,
42806              value: content,
42807              key: cellIndex,
42808              scope: tag === 'th' ? scope : undefined
42809            });
42810          }));
42811        }));
42812      };
42813  
42814      return (0,external_wp_element_namespaceObject.createElement)("table", {
42815        className: classes
42816      }, (0,external_wp_element_namespaceObject.createElement)(Section, {
42817        type: "head",
42818        rows: head
42819      }), (0,external_wp_element_namespaceObject.createElement)(Section, {
42820        type: "body",
42821        rows: body
42822      }), (0,external_wp_element_namespaceObject.createElement)(Section, {
42823        type: "foot",
42824        rows: foot
42825      }));
42826    }
42827  
42828  }];
42829  /* harmony default export */ var table_deprecated = (table_deprecated_deprecated);
42830  
42831  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js
42832  
42833  
42834  /**
42835   * WordPress dependencies
42836   */
42837  
42838  const alignLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42839    xmlns: "http://www.w3.org/2000/svg",
42840    viewBox: "0 0 24 24"
42841  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42842    d: "M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z"
42843  }));
42844  /* harmony default export */ var align_left = (alignLeft);
42845  
42846  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js
42847  
42848  
42849  /**
42850   * WordPress dependencies
42851   */
42852  
42853  const alignCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42854    xmlns: "http://www.w3.org/2000/svg",
42855    viewBox: "0 0 24 24"
42856  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42857    d: "M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z"
42858  }));
42859  /* harmony default export */ var align_center = (alignCenter);
42860  
42861  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js
42862  
42863  
42864  /**
42865   * WordPress dependencies
42866   */
42867  
42868  const alignRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42869    xmlns: "http://www.w3.org/2000/svg",
42870    viewBox: "0 0 24 24"
42871  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42872    d: "M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z"
42873  }));
42874  /* harmony default export */ var align_right = (alignRight);
42875  
42876  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-before.js
42877  
42878  
42879  /**
42880   * WordPress dependencies
42881   */
42882  
42883  const tableRowBefore = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42884    xmlns: "http://www.w3.org/2000/svg",
42885    viewBox: "-2 -2 24 24"
42886  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42887    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"
42888  }));
42889  /* harmony default export */ var table_row_before = (tableRowBefore);
42890  
42891  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-after.js
42892  
42893  
42894  /**
42895   * WordPress dependencies
42896   */
42897  
42898  const tableRowAfter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42899    xmlns: "http://www.w3.org/2000/svg",
42900    viewBox: "-2 -2 24 24"
42901  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42902    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"
42903  }));
42904  /* harmony default export */ var table_row_after = (tableRowAfter);
42905  
42906  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js
42907  
42908  
42909  /**
42910   * WordPress dependencies
42911   */
42912  
42913  const tableRowDelete = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42914    xmlns: "http://www.w3.org/2000/svg",
42915    viewBox: "-2 -2 24 24"
42916  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42917    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"
42918  }));
42919  /* harmony default export */ var table_row_delete = (tableRowDelete);
42920  
42921  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-before.js
42922  
42923  
42924  /**
42925   * WordPress dependencies
42926   */
42927  
42928  const tableColumnBefore = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42929    xmlns: "http://www.w3.org/2000/svg",
42930    viewBox: "-2 -2 24 24"
42931  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42932    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"
42933  }));
42934  /* harmony default export */ var table_column_before = (tableColumnBefore);
42935  
42936  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-after.js
42937  
42938  
42939  /**
42940   * WordPress dependencies
42941   */
42942  
42943  const tableColumnAfter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42944    xmlns: "http://www.w3.org/2000/svg",
42945    viewBox: "-2 -2 24 24"
42946  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42947    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"
42948  }));
42949  /* harmony default export */ var table_column_after = (tableColumnAfter);
42950  
42951  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js
42952  
42953  
42954  /**
42955   * WordPress dependencies
42956   */
42957  
42958  const tableColumnDelete = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42959    xmlns: "http://www.w3.org/2000/svg",
42960    viewBox: "-2 -2 24 24"
42961  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42962    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"
42963  }));
42964  /* harmony default export */ var table_column_delete = (tableColumnDelete);
42965  
42966  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table.js
42967  
42968  
42969  /**
42970   * WordPress dependencies
42971   */
42972  
42973  const table = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
42974    xmlns: "http://www.w3.org/2000/svg",
42975    viewBox: "0 0 24 24"
42976  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
42977    d: "M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z"
42978  }));
42979  /* harmony default export */ var library_table = (table);
42980  
42981  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/state.js
42982  /**
42983   * External dependencies
42984   */
42985  
42986  const INHERITED_COLUMN_ATTRIBUTES = ['align'];
42987  /**
42988   * Creates a table state.
42989   *
42990   * @param {Object} options
42991   * @param {number} options.rowCount    Row count for the table to create.
42992   * @param {number} options.columnCount Column count for the table to create.
42993   *
42994   * @return {Object} New table state.
42995   */
42996  
42997  function createTable(_ref) {
42998    let {
42999      rowCount,
43000      columnCount
43001    } = _ref;
43002    return {
43003      body: (0,external_lodash_namespaceObject.times)(rowCount, () => ({
43004        cells: (0,external_lodash_namespaceObject.times)(columnCount, () => ({
43005          content: '',
43006          tag: 'td'
43007        }))
43008      }))
43009    };
43010  }
43011  /**
43012   * Returns the first row in the table.
43013   *
43014   * @param {Object} state Current table state.
43015   *
43016   * @return {Object} The first table row.
43017   */
43018  
43019  function getFirstRow(state) {
43020    if (!isEmptyTableSection(state.head)) {
43021      return state.head[0];
43022    }
43023  
43024    if (!isEmptyTableSection(state.body)) {
43025      return state.body[0];
43026    }
43027  
43028    if (!isEmptyTableSection(state.foot)) {
43029      return state.foot[0];
43030    }
43031  }
43032  /**
43033   * Gets an attribute for a cell.
43034   *
43035   * @param {Object} state         Current table state.
43036   * @param {Object} cellLocation  The location of the cell
43037   * @param {string} attributeName The name of the attribute to get the value of.
43038   *
43039   * @return {*} The attribute value.
43040   */
43041  
43042  function getCellAttribute(state, cellLocation, attributeName) {
43043    const {
43044      sectionName,
43045      rowIndex,
43046      columnIndex
43047    } = cellLocation;
43048    return (0,external_lodash_namespaceObject.get)(state, [sectionName, rowIndex, 'cells', columnIndex, attributeName]);
43049  }
43050  /**
43051   * Returns updated cell attributes after applying the `updateCell` function to the selection.
43052   *
43053   * @param {Object}   state      The block attributes.
43054   * @param {Object}   selection  The selection of cells to update.
43055   * @param {Function} updateCell A function to update the selected cell attributes.
43056   *
43057   * @return {Object} New table state including the updated cells.
43058   */
43059  
43060  function updateSelectedCell(state, selection, updateCell) {
43061    if (!selection) {
43062      return state;
43063    }
43064  
43065    const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']);
43066    const {
43067      sectionName: selectionSectionName,
43068      rowIndex: selectionRowIndex
43069    } = selection;
43070    return (0,external_lodash_namespaceObject.mapValues)(tableSections, (section, sectionName) => {
43071      if (selectionSectionName && selectionSectionName !== sectionName) {
43072        return section;
43073      }
43074  
43075      return section.map((row, rowIndex) => {
43076        if (selectionRowIndex && selectionRowIndex !== rowIndex) {
43077          return row;
43078        }
43079  
43080        return {
43081          cells: row.cells.map((cellAttributes, columnIndex) => {
43082            const cellLocation = {
43083              sectionName,
43084              columnIndex,
43085              rowIndex
43086            };
43087  
43088            if (!isCellSelected(cellLocation, selection)) {
43089              return cellAttributes;
43090            }
43091  
43092            return updateCell(cellAttributes);
43093          })
43094        };
43095      });
43096    });
43097  }
43098  /**
43099   * Returns whether the cell at `cellLocation` is included in the selection `selection`.
43100   *
43101   * @param {Object} cellLocation An object containing cell location properties.
43102   * @param {Object} selection    An object containing selection properties.
43103   *
43104   * @return {boolean} True if the cell is selected, false otherwise.
43105   */
43106  
43107  function isCellSelected(cellLocation, selection) {
43108    if (!cellLocation || !selection) {
43109      return false;
43110    }
43111  
43112    switch (selection.type) {
43113      case 'column':
43114        return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex;
43115  
43116      case 'cell':
43117        return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex;
43118    }
43119  }
43120  /**
43121   * Inserts a row in the table state.
43122   *
43123   * @param {Object} state               Current table state.
43124   * @param {Object} options
43125   * @param {string} options.sectionName Section in which to insert the row.
43126   * @param {number} options.rowIndex    Row index at which to insert the row.
43127   * @param {number} options.columnCount Column count for the table to create.
43128   *
43129   * @return {Object} New table state.
43130   */
43131  
43132  function insertRow(state, _ref2) {
43133    let {
43134      sectionName,
43135      rowIndex,
43136      columnCount
43137    } = _ref2;
43138    const firstRow = getFirstRow(state);
43139    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.
43140  
43141    if (!cellCount) {
43142      return state;
43143    }
43144  
43145    return {
43146      [sectionName]: [...state[sectionName].slice(0, rowIndex), {
43147        cells: (0,external_lodash_namespaceObject.times)(cellCount, index => {
43148          const firstCellInColumn = (0,external_lodash_namespaceObject.get)(firstRow, ['cells', index], {});
43149          const inheritedAttributes = (0,external_lodash_namespaceObject.pick)(firstCellInColumn, INHERITED_COLUMN_ATTRIBUTES);
43150          return { ...inheritedAttributes,
43151            content: '',
43152            tag: sectionName === 'head' ? 'th' : 'td'
43153          };
43154        })
43155      }, ...state[sectionName].slice(rowIndex)]
43156    };
43157  }
43158  /**
43159   * Deletes a row from the table state.
43160   *
43161   * @param {Object} state               Current table state.
43162   * @param {Object} options
43163   * @param {string} options.sectionName Section in which to delete the row.
43164   * @param {number} options.rowIndex    Row index to delete.
43165   *
43166   * @return {Object} New table state.
43167   */
43168  
43169  function deleteRow(state, _ref3) {
43170    let {
43171      sectionName,
43172      rowIndex
43173    } = _ref3;
43174    return {
43175      [sectionName]: state[sectionName].filter((row, index) => index !== rowIndex)
43176    };
43177  }
43178  /**
43179   * Inserts a column in the table state.
43180   *
43181   * @param {Object} state               Current table state.
43182   * @param {Object} options
43183   * @param {number} options.columnIndex Column index at which to insert the column.
43184   *
43185   * @return {Object} New table state.
43186   */
43187  
43188  function insertColumn(state, _ref4) {
43189    let {
43190      columnIndex
43191    } = _ref4;
43192    const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']);
43193    return (0,external_lodash_namespaceObject.mapValues)(tableSections, (section, sectionName) => {
43194      // Bail early if the table section is empty.
43195      if (isEmptyTableSection(section)) {
43196        return section;
43197      }
43198  
43199      return section.map(row => {
43200        // Bail early if the row is empty or it's an attempt to insert past
43201        // the last possible index of the array.
43202        if (isEmptyRow(row) || row.cells.length < columnIndex) {
43203          return row;
43204        }
43205  
43206        return {
43207          cells: [...row.cells.slice(0, columnIndex), {
43208            content: '',
43209            tag: sectionName === 'head' ? 'th' : 'td'
43210          }, ...row.cells.slice(columnIndex)]
43211        };
43212      });
43213    });
43214  }
43215  /**
43216   * Deletes a column from the table state.
43217   *
43218   * @param {Object} state               Current table state.
43219   * @param {Object} options
43220   * @param {number} options.columnIndex Column index to delete.
43221   *
43222   * @return {Object} New table state.
43223   */
43224  
43225  function deleteColumn(state, _ref5) {
43226    let {
43227      columnIndex
43228    } = _ref5;
43229    const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']);
43230    return (0,external_lodash_namespaceObject.mapValues)(tableSections, section => {
43231      // Bail early if the table section is empty.
43232      if (isEmptyTableSection(section)) {
43233        return section;
43234      }
43235  
43236      return section.map(row => ({
43237        cells: row.cells.length >= columnIndex ? row.cells.filter((cell, index) => index !== columnIndex) : row.cells
43238      })).filter(row => row.cells.length);
43239    });
43240  }
43241  /**
43242   * Toggles the existance of a section.
43243   *
43244   * @param {Object} state       Current table state.
43245   * @param {string} sectionName Name of the section to toggle.
43246   *
43247   * @return {Object} New table state.
43248   */
43249  
43250  function toggleSection(state, sectionName) {
43251    // Section exists, replace it with an empty row to remove it.
43252    if (!isEmptyTableSection(state[sectionName])) {
43253      return {
43254        [sectionName]: []
43255      };
43256    } // Get the length of the first row of the body to use when creating the header.
43257  
43258  
43259    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.
43260  
43261    return insertRow(state, {
43262      sectionName,
43263      rowIndex: 0,
43264      columnCount
43265    });
43266  }
43267  /**
43268   * Determines whether a table section is empty.
43269   *
43270   * @param {Object} section Table section state.
43271   *
43272   * @return {boolean} True if the table section is empty, false otherwise.
43273   */
43274  
43275  function isEmptyTableSection(section) {
43276    return !section || !section.length || (0,external_lodash_namespaceObject.every)(section, isEmptyRow);
43277  }
43278  /**
43279   * Determines whether a table row is empty.
43280   *
43281   * @param {Object} row Table row state.
43282   *
43283   * @return {boolean} True if the table section is empty, false otherwise.
43284   */
43285  
43286  function isEmptyRow(row) {
43287    return !(row.cells && row.cells.length);
43288  }
43289  
43290  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/edit.js
43291  
43292  
43293  /**
43294   * External dependencies
43295   */
43296  
43297  /**
43298   * WordPress dependencies
43299   */
43300  
43301  
43302  
43303  
43304  
43305  
43306  
43307  /**
43308   * Internal dependencies
43309   */
43310  
43311  
43312  const ALIGNMENT_CONTROLS = [{
43313    icon: align_left,
43314    title: (0,external_wp_i18n_namespaceObject.__)('Align column left'),
43315    align: 'left'
43316  }, {
43317    icon: align_center,
43318    title: (0,external_wp_i18n_namespaceObject.__)('Align column center'),
43319    align: 'center'
43320  }, {
43321    icon: align_right,
43322    title: (0,external_wp_i18n_namespaceObject.__)('Align column right'),
43323    align: 'right'
43324  }];
43325  const cellAriaLabel = {
43326    head: (0,external_wp_i18n_namespaceObject.__)('Header cell text'),
43327    body: (0,external_wp_i18n_namespaceObject.__)('Body cell text'),
43328    foot: (0,external_wp_i18n_namespaceObject.__)('Footer cell text')
43329  };
43330  const placeholder = {
43331    head: (0,external_wp_i18n_namespaceObject.__)('Header label'),
43332    foot: (0,external_wp_i18n_namespaceObject.__)('Footer label')
43333  };
43334  
43335  function TSection(_ref) {
43336    let {
43337      name,
43338      ...props
43339    } = _ref;
43340    const TagName = `t$name}`;
43341    return (0,external_wp_element_namespaceObject.createElement)(TagName, props);
43342  }
43343  
43344  function TableEdit(_ref2) {
43345    let {
43346      attributes,
43347      setAttributes,
43348      insertBlocksAfter,
43349      isSelected
43350    } = _ref2;
43351    const {
43352      hasFixedLayout,
43353      caption,
43354      head,
43355      foot
43356    } = attributes;
43357    const [initialRowCount, setInitialRowCount] = (0,external_wp_element_namespaceObject.useState)(2);
43358    const [initialColumnCount, setInitialColumnCount] = (0,external_wp_element_namespaceObject.useState)(2);
43359    const [selectedCell, setSelectedCell] = (0,external_wp_element_namespaceObject.useState)();
43360    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
43361    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
43362    /**
43363     * Updates the initial column count used for table creation.
43364     *
43365     * @param {number} count New initial column count.
43366     */
43367  
43368    function onChangeInitialColumnCount(count) {
43369      setInitialColumnCount(count);
43370    }
43371    /**
43372     * Updates the initial row count used for table creation.
43373     *
43374     * @param {number} count New initial row count.
43375     */
43376  
43377  
43378    function onChangeInitialRowCount(count) {
43379      setInitialRowCount(count);
43380    }
43381    /**
43382     * Creates a table based on dimensions in local state.
43383     *
43384     * @param {Object} event Form submit event.
43385     */
43386  
43387  
43388    function onCreateTable(event) {
43389      event.preventDefault();
43390      setAttributes(createTable({
43391        rowCount: parseInt(initialRowCount, 10) || 2,
43392        columnCount: parseInt(initialColumnCount, 10) || 2
43393      }));
43394    }
43395    /**
43396     * Toggles whether the table has a fixed layout or not.
43397     */
43398  
43399  
43400    function onChangeFixedLayout() {
43401      setAttributes({
43402        hasFixedLayout: !hasFixedLayout
43403      });
43404    }
43405    /**
43406     * Changes the content of the currently selected cell.
43407     *
43408     * @param {Array} content A RichText content value.
43409     */
43410  
43411  
43412    function onChange(content) {
43413      if (!selectedCell) {
43414        return;
43415      }
43416  
43417      setAttributes(updateSelectedCell(attributes, selectedCell, cellAttributes => ({ ...cellAttributes,
43418        content
43419      })));
43420    }
43421    /**
43422     * Align text within the a column.
43423     *
43424     * @param {string} align The new alignment to apply to the column.
43425     */
43426  
43427  
43428    function onChangeColumnAlignment(align) {
43429      if (!selectedCell) {
43430        return;
43431      } // Convert the cell selection to a column selection so that alignment
43432      // is applied to the entire column.
43433  
43434  
43435      const columnSelection = {
43436        type: 'column',
43437        columnIndex: selectedCell.columnIndex
43438      };
43439      const newAttributes = updateSelectedCell(attributes, columnSelection, cellAttributes => ({ ...cellAttributes,
43440        align
43441      }));
43442      setAttributes(newAttributes);
43443    }
43444    /**
43445     * Get the alignment of the currently selected cell.
43446     *
43447     * @return {string} The new alignment to apply to the column.
43448     */
43449  
43450  
43451    function getCellAlignment() {
43452      if (!selectedCell) {
43453        return;
43454      }
43455  
43456      return getCellAttribute(attributes, selectedCell, 'align');
43457    }
43458    /**
43459     * Add or remove a `head` table section.
43460     */
43461  
43462  
43463    function onToggleHeaderSection() {
43464      setAttributes(toggleSection(attributes, 'head'));
43465    }
43466    /**
43467     * Add or remove a `foot` table section.
43468     */
43469  
43470  
43471    function onToggleFooterSection() {
43472      setAttributes(toggleSection(attributes, 'foot'));
43473    }
43474    /**
43475     * Inserts a row at the currently selected row index, plus `delta`.
43476     *
43477     * @param {number} delta Offset for selected row index at which to insert.
43478     */
43479  
43480  
43481    function onInsertRow(delta) {
43482      if (!selectedCell) {
43483        return;
43484      }
43485  
43486      const {
43487        sectionName,
43488        rowIndex
43489      } = selectedCell;
43490      const newRowIndex = rowIndex + delta;
43491      setAttributes(insertRow(attributes, {
43492        sectionName,
43493        rowIndex: newRowIndex
43494      })); // Select the first cell of the new row.
43495  
43496      setSelectedCell({
43497        sectionName,
43498        rowIndex: newRowIndex,
43499        columnIndex: 0,
43500        type: 'cell'
43501      });
43502    }
43503    /**
43504     * Inserts a row before the currently selected row.
43505     */
43506  
43507  
43508    function onInsertRowBefore() {
43509      onInsertRow(0);
43510    }
43511    /**
43512     * Inserts a row after the currently selected row.
43513     */
43514  
43515  
43516    function onInsertRowAfter() {
43517      onInsertRow(1);
43518    }
43519    /**
43520     * Deletes the currently selected row.
43521     */
43522  
43523  
43524    function onDeleteRow() {
43525      if (!selectedCell) {
43526        return;
43527      }
43528  
43529      const {
43530        sectionName,
43531        rowIndex
43532      } = selectedCell;
43533      setSelectedCell();
43534      setAttributes(deleteRow(attributes, {
43535        sectionName,
43536        rowIndex
43537      }));
43538    }
43539    /**
43540     * Inserts a column at the currently selected column index, plus `delta`.
43541     *
43542     * @param {number} delta Offset for selected column index at which to insert.
43543     */
43544  
43545  
43546    function onInsertColumn() {
43547      let delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
43548  
43549      if (!selectedCell) {
43550        return;
43551      }
43552  
43553      const {
43554        columnIndex
43555      } = selectedCell;
43556      const newColumnIndex = columnIndex + delta;
43557      setAttributes(insertColumn(attributes, {
43558        columnIndex: newColumnIndex
43559      })); // Select the first cell of the new column.
43560  
43561      setSelectedCell({
43562        rowIndex: 0,
43563        columnIndex: newColumnIndex,
43564        type: 'cell'
43565      });
43566    }
43567    /**
43568     * Inserts a column before the currently selected column.
43569     */
43570  
43571  
43572    function onInsertColumnBefore() {
43573      onInsertColumn(0);
43574    }
43575    /**
43576     * Inserts a column after the currently selected column.
43577     */
43578  
43579  
43580    function onInsertColumnAfter() {
43581      onInsertColumn(1);
43582    }
43583    /**
43584     * Deletes the currently selected column.
43585     */
43586  
43587  
43588    function onDeleteColumn() {
43589      if (!selectedCell) {
43590        return;
43591      }
43592  
43593      const {
43594        sectionName,
43595        columnIndex
43596      } = selectedCell;
43597      setSelectedCell();
43598      setAttributes(deleteColumn(attributes, {
43599        sectionName,
43600        columnIndex
43601      }));
43602    }
43603  
43604    (0,external_wp_element_namespaceObject.useEffect)(() => {
43605      if (!isSelected) {
43606        setSelectedCell();
43607      }
43608    }, [isSelected]);
43609    const sections = ['head', 'body', 'foot'].filter(name => !isEmptyTableSection(attributes[name]));
43610    const tableControls = [{
43611      icon: table_row_before,
43612      title: (0,external_wp_i18n_namespaceObject.__)('Insert row before'),
43613      isDisabled: !selectedCell,
43614      onClick: onInsertRowBefore
43615    }, {
43616      icon: table_row_after,
43617      title: (0,external_wp_i18n_namespaceObject.__)('Insert row after'),
43618      isDisabled: !selectedCell,
43619      onClick: onInsertRowAfter
43620    }, {
43621      icon: table_row_delete,
43622      title: (0,external_wp_i18n_namespaceObject.__)('Delete row'),
43623      isDisabled: !selectedCell,
43624      onClick: onDeleteRow
43625    }, {
43626      icon: table_column_before,
43627      title: (0,external_wp_i18n_namespaceObject.__)('Insert column before'),
43628      isDisabled: !selectedCell,
43629      onClick: onInsertColumnBefore
43630    }, {
43631      icon: table_column_after,
43632      title: (0,external_wp_i18n_namespaceObject.__)('Insert column after'),
43633      isDisabled: !selectedCell,
43634      onClick: onInsertColumnAfter
43635    }, {
43636      icon: table_column_delete,
43637      title: (0,external_wp_i18n_namespaceObject.__)('Delete column'),
43638      isDisabled: !selectedCell,
43639      onClick: onDeleteColumn
43640    }];
43641    const renderedSections = ['head', 'body', 'foot'].map(name => (0,external_wp_element_namespaceObject.createElement)(TSection, {
43642      name: name,
43643      key: name
43644    }, attributes[name].map((_ref3, rowIndex) => {
43645      let {
43646        cells
43647      } = _ref3;
43648      return (0,external_wp_element_namespaceObject.createElement)("tr", {
43649        key: rowIndex
43650      }, cells.map((_ref4, columnIndex) => {
43651        let {
43652          content,
43653          tag: CellTag,
43654          scope,
43655          align
43656        } = _ref4;
43657        return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
43658          tagName: CellTag,
43659          key: columnIndex,
43660          className: classnames_default()({
43661            [`has-text-align-$align}`]: align
43662          }, 'wp-block-table__cell-content'),
43663          scope: CellTag === 'th' ? scope : undefined,
43664          value: content,
43665          onChange: onChange,
43666          unstableOnFocus: () => {
43667            setSelectedCell({
43668              sectionName: name,
43669              rowIndex,
43670              columnIndex,
43671              type: 'cell'
43672            });
43673          },
43674          "aria-label": cellAriaLabel[name],
43675          placeholder: placeholder[name]
43676        });
43677      }));
43678    })));
43679    const isEmpty = !sections.length;
43680    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, {
43681      group: "block"
43682    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
43683      label: (0,external_wp_i18n_namespaceObject.__)('Change column alignment'),
43684      alignmentControls: ALIGNMENT_CONTROLS,
43685      value: getCellAlignment(),
43686      onChange: nextAlign => onChangeColumnAlignment(nextAlign)
43687    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
43688      group: "other"
43689    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
43690      hasArrowIndicator: true,
43691      icon: library_table,
43692      label: (0,external_wp_i18n_namespaceObject.__)('Edit table'),
43693      controls: tableControls
43694    }))), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
43695      title: (0,external_wp_i18n_namespaceObject.__)('Table settings'),
43696      className: "blocks-table-settings"
43697    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
43698      label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
43699      checked: !!hasFixedLayout,
43700      onChange: onChangeFixedLayout
43701    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
43702      label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
43703      checked: !!(head && head.length),
43704      onChange: onToggleHeaderSection
43705    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
43706      label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
43707      checked: !!(foot && foot.length),
43708      onChange: onToggleFooterSection
43709    }))), !isEmpty && (0,external_wp_element_namespaceObject.createElement)("table", {
43710      className: classnames_default()(colorProps.className, borderProps.className, {
43711        'has-fixed-layout': hasFixedLayout
43712      }),
43713      style: { ...colorProps.style,
43714        ...borderProps.style
43715      }
43716    }, renderedSections), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
43717      tagName: "figcaption",
43718      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Table caption text'),
43719      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
43720      value: caption,
43721      onChange: value => setAttributes({
43722        caption: value
43723      }) // Deselect the selected table cell when the caption is focused.
43724      ,
43725      unstableOnFocus: () => setSelectedCell(),
43726      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
43727    }), isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
43728      label: (0,external_wp_i18n_namespaceObject.__)('Table'),
43729      icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
43730        icon: block_table,
43731        showColors: true
43732      }),
43733      instructions: (0,external_wp_i18n_namespaceObject.__)('Insert a table for sharing data.')
43734    }, (0,external_wp_element_namespaceObject.createElement)("form", {
43735      className: "blocks-table__placeholder-form",
43736      onSubmit: onCreateTable
43737    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
43738      type: "number",
43739      label: (0,external_wp_i18n_namespaceObject.__)('Column count'),
43740      value: initialColumnCount,
43741      onChange: onChangeInitialColumnCount,
43742      min: "1",
43743      className: "blocks-table__placeholder-input"
43744    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
43745      type: "number",
43746      label: (0,external_wp_i18n_namespaceObject.__)('Row count'),
43747      value: initialRowCount,
43748      onChange: onChangeInitialRowCount,
43749      min: "1",
43750      className: "blocks-table__placeholder-input"
43751    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
43752      className: "blocks-table__placeholder-button",
43753      variant: "primary",
43754      type: "submit"
43755    }, (0,external_wp_i18n_namespaceObject.__)('Create Table')))));
43756  }
43757  
43758  /* harmony default export */ var table_edit = (TableEdit);
43759  
43760  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/save.js
43761  
43762  
43763  /**
43764   * External dependencies
43765   */
43766  
43767  /**
43768   * WordPress dependencies
43769   */
43770  
43771  
43772  function table_save_save(_ref) {
43773    let {
43774      attributes
43775    } = _ref;
43776    const {
43777      hasFixedLayout,
43778      head,
43779      body,
43780      foot,
43781      caption
43782    } = attributes;
43783    const isEmpty = !head.length && !body.length && !foot.length;
43784  
43785    if (isEmpty) {
43786      return null;
43787    }
43788  
43789    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
43790    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
43791    const classes = classnames_default()(colorProps.className, borderProps.className, {
43792      'has-fixed-layout': hasFixedLayout
43793    });
43794    const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
43795  
43796    const Section = _ref2 => {
43797      let {
43798        type,
43799        rows
43800      } = _ref2;
43801  
43802      if (!rows.length) {
43803        return null;
43804      }
43805  
43806      const Tag = `t$type}`;
43807      return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref3, rowIndex) => {
43808        let {
43809          cells
43810        } = _ref3;
43811        return (0,external_wp_element_namespaceObject.createElement)("tr", {
43812          key: rowIndex
43813        }, cells.map((_ref4, cellIndex) => {
43814          let {
43815            content,
43816            tag,
43817            scope,
43818            align
43819          } = _ref4;
43820          const cellClasses = classnames_default()({
43821            [`has-text-align-$align}`]: align
43822          });
43823          return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
43824            className: cellClasses ? cellClasses : undefined,
43825            "data-align": align,
43826            tagName: tag,
43827            value: content,
43828            key: cellIndex,
43829            scope: tag === 'th' ? scope : undefined
43830          });
43831        }));
43832      }));
43833    };
43834  
43835    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("table", {
43836      className: classes === '' ? undefined : classes,
43837      style: { ...colorProps.style,
43838        ...borderProps.style
43839      }
43840    }, (0,external_wp_element_namespaceObject.createElement)(Section, {
43841      type: "head",
43842      rows: head
43843    }), (0,external_wp_element_namespaceObject.createElement)(Section, {
43844      type: "body",
43845      rows: body
43846    }), (0,external_wp_element_namespaceObject.createElement)(Section, {
43847      type: "foot",
43848      rows: foot
43849    })), hasCaption && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
43850      tagName: "figcaption",
43851      value: caption
43852    }));
43853  }
43854  
43855  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/transforms.js
43856  const tableContentPasteSchema = _ref => {
43857    let {
43858      phrasingContentSchema
43859    } = _ref;
43860    return {
43861      tr: {
43862        allowEmpty: true,
43863        children: {
43864          th: {
43865            allowEmpty: true,
43866            children: phrasingContentSchema,
43867            attributes: ['scope']
43868          },
43869          td: {
43870            allowEmpty: true,
43871            children: phrasingContentSchema
43872          }
43873        }
43874      }
43875    };
43876  };
43877  
43878  const tablePasteSchema = args => ({
43879    table: {
43880      children: {
43881        thead: {
43882          allowEmpty: true,
43883          children: tableContentPasteSchema(args)
43884        },
43885        tfoot: {
43886          allowEmpty: true,
43887          children: tableContentPasteSchema(args)
43888        },
43889        tbody: {
43890          allowEmpty: true,
43891          children: tableContentPasteSchema(args)
43892        }
43893      }
43894    }
43895  });
43896  
43897  const table_transforms_transforms = {
43898    from: [{
43899      type: 'raw',
43900      selector: 'table',
43901      schema: tablePasteSchema
43902    }]
43903  };
43904  /* harmony default export */ var table_transforms = (table_transforms_transforms);
43905  
43906  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/index.js
43907  /**
43908   * WordPress dependencies
43909   */
43910  
43911  
43912  /**
43913   * Internal dependencies
43914   */
43915  
43916  
43917  
43918  const table_metadata = {
43919    $schema: "https://schemas.wp.org/trunk/block.json",
43920    apiVersion: 2,
43921    name: "core/table",
43922    title: "Table",
43923    category: "text",
43924    description: "Create structured content in rows and columns to display information.",
43925    textdomain: "default",
43926    attributes: {
43927      hasFixedLayout: {
43928        type: "boolean",
43929        "default": false
43930      },
43931      caption: {
43932        type: "string",
43933        source: "html",
43934        selector: "figcaption",
43935        "default": ""
43936      },
43937      head: {
43938        type: "array",
43939        "default": [],
43940        source: "query",
43941        selector: "thead tr",
43942        query: {
43943          cells: {
43944            type: "array",
43945            "default": [],
43946            source: "query",
43947            selector: "td,th",
43948            query: {
43949              content: {
43950                type: "string",
43951                source: "html"
43952              },
43953              tag: {
43954                type: "string",
43955                "default": "td",
43956                source: "tag"
43957              },
43958              scope: {
43959                type: "string",
43960                source: "attribute",
43961                attribute: "scope"
43962              },
43963              align: {
43964                type: "string",
43965                source: "attribute",
43966                attribute: "data-align"
43967              }
43968            }
43969          }
43970        }
43971      },
43972      body: {
43973        type: "array",
43974        "default": [],
43975        source: "query",
43976        selector: "tbody tr",
43977        query: {
43978          cells: {
43979            type: "array",
43980            "default": [],
43981            source: "query",
43982            selector: "td,th",
43983            query: {
43984              content: {
43985                type: "string",
43986                source: "html"
43987              },
43988              tag: {
43989                type: "string",
43990                "default": "td",
43991                source: "tag"
43992              },
43993              scope: {
43994                type: "string",
43995                source: "attribute",
43996                attribute: "scope"
43997              },
43998              align: {
43999                type: "string",
44000                source: "attribute",
44001                attribute: "data-align"
44002              }
44003            }
44004          }
44005        }
44006      },
44007      foot: {
44008        type: "array",
44009        "default": [],
44010        source: "query",
44011        selector: "tfoot tr",
44012        query: {
44013          cells: {
44014            type: "array",
44015            "default": [],
44016            source: "query",
44017            selector: "td,th",
44018            query: {
44019              content: {
44020                type: "string",
44021                source: "html"
44022              },
44023              tag: {
44024                type: "string",
44025                "default": "td",
44026                source: "tag"
44027              },
44028              scope: {
44029                type: "string",
44030                source: "attribute",
44031                attribute: "scope"
44032              },
44033              align: {
44034                type: "string",
44035                source: "attribute",
44036                attribute: "data-align"
44037              }
44038            }
44039          }
44040        }
44041      }
44042    },
44043    supports: {
44044      anchor: true,
44045      align: true,
44046      color: {
44047        __experimentalSkipSerialization: true,
44048        gradients: true,
44049        __experimentalDefaultControls: {
44050          background: true,
44051          text: true
44052        }
44053      },
44054      typography: {
44055        fontSize: true,
44056        lineHeight: true,
44057        __experimentalFontStyle: true,
44058        __experimentalFontWeight: true,
44059        __experimentalLetterSpacing: true,
44060        __experimentalTextTransform: true,
44061        __experimentalDefaultControls: {
44062          fontSize: true
44063        }
44064      },
44065      __experimentalBorder: {
44066        __experimentalSkipSerialization: true,
44067        color: true,
44068        style: true,
44069        width: true,
44070        __experimentalDefaultControls: {
44071          color: true,
44072          style: true,
44073          width: true
44074        }
44075      },
44076      __experimentalSelector: ".wp-block-table > table"
44077    },
44078    styles: [{
44079      name: "regular",
44080      label: "Default",
44081      isDefault: true
44082    }, {
44083      name: "stripes",
44084      label: "Stripes"
44085    }],
44086    editorStyle: "wp-block-table-editor",
44087    style: "wp-block-table"
44088  };
44089  
44090  
44091  const {
44092    name: table_name
44093  } = table_metadata;
44094  
44095  const table_settings = {
44096    icon: block_table,
44097    example: {
44098      attributes: {
44099        head: [{
44100          cells: [{
44101            content: (0,external_wp_i18n_namespaceObject.__)('Version'),
44102            tag: 'th'
44103          }, {
44104            content: (0,external_wp_i18n_namespaceObject.__)('Jazz Musician'),
44105            tag: 'th'
44106          }, {
44107            content: (0,external_wp_i18n_namespaceObject.__)('Release Date'),
44108            tag: 'th'
44109          }]
44110        }],
44111        body: [{
44112          cells: [{
44113            content: '5.2',
44114            tag: 'td'
44115          }, {
44116            content: 'Jaco Pastorius',
44117            tag: 'td'
44118          }, {
44119            content: (0,external_wp_i18n_namespaceObject.__)('May 7, 2019'),
44120            tag: 'td'
44121          }]
44122        }, {
44123          cells: [{
44124            content: '5.1',
44125            tag: 'td'
44126          }, {
44127            content: 'Betty Carter',
44128            tag: 'td'
44129          }, {
44130            content: (0,external_wp_i18n_namespaceObject.__)('February 21, 2019'),
44131            tag: 'td'
44132          }]
44133        }, {
44134          cells: [{
44135            content: '5.0',
44136            tag: 'td'
44137          }, {
44138            content: 'Bebo Valdés',
44139            tag: 'td'
44140          }, {
44141            content: (0,external_wp_i18n_namespaceObject.__)('December 6, 2018'),
44142            tag: 'td'
44143          }]
44144        }]
44145      }
44146    },
44147    transforms: table_transforms,
44148    edit: table_edit,
44149    save: table_save_save,
44150    deprecated: table_deprecated
44151  };
44152  
44153  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/transforms.js
44154  /**
44155   * WordPress dependencies
44156   */
44157  
44158  const tag_cloud_transforms_transforms = {
44159    from: [{
44160      type: 'block',
44161      blocks: ['core/categories'],
44162      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/tag-cloud')
44163    }],
44164    to: [{
44165      type: 'block',
44166      blocks: ['core/categories'],
44167      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/categories')
44168    }]
44169  };
44170  /* harmony default export */ var tag_cloud_transforms = (tag_cloud_transforms_transforms);
44171  
44172  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js
44173  
44174  
44175  /**
44176   * External dependencies
44177   */
44178  
44179  /**
44180   * WordPress dependencies
44181   */
44182  
44183  
44184  
44185  
44186  
44187  
44188  
44189  /**
44190   * Minimum number of tags a user can show using this block.
44191   *
44192   * @type {number}
44193   */
44194  
44195  const MIN_TAGS = 1;
44196  /**
44197   * Maximum number of tags a user can show using this block.
44198   *
44199   * @type {number}
44200   */
44201  
44202  const MAX_TAGS = 100;
44203  const MIN_FONT_SIZE = 0.1;
44204  const MAX_FONT_SIZE = 100;
44205  
44206  function TagCloudEdit(_ref) {
44207    let {
44208      attributes,
44209      setAttributes,
44210      taxonomies
44211    } = _ref;
44212    const {
44213      taxonomy,
44214      showTagCounts,
44215      numberOfTags,
44216      smallestFontSize,
44217      largestFontSize
44218    } = attributes;
44219    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
44220      availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['%', 'px', 'em', 'rem']
44221    });
44222  
44223    const getTaxonomyOptions = () => {
44224      const selectOption = {
44225        label: (0,external_wp_i18n_namespaceObject.__)('- Select -'),
44226        value: '',
44227        disabled: true
44228      };
44229      const taxonomyOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(taxonomies, 'show_cloud'), item => {
44230        return {
44231          value: item.slug,
44232          label: item.name
44233        };
44234      });
44235      return [selectOption, ...taxonomyOptions];
44236    };
44237  
44238    const onFontSizeChange = (fontSizeLabel, newValue) => {
44239      // eslint-disable-next-line @wordpress/no-unused-vars-before-return
44240      const [quantity, newUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(newValue);
44241  
44242      if (!Number.isFinite(quantity)) {
44243        return;
44244      }
44245  
44246      const updateObj = {
44247        [fontSizeLabel]: newValue
44248      }; // We need to keep in sync the `unit` changes to both `smallestFontSize`
44249      // and `largestFontSize` attributes.
44250  
44251      Object.entries({
44252        smallestFontSize,
44253        largestFontSize
44254      }).forEach(_ref2 => {
44255        let [attribute, currentValue] = _ref2;
44256        const [currentQuantity, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue); // Only add an update if the other font size attribute has a different unit.
44257  
44258        if (attribute !== fontSizeLabel && currentUnit !== newUnit) {
44259          updateObj[attribute] = `$currentQuantity}$newUnit}`;
44260        }
44261      });
44262      setAttributes(updateObj);
44263    };
44264  
44265    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, {
44266      title: (0,external_wp_i18n_namespaceObject.__)('Tag Cloud settings')
44267    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
44268      label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
44269      options: getTaxonomyOptions(),
44270      value: taxonomy,
44271      onChange: selectedTaxonomy => setAttributes({
44272        taxonomy: selectedTaxonomy
44273      })
44274    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
44275      label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
44276      checked: showTagCounts,
44277      onChange: () => setAttributes({
44278        showTagCounts: !showTagCounts
44279      })
44280    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, {
44281      label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
44282      value: numberOfTags,
44283      onChange: value => setAttributes({
44284        numberOfTags: value
44285      }),
44286      min: MIN_TAGS,
44287      max: MAX_TAGS,
44288      required: true
44289    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, {
44290      isBlock: true
44291    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
44292      label: (0,external_wp_i18n_namespaceObject.__)('Smallest size'),
44293      value: smallestFontSize,
44294      onChange: value => {
44295        onFontSizeChange('smallestFontSize', value);
44296      },
44297      units: units,
44298      min: MIN_FONT_SIZE,
44299      max: MAX_FONT_SIZE
44300    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, {
44301      isBlock: true
44302    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, {
44303      label: (0,external_wp_i18n_namespaceObject.__)('Largest size'),
44304      value: largestFontSize,
44305      onChange: value => {
44306        onFontSizeChange('largestFontSize', value);
44307      },
44308      units: units,
44309      min: MIN_FONT_SIZE,
44310      max: MAX_FONT_SIZE
44311    })))));
44312    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()), {
44313      key: "tag-cloud",
44314      block: "core/tag-cloud",
44315      attributes: attributes
44316    })));
44317  }
44318  
44319  /* harmony default export */ var tag_cloud_edit = ((0,external_wp_data_namespaceObject.withSelect)(select => {
44320    return {
44321      taxonomies: select(external_wp_coreData_namespaceObject.store).getTaxonomies({
44322        per_page: -1
44323      })
44324    };
44325  })(TagCloudEdit));
44326  
44327  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
44328  /**
44329   * WordPress dependencies
44330   */
44331  
44332  /**
44333   * Internal dependencies
44334   */
44335  
44336  
44337  const tag_cloud_metadata = {
44338    $schema: "https://schemas.wp.org/trunk/block.json",
44339    apiVersion: 2,
44340    name: "core/tag-cloud",
44341    title: "Tag Cloud",
44342    category: "widgets",
44343    description: "A cloud of your most used tags.",
44344    textdomain: "default",
44345    attributes: {
44346      numberOfTags: {
44347        type: "number",
44348        "default": 45,
44349        minimum: 1,
44350        maximum: 100
44351      },
44352      taxonomy: {
44353        type: "string",
44354        "default": "post_tag"
44355      },
44356      showTagCounts: {
44357        type: "boolean",
44358        "default": false
44359      },
44360      smallestFontSize: {
44361        type: "string",
44362        "default": "8pt"
44363      },
44364      largestFontSize: {
44365        type: "string",
44366        "default": "22pt"
44367      }
44368    },
44369    styles: [{
44370      name: "default",
44371      label: "Default",
44372      isDefault: true
44373    }, {
44374      name: "outline",
44375      label: "Outline"
44376    }],
44377    supports: {
44378      html: false,
44379      align: true
44380    },
44381    editorStyle: "wp-block-tag-cloud-editor"
44382  };
44383  
44384  const {
44385    name: tag_cloud_name
44386  } = tag_cloud_metadata;
44387  
44388  const tag_cloud_settings = {
44389    icon: library_tag,
44390    example: {},
44391    edit: tag_cloud_edit,
44392    transforms: tag_cloud_transforms
44393  };
44394  
44395  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js
44396  
44397  
44398  /**
44399   * WordPress dependencies
44400   */
44401  
44402  const symbolFilled = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
44403    xmlns: "http://www.w3.org/2000/svg",
44404    viewBox: "0 0 24 24"
44405  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
44406    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"
44407  }));
44408  /* harmony default export */ var symbol_filled = (symbolFilled);
44409  
44410  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/hooks.js
44411  /**
44412   * External dependencies
44413   */
44414  
44415  /**
44416   * WordPress dependencies
44417   */
44418  
44419  
44420  
44421  
44422  
44423  
44424  
44425  /**
44426   * Internal dependencies
44427   */
44428  
44429  
44430  /**
44431   * Retrieves the available template parts for the given area.
44432   *
44433   * @param {string} area       Template part area.
44434   * @param {string} excludedId Template part ID to exclude.
44435   *
44436   * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.
44437   */
44438  
44439  function useAlternativeTemplateParts(area, excludedId) {
44440    const {
44441      templateParts,
44442      isResolving
44443    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44444      const {
44445        getEntityRecords,
44446        isResolving: _isResolving
44447      } = select(external_wp_coreData_namespaceObject.store);
44448      const query = {
44449        per_page: -1
44450      };
44451      return {
44452        templateParts: getEntityRecords('postType', 'wp_template_part', query),
44453        isLoading: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
44454      };
44455    }, []);
44456    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
44457      if (!templateParts) {
44458        return [];
44459      }
44460  
44461      return templateParts.filter(templatePart => createTemplatePartId(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || [];
44462    }, [templateParts, area]);
44463    return {
44464      templateParts: filteredTemplateParts,
44465      isResolving
44466    };
44467  }
44468  /**
44469   * Retrieves the available block patterns for the given area.
44470   *
44471   * @param {string} area     Template part area.
44472   * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).
44473   *
44474   * @return {Array} array of block patterns.
44475   */
44476  
44477  function useAlternativeBlockPatterns(area, clientId) {
44478    return (0,external_wp_data_namespaceObject.useSelect)(select => {
44479      const blockNameWithArea = area ? `core/template-part/$area}` : 'core/template-part';
44480      const {
44481        getBlockRootClientId,
44482        __experimentalGetPatternsByBlockTypes
44483      } = select(external_wp_blockEditor_namespaceObject.store);
44484      const rootClientId = getBlockRootClientId(clientId);
44485      return __experimentalGetPatternsByBlockTypes(blockNameWithArea, rootClientId);
44486    }, [area, clientId]);
44487  }
44488  function useCreateTemplatePartFromBlocks(area, setAttributes) {
44489    const {
44490      saveEntityRecord
44491    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
44492    return async function () {
44493      let blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
44494      let title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0,external_wp_i18n_namespaceObject.__)('Untitled Template Part');
44495      // Currently template parts only allow latin chars.
44496      // Fallback slug will receive suffix by default.
44497      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
44498      // block variation was inserted. So add this prop to the template
44499      // part entity on creation. Afterwards remove `area` value from
44500      // block attributes.
44501  
44502      const record = {
44503        title,
44504        slug: cleanSlug,
44505        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
44506        // `area` is filterable on the server and defaults to `UNCATEGORIZED`
44507        // if provided value is not allowed.
44508        area
44509      };
44510      const templatePart = await saveEntityRecord('postType', 'wp_template_part', record);
44511      setAttributes({
44512        slug: templatePart.slug,
44513        theme: templatePart.theme,
44514        area: undefined
44515      });
44516    };
44517  }
44518  /**
44519   * Retrieves the template part area object.
44520   *
44521   * @param {string} area Template part area identifier.
44522   *
44523   * @return {{icon: Object, label: string, tagName: string}} Template Part area.
44524   */
44525  
44526  function useTemplatePartArea(area) {
44527    return (0,external_wp_data_namespaceObject.useSelect)(select => {
44528      var _selectedArea$area_ta;
44529  
44530      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
44531      // Blocks can be loaded into a *non-post* block editor.
44532      // eslint-disable-next-line @wordpress/data-no-store-string-literals
44533      const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();
44534  
44535      const selectedArea = (0,external_lodash_namespaceObject.find)(definedAreas, {
44536        area
44537      });
44538      const defaultArea = (0,external_lodash_namespaceObject.find)(definedAreas, {
44539        area: 'uncategorized'
44540      });
44541      return {
44542        icon: (selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.icon) || (defaultArea === null || defaultArea === void 0 ? void 0 : defaultArea.icon),
44543        label: (selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.label) || (0,external_wp_i18n_namespaceObject.__)('Template Part'),
44544        tagName: (_selectedArea$area_ta = selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.area_tag) !== null && _selectedArea$area_ta !== void 0 ? _selectedArea$area_ta : 'div'
44545      };
44546    }, [area]);
44547  }
44548  
44549  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/title-modal.js
44550  
44551  
44552  /**
44553   * WordPress dependencies
44554   */
44555  
44556  
44557  
44558  function TitleModal(_ref) {
44559    let {
44560      areaLabel,
44561      onClose,
44562      onSubmit
44563    } = _ref;
44564    // Restructure onCreate to set the blocks on local state.
44565    // Add modal to confirm title and trigger onCreate.
44566    const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)((0,external_wp_i18n_namespaceObject.__)('Untitled Template Part'));
44567  
44568    const submitForCreation = event => {
44569      event.preventDefault();
44570      onSubmit(title);
44571    };
44572  
44573    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
44574      title: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
44575      (0,external_wp_i18n_namespaceObject.__)('Name and create your new %s'), areaLabel.toLowerCase()),
44576      closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
44577      overlayClassName: "wp-block-template-part__placeholder-create-new__title-form",
44578      onRequestClose: onClose
44579    }, (0,external_wp_element_namespaceObject.createElement)("form", {
44580      onSubmit: submitForCreation
44581    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
44582      label: (0,external_wp_i18n_namespaceObject.__)('Name'),
44583      value: title,
44584      onChange: setTitle
44585    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, {
44586      className: "wp-block-template-part__placeholder-create-new__title-form-actions",
44587      justify: "flex-end"
44588    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
44589      variant: "primary",
44590      type: "submit",
44591      disabled: !title.length,
44592      "aria-disabled": !title.length
44593    }, (0,external_wp_i18n_namespaceObject.__)('Create'))))));
44594  }
44595  
44596  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/placeholder.js
44597  
44598  
44599  /**
44600   * WordPress dependencies
44601   */
44602  
44603  
44604  
44605  /**
44606   * Internal dependencies
44607   */
44608  
44609  
44610  
44611  function TemplatePartPlaceholder(_ref) {
44612    let {
44613      area,
44614      clientId,
44615      templatePartId,
44616      onOpenSelectionModal,
44617      setAttributes
44618    } = _ref;
44619    const {
44620      templateParts,
44621      isResolving
44622    } = useAlternativeTemplateParts(area, templatePartId);
44623    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
44624    const [showTitleModal, setShowTitleModal] = (0,external_wp_element_namespaceObject.useState)(false);
44625    const areaObject = useTemplatePartArea(area);
44626    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
44627    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, {
44628      icon: areaObject.icon,
44629      label: areaObject.label,
44630      instructions: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
44631      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase())
44632    }, 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, {
44633      variant: "primary",
44634      onClick: onOpenSelectionModal
44635    }, (0,external_wp_i18n_namespaceObject.__)('Choose')), !isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
44636      variant: "secondary",
44637      onClick: () => {
44638        setShowTitleModal(true);
44639      }
44640    }, (0,external_wp_i18n_namespaceObject.__)('Start blank')), showTitleModal && (0,external_wp_element_namespaceObject.createElement)(TitleModal, {
44641      areaLabel: areaObject.label,
44642      onClose: () => setShowTitleModal(false),
44643      onSubmit: title => {
44644        createFromBlocks([], title);
44645      }
44646    }));
44647  }
44648  
44649  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/selection-modal.js
44650  
44651  
44652  /**
44653   * WordPress dependencies
44654   */
44655  
44656  
44657  
44658  
44659  
44660  
44661  
44662  /**
44663   * Internal dependencies
44664   */
44665  
44666  
44667  
44668  function TemplatePartSelectionModal(_ref) {
44669    let {
44670      setAttributes,
44671      onClose,
44672      templatePartId = null,
44673      area,
44674      clientId
44675    } = _ref;
44676    // When the templatePartId is undefined,
44677    // it means the user is creating a new one from the placeholder.
44678    const isReplacingTemplatePartContent = !!templatePartId;
44679    const {
44680      templateParts
44681    } = useAlternativeTemplateParts(area, templatePartId); // We can map template parts to block patters to reuse the BlockPatternsList UI
44682  
44683    const templartPartsAsBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
44684      return templateParts.map(templatePart => ({
44685        name: createTemplatePartId(templatePart.theme, templatePart.slug),
44686        title: templatePart.title.rendered,
44687        blocks: (0,external_wp_blocks_namespaceObject.parse)(templatePart.content.raw),
44688        templatePart
44689      }));
44690    }, [templateParts]);
44691    const shownTemplateParts = (0,external_wp_compose_namespaceObject.useAsyncList)(templartPartsAsBlockPatterns);
44692    const {
44693      createSuccessNotice
44694    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
44695    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
44696    const shownBlockPatterns = (0,external_wp_compose_namespaceObject.useAsyncList)(blockPatterns);
44697    const {
44698      replaceInnerBlocks
44699    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
44700    const onTemplatePartSelect = (0,external_wp_element_namespaceObject.useCallback)(templatePart => {
44701      var _templatePart$title;
44702  
44703      setAttributes({
44704        slug: templatePart.slug,
44705        theme: templatePart.theme,
44706        area: undefined
44707      });
44708      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
44709      /* translators: %s: template part title. */
44710      (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), {
44711        type: 'snackbar'
44712      });
44713      onClose();
44714    }, []);
44715    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
44716    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
44717      className: "block-library-template-part__selection-content"
44718    }, !!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, {
44719      blockPatterns: templartPartsAsBlockPatterns,
44720      shownPatterns: shownTemplateParts,
44721      onClickPattern: pattern => {
44722        onTemplatePartSelect(pattern.templatePart);
44723      }
44724    })), !!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, {
44725      blockPatterns: blockPatterns,
44726      shownPatterns: shownBlockPatterns,
44727      onClickPattern: (pattern, blocks) => {
44728        if (isReplacingTemplatePartContent) {
44729          replaceInnerBlocks(clientId, blocks);
44730        } else {
44731          createFromBlocks(blocks, pattern.title);
44732        }
44733  
44734        onClose();
44735      }
44736    }))));
44737  }
44738  
44739  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/advanced-controls.js
44740  
44741  
44742  /**
44743   * WordPress dependencies
44744   */
44745  
44746  
44747  
44748  
44749  
44750  function TemplatePartAdvancedControls(_ref) {
44751    let {
44752      tagName,
44753      setAttributes,
44754      isEntityAvailable,
44755      templatePartId,
44756      defaultWrapper
44757    } = _ref;
44758    const [area, setArea] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'area', templatePartId);
44759    const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'title', templatePartId);
44760    const {
44761      areaOptions
44762    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44763      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
44764      // Blocks can be loaded into a *non-post* block editor.
44765      // eslint-disable-next-line @wordpress/data-no-store-string-literals
44766      const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();
44767  
44768      return {
44769        areaOptions: definedAreas.map(_ref2 => {
44770          let {
44771            label,
44772            area: _area
44773          } = _ref2;
44774          return {
44775            label,
44776            value: _area
44777          };
44778        })
44779      };
44780    }, []);
44781    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44782      __experimentalGroup: "advanced"
44783    }, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
44784      label: (0,external_wp_i18n_namespaceObject.__)('Title'),
44785      value: title,
44786      onChange: value => {
44787        setTitle(value);
44788      },
44789      onFocus: event => event.target.select()
44790    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
44791      label: (0,external_wp_i18n_namespaceObject.__)('Area'),
44792      labelPosition: "top",
44793      options: areaOptions,
44794      value: area,
44795      onChange: setArea
44796    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
44797      label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
44798      options: [{
44799        label: (0,external_wp_i18n_namespaceObject.sprintf)(
44800        /* translators: %s: HTML tag based on area. */
44801        (0,external_wp_i18n_namespaceObject.__)('Default based on area (%s)'), `<$defaultWrapper}>`),
44802        value: ''
44803      }, {
44804        label: '<header>',
44805        value: 'header'
44806      }, {
44807        label: '<main>',
44808        value: 'main'
44809      }, {
44810        label: '<section>',
44811        value: 'section'
44812      }, {
44813        label: '<article>',
44814        value: 'article'
44815      }, {
44816        label: '<aside>',
44817        value: 'aside'
44818      }, {
44819        label: '<footer>',
44820        value: 'footer'
44821      }, {
44822        label: '<div>',
44823        value: 'div'
44824      }],
44825      value: tagName || '',
44826      onChange: value => setAttributes({
44827        tagName: value
44828      })
44829    }));
44830  }
44831  
44832  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/inner-blocks.js
44833  
44834  
44835  /**
44836   * WordPress dependencies
44837   */
44838  
44839  
44840  
44841  function TemplatePartInnerBlocks(_ref) {
44842    let {
44843      postId: id,
44844      hasInnerBlocks,
44845      layout,
44846      tagName,
44847      blockProps,
44848      clientId
44849    } = _ref;
44850    const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
44851      var _getSettings;
44852  
44853      const {
44854        getSettings
44855      } = select(external_wp_blockEditor_namespaceObject.store);
44856      return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout;
44857    }, []);
44858    const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {};
44859    const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
44860    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_template_part', {
44861      id
44862    });
44863    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
44864      value: blocks,
44865      onInput,
44866      onChange,
44867      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender,
44868      __experimentalLayout: themeSupportsLayout ? usedLayout : undefined
44869    });
44870    return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, {
44871      clientId: clientId,
44872      tagName: tagName,
44873      wrapperProps: innerBlocksProps
44874    });
44875  }
44876  
44877  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/index.js
44878  
44879  
44880  /**
44881   * External dependencies
44882   */
44883  
44884  /**
44885   * WordPress dependencies
44886   */
44887  
44888  
44889  
44890  
44891  
44892  
44893  
44894  /**
44895   * Internal dependencies
44896   */
44897  
44898  
44899  
44900  
44901  
44902  
44903  
44904  function TemplatePartEdit(_ref) {
44905    let {
44906      attributes,
44907      setAttributes,
44908      clientId
44909    } = _ref;
44910    const {
44911      slug,
44912      theme,
44913      tagName,
44914      layout = {}
44915    } = attributes;
44916    const templatePartId = createTemplatePartId(theme, slug);
44917    const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(templatePartId);
44918    const [isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen] = (0,external_wp_element_namespaceObject.useState)(false); // Set the postId block attribute if it did not exist,
44919    // but wait until the inner blocks have loaded to allow
44920    // new edits to trigger this.
44921  
44922    const {
44923      isResolved,
44924      innerBlocks,
44925      isMissing,
44926      area
44927    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44928      const {
44929        getEditedEntityRecord,
44930        hasFinishedResolution
44931      } = select(external_wp_coreData_namespaceObject.store);
44932      const {
44933        getBlocks
44934      } = select(external_wp_blockEditor_namespaceObject.store);
44935      const getEntityArgs = ['postType', 'wp_template_part', templatePartId];
44936      const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null;
44937  
44938      const _area = (entityRecord === null || entityRecord === void 0 ? void 0 : entityRecord.area) || attributes.area;
44939  
44940      const hasResolvedEntity = templatePartId ? hasFinishedResolution('getEditedEntityRecord', getEntityArgs) : false;
44941      return {
44942        innerBlocks: getBlocks(clientId),
44943        isResolved: hasResolvedEntity,
44944        isMissing: hasResolvedEntity && (0,external_lodash_namespaceObject.isEmpty)(entityRecord),
44945        area: _area
44946      };
44947    }, [templatePartId, clientId]);
44948    const {
44949      templateParts
44950    } = useAlternativeTemplateParts(area, templatePartId);
44951    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
44952    const hasReplacements = !!templateParts.length || !!blockPatterns.length;
44953    const areaObject = useTemplatePartArea(area);
44954    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
44955    const isPlaceholder = !slug;
44956    const isEntityAvailable = !isPlaceholder && !isMissing && isResolved;
44957    const TagName = tagName || areaObject.tagName; // We don't want to render a missing state if we have any inner blocks.
44958    // A new template part is automatically created if we have any inner blocks but no entity.
44959  
44960    if (innerBlocks.length === 0 && (slug && !theme || slug && isMissing)) {
44961      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)(
44962      /* translators: %s: Template part slug */
44963      (0,external_wp_i18n_namespaceObject.__)('Template part has been deleted or is unavailable: %s'), slug)));
44964    }
44965  
44966    if (isEntityAvailable && hasAlreadyRendered) {
44967      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.')));
44968    }
44969  
44970    return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)(TemplatePartAdvancedControls, {
44971      tagName: tagName,
44972      setAttributes: setAttributes,
44973      isEntityAvailable: isEntityAvailable,
44974      templatePartId: templatePartId,
44975      defaultWrapper: areaObject.tagName
44976    }), isPlaceholder && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(TemplatePartPlaceholder, {
44977      area: attributes.area,
44978      templatePartId: templatePartId,
44979      clientId: clientId,
44980      setAttributes: setAttributes,
44981      onOpenSelectionModal: () => setIsTemplatePartSelectionOpen(true)
44982    })), 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, {
44983      className: "wp-block-template-part__block-control-group"
44984    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
44985      onClick: () => setIsTemplatePartSelectionOpen(true)
44986    }, (0,external_wp_i18n_namespaceObject.__)('Replace')))), isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(TemplatePartInnerBlocks, {
44987      clientId: clientId,
44988      tagName: TagName,
44989      blockProps: blockProps,
44990      postId: templatePartId,
44991      hasInnerBlocks: innerBlocks.length > 0,
44992      layout: layout
44993    }), !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, {
44994      className: "block-editor-template-part__selection-modal",
44995      title: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
44996      (0,external_wp_i18n_namespaceObject.__)('Choose a %s'), areaObject.label.toLowerCase()),
44997      closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
44998      onRequestClose: () => setIsTemplatePartSelectionOpen(false)
44999    }, (0,external_wp_element_namespaceObject.createElement)(TemplatePartSelectionModal, {
45000      templatePartId: templatePartId,
45001      clientId: clientId,
45002      area: area,
45003      setAttributes: setAttributes,
45004      onClose: () => setIsTemplatePartSelectionOpen(false)
45005    })));
45006  }
45007  
45008  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/header.js
45009  
45010  
45011  /**
45012   * WordPress dependencies
45013   */
45014  
45015  const header = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
45016    xmlns: "http://www.w3.org/2000/svg",
45017    viewBox: "0 0 24 24"
45018  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
45019    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"
45020  }));
45021  /* harmony default export */ var library_header = (header);
45022  
45023  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/footer.js
45024  
45025  
45026  /**
45027   * WordPress dependencies
45028   */
45029  
45030  const footer = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
45031    xmlns: "http://www.w3.org/2000/svg",
45032    viewBox: "0 0 24 24"
45033  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
45034    fillRule: "evenodd",
45035    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"
45036  }));
45037  /* harmony default export */ var library_footer = (footer);
45038  
45039  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sidebar.js
45040  
45041  
45042  /**
45043   * WordPress dependencies
45044   */
45045  
45046  const sidebar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
45047    xmlns: "http://www.w3.org/2000/svg",
45048    viewBox: "0 0 24 24"
45049  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
45050    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"
45051  }));
45052  /* harmony default export */ var library_sidebar = (sidebar);
45053  
45054  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/fallback-variations.js
45055  /**
45056   * WordPress dependencies
45057   */
45058  
45059  
45060  
45061  
45062  const fallback_variations_fallbackVariations = [{
45063    name: 'header',
45064    icon: library_header,
45065    title: (0,external_wp_i18n_namespaceObject.__)('Header'),
45066    description: (0,external_wp_i18n_namespaceObject.__)('The Header template defines a page area that typically contains a title, logo, and main navigation.'),
45067    attributes: {
45068      area: 'header'
45069    },
45070    scope: ['inserter']
45071  }, {
45072    name: 'footer',
45073    icon: library_footer,
45074    title: (0,external_wp_i18n_namespaceObject.__)('Footer'),
45075    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.'),
45076    attributes: {
45077      area: 'footer'
45078    },
45079    scope: ['inserter']
45080  }];
45081  fallback_variations_fallbackVariations.forEach(variation => {
45082    if (variation.isActive) return;
45083  
45084    variation.isActive = (blockAttributes, variationAttributes) => {
45085      const {
45086        area,
45087        theme,
45088        slug
45089      } = blockAttributes; // We first check the `area` block attribute which is set during insertion.
45090      // This property is removed on the creation of a template part.
45091  
45092      if (area) return area === variationAttributes.area; // Find a matching variation from the created template part
45093      // by checking the entity's `area` property.
45094  
45095      if (!slug) return false;
45096      const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', `$theme}//${slug}`);
45097      return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area;
45098    };
45099  });
45100  /* harmony default export */ var template_part_fallback_variations = (fallback_variations_fallbackVariations);
45101  
45102  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/variations.js
45103  /**
45104   * WordPress dependencies
45105   */
45106  
45107  
45108  
45109  /**
45110   * Internal dependencies
45111   */
45112  
45113  
45114  
45115  function getTemplatePartIcon(iconName) {
45116    if ('header' === iconName) {
45117      return library_header;
45118    } else if ('footer' === iconName) {
45119      return library_footer;
45120    } else if ('sidebar' === iconName) {
45121      return library_sidebar;
45122    }
45123  
45124    return symbol_filled;
45125  }
45126  
45127  function enhanceTemplatePartVariations(settings, name) {
45128    if (name !== 'core/template-part') {
45129      return settings;
45130    } // WordPress versions pre-5.8 do not support server side variation registration.
45131    // So we must register the fallback variations until those versions are no longer supported.
45132  
45133  
45134    if (!(settings.variations && settings.variations.length)) {
45135      return { ...settings,
45136        variations: template_part_fallback_variations
45137      };
45138    }
45139  
45140    if (settings.variations) {
45141      const isActive = (blockAttributes, variationAttributes) => {
45142        const {
45143          area,
45144          theme,
45145          slug
45146        } = blockAttributes; // We first check the `area` block attribute which is set during insertion.
45147        // This property is removed on the creation of a template part.
45148  
45149        if (area) return area === variationAttributes.area; // Find a matching variation from the created template part
45150        // by checking the entity's `area` property.
45151  
45152        if (!slug) return false;
45153        const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', `$theme}//${slug}`);
45154        return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area;
45155      };
45156  
45157      const variations = settings.variations.map(variation => {
45158        return { ...variation,
45159          ...(!variation.isActive && {
45160            isActive
45161          }),
45162          ...(typeof variation.icon === 'string' && {
45163            icon: getTemplatePartIcon(variation.icon)
45164          })
45165        };
45166      });
45167      return { ...settings,
45168        variations
45169      };
45170    }
45171  
45172    return settings;
45173  }
45174  
45175  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
45176  /**
45177   * External dependencies
45178   */
45179  
45180  /**
45181   * WordPress dependencies
45182   */
45183  
45184  
45185  
45186  
45187  
45188  
45189  /**
45190   * Internal dependencies
45191   */
45192  
45193  const template_part_metadata = {
45194    $schema: "https://schemas.wp.org/trunk/block.json",
45195    apiVersion: 2,
45196    name: "core/template-part",
45197    title: "Template Part",
45198    category: "theme",
45199    description: "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.",
45200    textdomain: "default",
45201    attributes: {
45202      slug: {
45203        type: "string"
45204      },
45205      theme: {
45206        type: "string"
45207      },
45208      tagName: {
45209        type: "string"
45210      },
45211      area: {
45212        type: "string"
45213      }
45214    },
45215    supports: {
45216      align: true,
45217      html: false,
45218      reusable: false
45219    },
45220    editorStyle: "wp-block-template-part-editor"
45221  };
45222  
45223  
45224  const {
45225    name: template_part_name
45226  } = template_part_metadata;
45227  
45228  const template_part_settings = {
45229    icon: symbol_filled,
45230    __experimentalLabel: _ref => {
45231      var _entity$title;
45232  
45233      let {
45234        slug,
45235        theme
45236      } = _ref;
45237  
45238      // Attempt to find entity title if block is a template part.
45239      // Require slug to request, otherwise entity is uncreated and will throw 404.
45240      if (!slug) {
45241        return;
45242      }
45243  
45244      const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', theme + '//' + slug);
45245  
45246      if (!entity) {
45247        return;
45248      }
45249  
45250      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);
45251    },
45252    edit: TemplatePartEdit
45253  }; // Importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects
45254  
45255  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations); // Prevent adding template parts inside post templates.
45256  
45257  const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content'];
45258  (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromPostTemplates', (can, blockType, rootClientId, _ref2) => {
45259    let {
45260      getBlock,
45261      getBlockParentsByBlockName
45262    } = _ref2;
45263  
45264    if (blockType.name !== 'core/template-part') {
45265      return can;
45266    }
45267  
45268    for (const disallowedParentType of DISALLOWED_PARENTS) {
45269      var _getBlock;
45270  
45271      const hasDisallowedParent = ((_getBlock = getBlock(rootClientId)) === null || _getBlock === void 0 ? void 0 : _getBlock.name) === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
45272  
45273      if (hasDisallowedParent) {
45274        return false;
45275      }
45276    }
45277  
45278    return true;
45279  });
45280  
45281  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/term-description.js
45282  
45283  
45284  /**
45285   * WordPress dependencies
45286   */
45287  
45288  const term_description_tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
45289    xmlns: "http://www.w3.org/2000/svg",
45290    viewBox: "0 0 24 24"
45291  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
45292    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"
45293  }));
45294  /* harmony default export */ var term_description = (term_description_tag);
45295  
45296  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/edit.js
45297  
45298  
45299  /**
45300   * External dependencies
45301   */
45302  
45303  /**
45304   * WordPress dependencies
45305   */
45306  
45307  
45308  
45309  function TermDescriptionEdit(_ref) {
45310    let {
45311      attributes,
45312      setAttributes,
45313      mergedStyle
45314    } = _ref;
45315    const {
45316      textAlign
45317    } = attributes;
45318    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45319      className: classnames_default()({
45320        [`has-text-align-$textAlign}`]: textAlign
45321      }),
45322      style: mergedStyle
45323    });
45324    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
45325      group: "block"
45326    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
45327      value: textAlign,
45328      onChange: nextAlign => {
45329        setAttributes({
45330          textAlign: nextAlign
45331        });
45332      }
45333    })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("div", {
45334      className: "wp-block-term-description__placeholder"
45335    }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Term Description')))));
45336  }
45337  
45338  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
45339  /**
45340   * WordPress dependencies
45341   */
45342  
45343  /**
45344   * Internal dependencies
45345   */
45346  
45347  const term_description_metadata = {
45348    $schema: "https://schemas.wp.org/trunk/block.json",
45349    apiVersion: 2,
45350    name: "core/term-description",
45351    title: "Term Description",
45352    category: "theme",
45353    description: "Display the description of categories, tags and custom taxonomies when viewing an archive.",
45354    textdomain: "default",
45355    attributes: {
45356      textAlign: {
45357        type: "string"
45358      }
45359    },
45360    supports: {
45361      align: ["wide", "full"],
45362      html: false,
45363      color: {
45364        link: true,
45365        __experimentalDefaultControls: {
45366          background: true,
45367          text: true
45368        }
45369      },
45370      typography: {
45371        fontSize: true,
45372        lineHeight: true,
45373        __experimentalDefaultControls: {
45374          fontSize: true
45375        }
45376      }
45377    },
45378    editorStyle: "wp-block-term-description-editor"
45379  };
45380  
45381  const {
45382    name: term_description_name
45383  } = term_description_metadata;
45384  
45385  const term_description_settings = {
45386    icon: term_description,
45387    edit: TermDescriptionEdit
45388  };
45389  
45390  ;// CONCATENATED MODULE: external ["wp","deprecated"]
45391  var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
45392  var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
45393  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js
45394  
45395  
45396  /**
45397   * External dependencies
45398   */
45399  
45400  /**
45401   * WordPress dependencies
45402   */
45403  
45404  
45405  
45406  
45407  
45408  function TextColumnsEdit(_ref) {
45409    let {
45410      attributes,
45411      setAttributes
45412    } = _ref;
45413    const {
45414      width,
45415      content,
45416      columns
45417    } = attributes;
45418    external_wp_deprecated_default()('The Text Columns block', {
45419      since: '5.3',
45420      alternative: 'the Columns block'
45421    });
45422    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, {
45423      value: width,
45424      onChange: nextWidth => setAttributes({
45425        width: nextWidth
45426      }),
45427      controls: ['center', 'wide', 'full']
45428    })), (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, {
45429      label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
45430      value: columns,
45431      onChange: value => setAttributes({
45432        columns: value
45433      }),
45434      min: 2,
45435      max: 4,
45436      required: true
45437    }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45438      className: `align$width} columns-$columns}`
45439    }), (0,external_lodash_namespaceObject.times)(columns, index => {
45440      return (0,external_wp_element_namespaceObject.createElement)("div", {
45441        className: "wp-block-column",
45442        key: `column-$index}`
45443      }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, {
45444        tagName: "p",
45445        value: (0,external_lodash_namespaceObject.get)(content, [index, 'children']),
45446        onChange: nextContent => {
45447          setAttributes({
45448            content: [...content.slice(0, index), {
45449              children: nextContent
45450            }, ...content.slice(index + 1)]
45451          });
45452        },
45453        "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %d: column index (starting with 1)
45454        (0,external_wp_i18n_namespaceObject.__)('Column %d text'), index + 1),
45455        placeholder: (0,external_wp_i18n_namespaceObject.__)('New Column')
45456      }));
45457    })));
45458  }
45459  
45460  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/save.js
45461  
45462  
45463  /**
45464   * External dependencies
45465   */
45466  
45467  /**
45468   * WordPress dependencies
45469   */
45470  
45471  
45472  function text_columns_save_save(_ref) {
45473    let {
45474      attributes
45475    } = _ref;
45476    const {
45477      width,
45478      content,
45479      columns
45480    } = attributes;
45481    return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({
45482      className: `align$width} columns-$columns}`
45483    }), (0,external_lodash_namespaceObject.times)(columns, index => (0,external_wp_element_namespaceObject.createElement)("div", {
45484      className: "wp-block-column",
45485      key: `column-$index}`
45486    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45487      tagName: "p",
45488      value: (0,external_lodash_namespaceObject.get)(content, [index, 'children'])
45489    }))));
45490  }
45491  
45492  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js
45493  /**
45494   * WordPress dependencies
45495   */
45496  
45497  const text_columns_transforms_transforms = {
45498    to: [{
45499      type: 'block',
45500      blocks: ['core/columns'],
45501      transform: _ref => {
45502        let {
45503          className,
45504          columns,
45505          content,
45506          width
45507        } = _ref;
45508        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
45509          align: 'wide' === width || 'full' === width ? width : undefined,
45510          className,
45511          columns
45512        }, content.map(_ref2 => {
45513          let {
45514            children
45515          } = _ref2;
45516          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
45517            content: children
45518          })]);
45519        }));
45520      }
45521    }]
45522  };
45523  /* harmony default export */ var text_columns_transforms = (text_columns_transforms_transforms);
45524  
45525  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
45526  /**
45527   * Internal dependencies
45528   */
45529  
45530  const text_columns_metadata = {
45531    $schema: "https://schemas.wp.org/trunk/block.json",
45532    apiVersion: 2,
45533    name: "core/text-columns",
45534    title: "Text Columns (deprecated)",
45535    icon: "columns",
45536    category: "design",
45537    description: "This block is deprecated. Please use the Columns block instead.",
45538    textdomain: "default",
45539    attributes: {
45540      content: {
45541        type: "array",
45542        source: "query",
45543        selector: "p",
45544        query: {
45545          children: {
45546            type: "string",
45547            source: "html"
45548          }
45549        },
45550        "default": [{}, {}]
45551      },
45552      columns: {
45553        type: "number",
45554        "default": 2
45555      },
45556      width: {
45557        type: "string"
45558      }
45559    },
45560    supports: {
45561      inserter: false
45562    },
45563    editorStyle: "wp-block-text-columns-editor",
45564    style: "wp-block-text-columns"
45565  };
45566  
45567  
45568  const {
45569    name: text_columns_name
45570  } = text_columns_metadata;
45571  
45572  const text_columns_settings = {
45573    transforms: text_columns_transforms,
45574  
45575    getEditWrapperProps(attributes) {
45576      const {
45577        width
45578      } = attributes;
45579  
45580      if ('wide' === width || 'full' === width) {
45581        return {
45582          'data-align': width
45583        };
45584      }
45585    },
45586  
45587    edit: TextColumnsEdit,
45588    save: text_columns_save_save
45589  };
45590  
45591  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/verse.js
45592  
45593  
45594  /**
45595   * WordPress dependencies
45596   */
45597  
45598  const verse = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
45599    viewBox: "0 0 24 24",
45600    xmlns: "http://www.w3.org/2000/svg"
45601  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
45602    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"
45603  }));
45604  /* harmony default export */ var library_verse = (verse);
45605  
45606  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js
45607  
45608  
45609  /**
45610   * External dependencies
45611   */
45612  
45613  /**
45614   * WordPress dependencies
45615   */
45616  
45617  
45618  /**
45619   * Internal dependencies
45620   */
45621  
45622  
45623  const verse_deprecated_v1 = {
45624    attributes: {
45625      content: {
45626        type: 'string',
45627        source: 'html',
45628        selector: 'pre',
45629        default: ''
45630      },
45631      textAlign: {
45632        type: 'string'
45633      }
45634    },
45635  
45636    save(_ref) {
45637      let {
45638        attributes
45639      } = _ref;
45640      const {
45641        textAlign,
45642        content
45643      } = attributes;
45644      return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45645        tagName: "pre",
45646        style: {
45647          textAlign
45648        },
45649        value: content
45650      });
45651    }
45652  
45653  };
45654  const verse_deprecated_v2 = {
45655    attributes: {
45656      content: {
45657        type: 'string',
45658        source: 'html',
45659        selector: 'pre',
45660        default: '',
45661        __unstablePreserveWhiteSpace: true,
45662        __experimentalRole: 'content'
45663      },
45664      textAlign: {
45665        type: 'string'
45666      }
45667    },
45668    supports: {
45669      anchor: true,
45670      color: {
45671        gradients: true,
45672        link: true
45673      },
45674      typography: {
45675        fontSize: true,
45676        __experimentalFontFamily: true
45677      },
45678      spacing: {
45679        padding: true
45680      }
45681    },
45682  
45683    save(_ref2) {
45684      let {
45685        attributes
45686      } = _ref2;
45687      const {
45688        textAlign,
45689        content
45690      } = attributes;
45691      const className = classnames_default()({
45692        [`has-text-align-$textAlign}`]: textAlign
45693      });
45694      return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save({
45695        className
45696      }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45697        value: content
45698      }));
45699    },
45700  
45701    migrate: migrate_font_family,
45702  
45703    isEligible(_ref3) {
45704      var _style$typography;
45705  
45706      let {
45707        style
45708      } = _ref3;
45709      return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily;
45710    }
45711  
45712  };
45713  /**
45714   * New deprecations need to be placed first
45715   * for them to have higher priority.
45716   *
45717   * Old deprecations may need to be updated as well.
45718   *
45719   * See block-deprecation.md
45720   */
45721  
45722  /* harmony default export */ var verse_deprecated = ([verse_deprecated_v2, verse_deprecated_v1]);
45723  
45724  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/edit.js
45725  
45726  
45727  
45728  /**
45729   * External dependencies
45730   */
45731  
45732  /**
45733   * WordPress dependencies
45734   */
45735  
45736  
45737  
45738  function VerseEdit(_ref) {
45739    let {
45740      attributes,
45741      setAttributes,
45742      mergeBlocks,
45743      onRemove,
45744      style
45745    } = _ref;
45746    const {
45747      textAlign,
45748      content
45749    } = attributes;
45750    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45751      className: classnames_default()({
45752        [`has-text-align-$textAlign}`]: textAlign
45753      }),
45754      style
45755    });
45756    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, {
45757      value: textAlign,
45758      onChange: nextAlign => {
45759        setAttributes({
45760          textAlign: nextAlign
45761        });
45762      }
45763    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({
45764      tagName: "pre",
45765      identifier: "content",
45766      preserveWhiteSpace: true,
45767      value: content,
45768      onChange: nextContent => {
45769        setAttributes({
45770          content: nextContent
45771        });
45772      },
45773      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Verse text'),
45774      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write verse…'),
45775      onRemove: onRemove,
45776      onMerge: mergeBlocks,
45777      textAlign: textAlign
45778    }, blockProps, {
45779      __unstablePastePlainText: true
45780    })));
45781  }
45782  
45783  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/save.js
45784  
45785  
45786  /**
45787   * External dependencies
45788   */
45789  
45790  /**
45791   * WordPress dependencies
45792   */
45793  
45794  
45795  function verse_save_save(_ref) {
45796    let {
45797      attributes
45798    } = _ref;
45799    const {
45800      textAlign,
45801      content
45802    } = attributes;
45803    const className = classnames_default()({
45804      [`has-text-align-$textAlign}`]: textAlign
45805    });
45806    return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save({
45807      className
45808    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45809      value: content
45810    }));
45811  }
45812  
45813  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/transforms.js
45814  /**
45815   * WordPress dependencies
45816   */
45817  
45818  const verse_transforms_transforms = {
45819    from: [{
45820      type: 'block',
45821      blocks: ['core/paragraph'],
45822      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/verse', attributes)
45823    }],
45824    to: [{
45825      type: 'block',
45826      blocks: ['core/paragraph'],
45827      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
45828    }]
45829  };
45830  /* harmony default export */ var verse_transforms = (verse_transforms_transforms);
45831  
45832  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/index.js
45833  /**
45834   * WordPress dependencies
45835   */
45836  
45837  
45838  /**
45839   * Internal dependencies
45840   */
45841  
45842  
45843  
45844  const verse_metadata = {
45845    $schema: "https://schemas.wp.org/trunk/block.json",
45846    apiVersion: 2,
45847    name: "core/verse",
45848    title: "Verse",
45849    category: "text",
45850    description: "Insert poetry. Use special spacing formats. Or quote song lyrics.",
45851    keywords: ["poetry", "poem"],
45852    textdomain: "default",
45853    attributes: {
45854      content: {
45855        type: "string",
45856        source: "html",
45857        selector: "pre",
45858        "default": "",
45859        __unstablePreserveWhiteSpace: true,
45860        __experimentalRole: "content"
45861      },
45862      textAlign: {
45863        type: "string"
45864      }
45865    },
45866    supports: {
45867      anchor: true,
45868      color: {
45869        gradients: true,
45870        link: true,
45871        __experimentalDefaultControls: {
45872          background: true,
45873          text: true
45874        }
45875      },
45876      typography: {
45877        fontSize: true,
45878        __experimentalFontFamily: true,
45879        lineHeight: true,
45880        __experimentalFontStyle: true,
45881        __experimentalFontWeight: true,
45882        __experimentalLetterSpacing: true,
45883        __experimentalTextTransform: true,
45884        __experimentalDefaultControls: {
45885          fontSize: true,
45886          fontAppearance: true
45887        }
45888      },
45889      spacing: {
45890        padding: true
45891      }
45892    },
45893    style: "wp-block-verse",
45894    editorStyle: "wp-block-verse-editor"
45895  };
45896  
45897  
45898  const {
45899    name: verse_name
45900  } = verse_metadata;
45901  
45902  const verse_settings = {
45903    icon: library_verse,
45904    example: {
45905      attributes: {
45906        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
45907        // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.
45908        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.')
45909        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
45910  
45911      }
45912    },
45913    transforms: verse_transforms,
45914    deprecated: verse_deprecated,
45915  
45916    merge(attributes, attributesToMerge) {
45917      return {
45918        content: attributes.content + attributesToMerge.content
45919      };
45920    },
45921  
45922    edit: VerseEdit,
45923    save: verse_save_save
45924  };
45925  
45926  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/video.js
45927  
45928  
45929  /**
45930   * WordPress dependencies
45931   */
45932  
45933  const video = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
45934    viewBox: "0 0 24 24",
45935    xmlns: "http://www.w3.org/2000/svg"
45936  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
45937    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"
45938  }));
45939  /* harmony default export */ var library_video = (video);
45940  
45941  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js
45942  
45943  
45944  /**
45945   * WordPress dependencies
45946   */
45947  
45948  
45949  
45950  const options = [{
45951    value: 'auto',
45952    label: (0,external_wp_i18n_namespaceObject.__)('Auto')
45953  }, {
45954    value: 'metadata',
45955    label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
45956  }, {
45957    value: 'none',
45958    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
45959  }];
45960  
45961  const VideoSettings = _ref => {
45962    let {
45963      setAttributes,
45964      attributes
45965    } = _ref;
45966    const {
45967      autoplay,
45968      controls,
45969      loop,
45970      muted,
45971      playsInline,
45972      preload
45973    } = attributes;
45974  
45975    const autoPlayHelpText = (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.');
45976  
45977    const getAutoplayHelp = external_wp_element_namespaceObject.Platform.select({
45978      web: (0,external_wp_element_namespaceObject.useCallback)(checked => {
45979        return checked ? autoPlayHelpText : null;
45980      }, []),
45981      native: autoPlayHelpText
45982    });
45983    const toggleFactory = (0,external_wp_element_namespaceObject.useMemo)(() => {
45984      const toggleAttribute = attribute => {
45985        return newValue => {
45986          setAttributes({
45987            [attribute]: newValue
45988          });
45989        };
45990      };
45991  
45992      return {
45993        autoplay: toggleAttribute('autoplay'),
45994        loop: toggleAttribute('loop'),
45995        muted: toggleAttribute('muted'),
45996        controls: toggleAttribute('controls'),
45997        playsInline: toggleAttribute('playsInline')
45998      };
45999    }, []);
46000    const onChangePreload = (0,external_wp_element_namespaceObject.useCallback)(value => {
46001      setAttributes({
46002        preload: value
46003      });
46004    }, []);
46005    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
46006      label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
46007      onChange: toggleFactory.autoplay,
46008      checked: autoplay,
46009      help: getAutoplayHelp
46010    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
46011      label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
46012      onChange: toggleFactory.loop,
46013      checked: loop
46014    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
46015      label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
46016      onChange: toggleFactory.muted,
46017      checked: muted
46018    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
46019      label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
46020      onChange: toggleFactory.controls,
46021      checked: controls
46022    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
46023      label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
46024      onChange: toggleFactory.playsInline,
46025      checked: playsInline
46026    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
46027      label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
46028      value: preload,
46029      onChange: onChangePreload,
46030      options: options,
46031      hideCancelButton: true
46032    }));
46033  };
46034  
46035  /* harmony default export */ var edit_common_settings = (VideoSettings);
46036  
46037  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js
46038  
46039  
46040  /**
46041   * WordPress dependencies
46042   */
46043  
46044  const media = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
46045    xmlns: "http://www.w3.org/2000/svg",
46046    viewBox: "0 0 24 24"
46047  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
46048    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"
46049  }));
46050  /* harmony default export */ var library_media = (media);
46051  
46052  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks-editor.js
46053  
46054  
46055  /**
46056   * WordPress dependencies
46057   */
46058  
46059  
46060  
46061  
46062  
46063  
46064  
46065  const ALLOWED_TYPES = ['text/vtt'];
46066  const DEFAULT_KIND = 'subtitles';
46067  const KIND_OPTIONS = [{
46068    label: (0,external_wp_i18n_namespaceObject.__)('Subtitles'),
46069    value: 'subtitles'
46070  }, {
46071    label: (0,external_wp_i18n_namespaceObject.__)('Captions'),
46072    value: 'captions'
46073  }, {
46074    label: (0,external_wp_i18n_namespaceObject.__)('Descriptions'),
46075    value: 'descriptions'
46076  }, {
46077    label: (0,external_wp_i18n_namespaceObject.__)('Chapters'),
46078    value: 'chapters'
46079  }, {
46080    label: (0,external_wp_i18n_namespaceObject.__)('Metadata'),
46081    value: 'metadata'
46082  }];
46083  const captionIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
46084    width: "18",
46085    height: "14",
46086    viewBox: "0 0 18 14",
46087    role: "img",
46088    fill: "none"
46089  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, {
46090    x: "0.75",
46091    y: "0.75",
46092    width: "16.5",
46093    height: "12.5",
46094    rx: "1.25",
46095    stroke: "black",
46096    strokeWidth: "1.5",
46097    fill: "none"
46098  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
46099    d: "M3 7H15",
46100    stroke: "black",
46101    strokeWidth: "1.5"
46102  }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
46103    d: "M3 10L15 10",
46104    stroke: "black",
46105    strokeWidth: "1.5"
46106  }));
46107  
46108  function TrackList(_ref) {
46109    let {
46110      tracks,
46111      onEditPress
46112    } = _ref;
46113    let content;
46114  
46115    if (tracks.length === 0) {
46116      content = (0,external_wp_element_namespaceObject.createElement)("p", {
46117        className: "block-library-video-tracks-editor__tracks-informative-message"
46118      }, (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.'));
46119    } else {
46120      content = tracks.map((track, index) => {
46121        return (0,external_wp_element_namespaceObject.createElement)("div", {
46122          key: index,
46123          className: "block-library-video-tracks-editor__track-list-track"
46124        }, (0,external_wp_element_namespaceObject.createElement)("span", null, track.label, " "), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
46125          variant: "tertiary",
46126          onClick: () => onEditPress(index),
46127          "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
46128          /* translators: %s: Label of the video text track e.g: "French subtitles" */
46129          (0,external_wp_i18n_namespaceObject.__)('Edit %s'), track.label)
46130        }, (0,external_wp_i18n_namespaceObject.__)('Edit')));
46131      });
46132    }
46133  
46134    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
46135      label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
46136      className: "block-library-video-tracks-editor__track-list"
46137    }, content);
46138  }
46139  
46140  function SingleTrackEditor(_ref2) {
46141    let {
46142      track,
46143      onChange,
46144      onClose,
46145      onRemove
46146    } = _ref2;
46147    const {
46148      src = '',
46149      label = '',
46150      srcLang = '',
46151      kind = DEFAULT_KIND
46152    } = track;
46153    const fileName = src.startsWith('blob:') ? '' : (0,external_wp_url_namespaceObject.getFilename)(src) || '';
46154    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, (0,external_wp_element_namespaceObject.createElement)("div", {
46155      className: "block-library-video-tracks-editor__single-track-editor"
46156    }, (0,external_wp_element_namespaceObject.createElement)("span", {
46157      className: "block-library-video-tracks-editor__single-track-editor-edit-track-label"
46158    }, (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", {
46159      className: "block-library-video-tracks-editor__single-track-editor-label-language"
46160    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl
46161    /* eslint-disable jsx-a11y/no-autofocus */
46162    , {
46163      autoFocus: true
46164      /* eslint-enable jsx-a11y/no-autofocus */
46165      ,
46166      onChange: newLabel => onChange({ ...track,
46167        label: newLabel
46168      }),
46169      label: (0,external_wp_i18n_namespaceObject.__)('Label'),
46170      value: label,
46171      help: (0,external_wp_i18n_namespaceObject.__)('Title of track')
46172    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
46173      onChange: newSrcLang => onChange({ ...track,
46174        srcLang: newSrcLang
46175      }),
46176      label: (0,external_wp_i18n_namespaceObject.__)('Source language'),
46177      value: srcLang,
46178      help: (0,external_wp_i18n_namespaceObject.__)('Language tag (en, fr, etc.)')
46179    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, {
46180      className: "block-library-video-tracks-editor__single-track-editor-kind-select",
46181      options: KIND_OPTIONS,
46182      value: kind,
46183      label: (0,external_wp_i18n_namespaceObject.__)('Kind'),
46184      onChange: newKind => {
46185        onChange({ ...track,
46186          kind: newKind
46187        });
46188      }
46189    }), (0,external_wp_element_namespaceObject.createElement)("div", {
46190      className: "block-library-video-tracks-editor__single-track-editor-buttons-container"
46191    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
46192      variant: "secondary",
46193      onClick: () => {
46194        const changes = {};
46195        let hasChanges = false;
46196  
46197        if (label === '') {
46198          changes.label = (0,external_wp_i18n_namespaceObject.__)('English');
46199          hasChanges = true;
46200        }
46201  
46202        if (srcLang === '') {
46203          changes.srcLang = 'en';
46204          hasChanges = true;
46205        }
46206  
46207        if (track.kind === undefined) {
46208          changes.kind = DEFAULT_KIND;
46209          hasChanges = true;
46210        }
46211  
46212        if (hasChanges) {
46213          onChange({ ...track,
46214            ...changes
46215          });
46216        }
46217  
46218        onClose();
46219      }
46220    }, (0,external_wp_i18n_namespaceObject.__)('Close')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
46221      isDestructive: true,
46222      variant: "link",
46223      onClick: onRemove
46224    }, (0,external_wp_i18n_namespaceObject.__)('Remove track')))));
46225  }
46226  
46227  function TracksEditor(_ref3) {
46228    let {
46229      tracks = [],
46230      onChange
46231    } = _ref3;
46232    const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
46233      return select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload;
46234    }, []);
46235    const [trackBeingEdited, setTrackBeingEdited] = (0,external_wp_element_namespaceObject.useState)(null);
46236  
46237    if (!mediaUpload) {
46238      return null;
46239    }
46240  
46241    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, {
46242      contentClassName: "block-library-video-tracks-editor",
46243      renderToggle: _ref4 => {
46244        let {
46245          isOpen,
46246          onToggle
46247        } = _ref4;
46248        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
46249          label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
46250          showTooltip: true,
46251          "aria-expanded": isOpen,
46252          "aria-haspopup": "true",
46253          onClick: onToggle,
46254          icon: captionIcon
46255        });
46256      },
46257      renderContent: _ref5 => {
46258        let {} = _ref5;
46259  
46260        if (trackBeingEdited !== null) {
46261          return (0,external_wp_element_namespaceObject.createElement)(SingleTrackEditor, {
46262            track: tracks[trackBeingEdited],
46263            onChange: newTrack => {
46264              const newTracks = [...tracks];
46265              newTracks[trackBeingEdited] = newTrack;
46266              onChange(newTracks);
46267            },
46268            onClose: () => setTrackBeingEdited(null),
46269            onRemove: () => {
46270              onChange(tracks.filter((_track, index) => index !== trackBeingEdited));
46271              setTrackBeingEdited(null);
46272            }
46273          });
46274        }
46275  
46276        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, {
46277          tracks: tracks,
46278          onEditPress: setTrackBeingEdited
46279        }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
46280          className: "block-library-video-tracks-editor__add-tracks-container",
46281          label: (0,external_wp_i18n_namespaceObject.__)('Add tracks')
46282        }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUpload, {
46283          onSelect: _ref6 => {
46284            let {
46285              url
46286            } = _ref6;
46287            const trackIndex = tracks.length;
46288            onChange([...tracks, {
46289              src: url
46290            }]);
46291            setTrackBeingEdited(trackIndex);
46292          },
46293          allowedTypes: ALLOWED_TYPES,
46294          render: _ref7 => {
46295            let {
46296              open
46297            } = _ref7;
46298            return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
46299              icon: library_media,
46300              onClick: open
46301            }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library'));
46302          }
46303        }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormFileUpload, {
46304          onChange: event => {
46305            const files = event.target.files;
46306            const trackIndex = tracks.length;
46307            mediaUpload({
46308              allowedTypes: ALLOWED_TYPES,
46309              filesList: files,
46310              onFileChange: _ref8 => {
46311                let [{
46312                  url
46313                }] = _ref8;
46314                const newTracks = [...tracks];
46315  
46316                if (!newTracks[trackIndex]) {
46317                  newTracks[trackIndex] = {};
46318                }
46319  
46320                newTracks[trackIndex] = { ...tracks[trackIndex],
46321                  src: url
46322                };
46323                onChange(newTracks);
46324                setTrackBeingEdited(trackIndex);
46325              }
46326            });
46327          },
46328          accept: ".vtt,text/vtt",
46329          render: _ref9 => {
46330            let {
46331              openFileDialog
46332            } = _ref9;
46333            return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
46334              icon: library_upload,
46335              onClick: () => {
46336                openFileDialog();
46337              }
46338            }, (0,external_wp_i18n_namespaceObject.__)('Upload'));
46339          }
46340        })))));
46341      }
46342    });
46343  }
46344  
46345  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks.js
46346  
46347  
46348  function Tracks(_ref) {
46349    let {
46350      tracks = []
46351    } = _ref;
46352    return tracks.map(track => {
46353      return (0,external_wp_element_namespaceObject.createElement)("track", _extends({
46354        key: track.src
46355      }, track));
46356    });
46357  }
46358  
46359  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit.js
46360  
46361  
46362  /**
46363   * External dependencies
46364   */
46365  
46366  /**
46367   * WordPress dependencies
46368   */
46369  
46370  
46371  
46372  
46373  
46374  
46375  
46376  
46377  
46378  
46379  /**
46380   * Internal dependencies
46381   */
46382  
46383  
46384  
46385  
46386  
46387  const video_edit_ALLOWED_MEDIA_TYPES = ['video'];
46388  const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
46389  
46390  function VideoEdit(_ref) {
46391    let {
46392      isSelected,
46393      noticeUI,
46394      attributes,
46395      className,
46396      setAttributes,
46397      insertBlocksAfter,
46398      onReplace,
46399      noticeOperations
46400    } = _ref;
46401    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(VideoEdit);
46402    const videoPlayer = (0,external_wp_element_namespaceObject.useRef)();
46403    const posterImageButton = (0,external_wp_element_namespaceObject.useRef)();
46404    const {
46405      id,
46406      caption,
46407      controls,
46408      poster,
46409      src,
46410      tracks
46411    } = attributes;
46412    const isTemporaryVideo = !id && (0,external_wp_blob_namespaceObject.isBlobURL)(src);
46413    const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload);
46414    (0,external_wp_element_namespaceObject.useEffect)(() => {
46415      if (!id && (0,external_wp_blob_namespaceObject.isBlobURL)(src)) {
46416        const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(src);
46417  
46418        if (file) {
46419          mediaUpload({
46420            filesList: [file],
46421            onFileChange: _ref2 => {
46422              let [{
46423                url
46424              }] = _ref2;
46425              setAttributes({
46426                src: url
46427              });
46428            },
46429            onError: message => {
46430              noticeOperations.createErrorNotice(message);
46431            },
46432            allowedTypes: video_edit_ALLOWED_MEDIA_TYPES
46433          });
46434        }
46435      }
46436    }, []);
46437    (0,external_wp_element_namespaceObject.useEffect)(() => {
46438      // Placeholder may be rendered.
46439      if (videoPlayer.current) {
46440        videoPlayer.current.load();
46441      }
46442    }, [poster]);
46443  
46444    function onSelectVideo(media) {
46445      var _media$image, _media$image2;
46446  
46447      if (!media || !media.url) {
46448        // In this case there was an error
46449        // previous attributes should be removed
46450        // because they may be temporary blob urls.
46451        setAttributes({
46452          src: undefined,
46453          id: undefined,
46454          poster: undefined
46455        });
46456        return;
46457      } // Sets the block's attribute and updates the edit component from the
46458      // selected media.
46459  
46460  
46461      setAttributes({
46462        src: media.url,
46463        id: media.id,
46464        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
46465      });
46466    }
46467  
46468    function onSelectURL(newSrc) {
46469      if (newSrc !== src) {
46470        // Check if there's an embed block that handles this URL.
46471        const embedBlock = createUpgradedEmbedBlock({
46472          attributes: {
46473            url: newSrc
46474          }
46475        });
46476  
46477        if (undefined !== embedBlock) {
46478          onReplace(embedBlock);
46479          return;
46480        }
46481  
46482        setAttributes({
46483          src: newSrc,
46484          id: undefined,
46485          poster: undefined
46486        });
46487      }
46488    }
46489  
46490    function onUploadError(message) {
46491      noticeOperations.removeAllNotices();
46492      noticeOperations.createErrorNotice(message);
46493    }
46494  
46495    const classes = classnames_default()(className, {
46496      'is-transient': isTemporaryVideo
46497    });
46498    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46499      className: classes
46500    });
46501  
46502    if (!src) {
46503      return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
46504        icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
46505          icon: library_video
46506        }),
46507        onSelect: onSelectVideo,
46508        onSelectURL: onSelectURL,
46509        accept: "video/*",
46510        allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
46511        value: attributes,
46512        notices: noticeUI,
46513        onError: onUploadError
46514      }));
46515    }
46516  
46517    function onSelectPoster(image) {
46518      setAttributes({
46519        poster: image.url
46520      });
46521    }
46522  
46523    function onRemovePoster() {
46524      setAttributes({
46525        poster: undefined
46526      }); // Move focus back to the Media Upload button.
46527  
46528      posterImageButton.current.focus();
46529    }
46530  
46531    const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
46532    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
46533      group: "block"
46534    }, (0,external_wp_element_namespaceObject.createElement)(TracksEditor, {
46535      tracks: tracks,
46536      onChange: newTracks => {
46537        setAttributes({
46538          tracks: newTracks
46539        });
46540      }
46541    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
46542      group: "other"
46543    }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
46544      mediaId: id,
46545      mediaURL: src,
46546      allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
46547      accept: "video/*",
46548      onSelect: onSelectVideo,
46549      onSelectURL: onSelectURL,
46550      onError: onUploadError
46551    })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
46552      title: (0,external_wp_i18n_namespaceObject.__)('Video settings')
46553    }, (0,external_wp_element_namespaceObject.createElement)(edit_common_settings, {
46554      setAttributes: setAttributes,
46555      attributes: attributes
46556    }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, {
46557      className: "editor-video-poster-control"
46558    }, (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, {
46559      title: (0,external_wp_i18n_namespaceObject.__)('Select poster image'),
46560      onSelect: onSelectPoster,
46561      allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
46562      render: _ref3 => {
46563        let {
46564          open
46565        } = _ref3;
46566        return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
46567          variant: "primary",
46568          onClick: open,
46569          ref: posterImageButton,
46570          "aria-describedby": videoPosterDescription
46571        }, !poster ? (0,external_wp_i18n_namespaceObject.__)('Select') : (0,external_wp_i18n_namespaceObject.__)('Replace'));
46572      }
46573    }), (0,external_wp_element_namespaceObject.createElement)("p", {
46574      id: videoPosterDescription,
46575      hidden: true
46576    }, poster ? (0,external_wp_i18n_namespaceObject.sprintf)(
46577    /* translators: %s: poster image URL. */
46578    (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, {
46579      onClick: onRemovePoster,
46580      variant: "tertiary"
46581    }, (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, {
46582      isDisabled: !isSelected
46583    }, (0,external_wp_element_namespaceObject.createElement)("video", {
46584      controls: controls,
46585      poster: poster,
46586      src: src,
46587      ref: videoPlayer
46588    }, (0,external_wp_element_namespaceObject.createElement)(Tracks, {
46589      tracks: tracks
46590    }))), 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, {
46591      tagName: "figcaption",
46592      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Video caption text'),
46593      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'),
46594      value: caption,
46595      onChange: value => setAttributes({
46596        caption: value
46597      }),
46598      inlineToolbar: true,
46599      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'))
46600    })));
46601  }
46602  
46603  /* harmony default export */ var video_edit = ((0,external_wp_components_namespaceObject.withNotices)(VideoEdit));
46604  
46605  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/save.js
46606  
46607  
46608  /**
46609   * WordPress dependencies
46610   */
46611  
46612  /**
46613   * Internal dependencies
46614   */
46615  
46616  
46617  function video_save_save(_ref) {
46618    let {
46619      attributes
46620    } = _ref;
46621    const {
46622      autoplay,
46623      caption,
46624      controls,
46625      loop,
46626      muted,
46627      poster,
46628      preload,
46629      src,
46630      playsInline,
46631      tracks
46632    } = attributes;
46633    return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), src && (0,external_wp_element_namespaceObject.createElement)("video", {
46634      autoPlay: autoplay,
46635      controls: controls,
46636      loop: loop,
46637      muted: muted,
46638      poster: poster,
46639      preload: preload !== 'metadata' ? preload : undefined,
46640      src: src,
46641      playsInline: playsInline
46642    }, (0,external_wp_element_namespaceObject.createElement)(Tracks, {
46643      tracks: tracks
46644    })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46645      tagName: "figcaption",
46646      value: caption
46647    }));
46648  }
46649  
46650  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/transforms.js
46651  /**
46652   * WordPress dependencies
46653   */
46654  
46655  
46656  const video_transforms_transforms = {
46657    from: [{
46658      type: 'files',
46659  
46660      isMatch(files) {
46661        return files.length === 1 && files[0].type.indexOf('video/') === 0;
46662      },
46663  
46664      transform(files) {
46665        const file = files[0]; // We don't need to upload the media directly here
46666        // It's already done as part of the `componentDidMount`
46667        // in the video block
46668  
46669        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
46670          src: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
46671        });
46672        return block;
46673      }
46674  
46675    }, {
46676      type: 'shortcode',
46677      tag: 'video',
46678      attributes: {
46679        src: {
46680          type: 'string',
46681          shortcode: _ref => {
46682            let {
46683              named: {
46684                src,
46685                mp4,
46686                m4v,
46687                webm,
46688                ogv,
46689                flv
46690              }
46691            } = _ref;
46692            return src || mp4 || m4v || webm || ogv || flv;
46693          }
46694        },
46695        poster: {
46696          type: 'string',
46697          shortcode: _ref2 => {
46698            let {
46699              named: {
46700                poster
46701              }
46702            } = _ref2;
46703            return poster;
46704          }
46705        },
46706        loop: {
46707          type: 'string',
46708          shortcode: _ref3 => {
46709            let {
46710              named: {
46711                loop
46712              }
46713            } = _ref3;
46714            return loop;
46715          }
46716        },
46717        autoplay: {
46718          type: 'string',
46719          shortcode: _ref4 => {
46720            let {
46721              named: {
46722                autoplay
46723              }
46724            } = _ref4;
46725            return autoplay;
46726          }
46727        },
46728        preload: {
46729          type: 'string',
46730          shortcode: _ref5 => {
46731            let {
46732              named: {
46733                preload
46734              }
46735            } = _ref5;
46736            return preload;
46737          }
46738        }
46739      }
46740    }]
46741  };
46742  /* harmony default export */ var video_transforms = (video_transforms_transforms);
46743  
46744  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/index.js
46745  /**
46746   * WordPress dependencies
46747   */
46748  
46749  
46750  /**
46751   * Internal dependencies
46752   */
46753  
46754  
46755  const video_metadata = {
46756    $schema: "https://schemas.wp.org/trunk/block.json",
46757    apiVersion: 2,
46758    name: "core/video",
46759    title: "Video",
46760    category: "media",
46761    description: "Embed a video from your media library or upload a new one.",
46762    keywords: ["movie"],
46763    textdomain: "default",
46764    attributes: {
46765      autoplay: {
46766        type: "boolean",
46767        source: "attribute",
46768        selector: "video",
46769        attribute: "autoplay"
46770      },
46771      caption: {
46772        type: "string",
46773        source: "html",
46774        selector: "figcaption"
46775      },
46776      controls: {
46777        type: "boolean",
46778        source: "attribute",
46779        selector: "video",
46780        attribute: "controls",
46781        "default": true
46782      },
46783      id: {
46784        type: "number"
46785      },
46786      loop: {
46787        type: "boolean",
46788        source: "attribute",
46789        selector: "video",
46790        attribute: "loop"
46791      },
46792      muted: {
46793        type: "boolean",
46794        source: "attribute",
46795        selector: "video",
46796        attribute: "muted"
46797      },
46798      poster: {
46799        type: "string",
46800        source: "attribute",
46801        selector: "video",
46802        attribute: "poster"
46803      },
46804      preload: {
46805        type: "string",
46806        source: "attribute",
46807        selector: "video",
46808        attribute: "preload",
46809        "default": "metadata"
46810      },
46811      src: {
46812        type: "string",
46813        source: "attribute",
46814        selector: "video",
46815        attribute: "src"
46816      },
46817      playsInline: {
46818        type: "boolean",
46819        source: "attribute",
46820        selector: "video",
46821        attribute: "playsinline"
46822      },
46823      tracks: {
46824        type: "array",
46825        items: {
46826          type: "object"
46827        },
46828        "default": []
46829      }
46830    },
46831    supports: {
46832      anchor: true,
46833      align: true
46834    },
46835    editorStyle: "wp-block-video-editor",
46836    style: "wp-block-video"
46837  };
46838  
46839  
46840  const {
46841    name: video_name
46842  } = video_metadata;
46843  
46844  const video_settings = {
46845    icon: library_video,
46846    example: {
46847      attributes: {
46848        src: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',
46849        // translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.
46850        caption: (0,external_wp_i18n_namespaceObject.__)('Wood thrush singing in Central Park, NYC.')
46851      }
46852    },
46853    transforms: video_transforms,
46854    edit: video_edit,
46855    save: video_save_save
46856  };
46857  
46858  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/index.js
46859  /**
46860   * WordPress dependencies
46861   */
46862  
46863  /**
46864   * Internal dependencies
46865   */
46866  
46867  
46868  
46869  
46870  
46871  
46872  
46873  
46874  
46875  
46876  
46877  
46878  
46879  
46880  
46881  
46882  
46883  
46884  
46885  
46886  
46887  
46888  
46889  
46890  
46891  
46892  
46893  
46894  
46895  
46896  
46897  
46898  
46899  
46900  
46901  
46902  
46903  
46904  
46905  
46906  
46907  
46908  
46909  
46910  
46911  
46912  
46913  
46914  
46915  
46916  
46917  
46918  
46919  
46920  
46921  
46922  
46923  
46924  
46925  
46926  
46927  
46928  
46929  
46930  
46931  
46932  
46933  
46934  
46935  
46936  
46937  
46938  
46939  
46940  
46941  
46942  
46943  
46944  
46945  
46946  
46947  
46948  
46949  
46950  
46951  
46952  
46953  
46954  
46955  
46956  
46957  
46958  
46959  
46960  /**
46961   * Function to register an individual block.
46962   *
46963   * @param {Object} block The block to be registered.
46964   *
46965   */
46966  
46967  const registerBlock = block => {
46968    if (!block) {
46969      return;
46970    }
46971  
46972    const {
46973      metadata,
46974      settings,
46975      name
46976    } = block;
46977    (0,external_wp_blocks_namespaceObject.registerBlockType)({
46978      name,
46979      ...metadata
46980    }, settings);
46981  };
46982  /**
46983   * Function to get all the core blocks in an array.
46984   *
46985   * @example
46986   * ```js
46987   * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
46988   *
46989   * const coreBlocks = __experimentalGetCoreBlocks();
46990   * ```
46991   */
46992  
46993  
46994  const __experimentalGetCoreBlocks = () => [// Common blocks are grouped at the top to prioritize their display
46995  // in various contexts — like the inserter and auto-complete components.
46996  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.
46997  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.
46998  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,
46999  tag_cloud_namespaceObject, text_columns_namespaceObject, build_module_verse_namespaceObject, build_module_video_namespaceObject, // theme blocks
47000  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];
47001  /**
47002   * Function to register core blocks provided by the block editor.
47003   *
47004   * @param {Array} blocks An optional array of the core blocks being registered.
47005   *
47006   * @example
47007   * ```js
47008   * import { registerCoreBlocks } from '@wordpress/block-library';
47009   *
47010   * registerCoreBlocks();
47011   * ```
47012   */
47013  
47014  const registerCoreBlocks = function () {
47015    let blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __experimentalGetCoreBlocks();
47016    blocks.forEach(registerBlock);
47017    (0,external_wp_blocks_namespaceObject.setDefaultBlockName)(paragraph_name);
47018  
47019    if (window.wp && window.wp.oldEditor) {
47020      (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)(freeform_name);
47021    }
47022  
47023    (0,external_wp_blocks_namespaceObject.setUnregisteredTypeHandlerName)(missing_name);
47024    (0,external_wp_blocks_namespaceObject.setGroupingBlockName)(group_name);
47025  };
47026  /**
47027   * Function to register experimental core blocks depending on editor settings.
47028   *
47029   * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.
47030   * @example
47031   * ```js
47032   * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
47033   *
47034   * __experimentalRegisterExperimentalCoreBlocks( settings );
47035   * ```
47036   */
47037  
47038  const __experimentalRegisterExperimentalCoreBlocks =  false ? 0 : undefined;
47039  
47040  }();
47041  (window.wp = window.wp || {}).blockLibrary = __webpack_exports__;
47042  /******/ })()
47043  ;


Generated: Thu Nov 21 01:00:03 2024 Cross-referenced by PHPXref 0.7.1