[ 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',