[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

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

   1  /******/ (() => { // webpackBootstrap
   2  /******/     var __webpack_modules__ = ({
   3  
   4  /***/ 2321:
   5  /***/ ((module) => {
   6  
   7  /**
   8   * Checks if the block is experimental based on the metadata loaded
   9   * from block.json.
  10   *
  11   * This function is in a separate file and uses the older JS syntax so
  12   * that it can be imported in both:
  13   * – block-library/src/index.js
  14   * – block-library/src/babel-plugin.js
  15   *
  16   * @param {Object} metadata Parsed block.json metadata.
  17   * @return {boolean} Is the block experimental?
  18   */
  19  module.exports = function isBlockMetadataExperimental(metadata) {
  20    return metadata && '__experimental' in metadata && metadata.__experimental !== false;
  21  };
  22  
  23  
  24  /***/ }),
  25  
  26  /***/ 7734:
  27  /***/ ((module) => {
  28  
  29  "use strict";
  30  
  31  
  32  // do not edit .js files directly - edit src/index.jst
  33  
  34  
  35    var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';
  36  
  37  
  38  module.exports = function equal(a, b) {
  39    if (a === b) return true;
  40  
  41    if (a && b && typeof a == 'object' && typeof b == 'object') {
  42      if (a.constructor !== b.constructor) return false;
  43  
  44      var length, i, keys;
  45      if (Array.isArray(a)) {
  46        length = a.length;
  47        if (length != b.length) return false;
  48        for (i = length; i-- !== 0;)
  49          if (!equal(a[i], b[i])) return false;
  50        return true;
  51      }
  52  
  53  
  54      if ((a instanceof Map) && (b instanceof Map)) {
  55        if (a.size !== b.size) return false;
  56        for (i of a.entries())
  57          if (!b.has(i[0])) return false;
  58        for (i of a.entries())
  59          if (!equal(i[1], b.get(i[0]))) return false;
  60        return true;
  61      }
  62  
  63      if ((a instanceof Set) && (b instanceof Set)) {
  64        if (a.size !== b.size) return false;
  65        for (i of a.entries())
  66          if (!b.has(i[0])) return false;
  67        return true;
  68      }
  69  
  70      if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
  71        length = a.length;
  72        if (length != b.length) return false;
  73        for (i = length; i-- !== 0;)
  74          if (a[i] !== b[i]) return false;
  75        return true;
  76      }
  77  
  78  
  79      if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
  80      if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
  81      if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
  82  
  83      keys = Object.keys(a);
  84      length = keys.length;
  85      if (length !== Object.keys(b).length) return false;
  86  
  87      for (i = length; i-- !== 0;)
  88        if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
  89  
  90      for (i = length; i-- !== 0;) {
  91        var key = keys[i];
  92  
  93        if (!equal(a[key], b[key])) return false;
  94      }
  95  
  96      return true;
  97    }
  98  
  99    // true if both NaN, false otherwise
 100    return a!==a && b!==b;
 101  };
 102  
 103  
 104  /***/ }),
 105  
 106  /***/ 9681:
 107  /***/ ((module) => {
 108  
 109  var characterMap = {
 110      "À": "A",
 111      "Á": "A",
 112      "Â": "A",
 113      "Ã": "A",
 114      "Ä": "A",
 115      "Å": "A",
 116      "Ấ": "A",
 117      "Ắ": "A",
 118      "Ẳ": "A",
 119      "Ẵ": "A",
 120      "Ặ": "A",
 121      "Æ": "AE",
 122      "Ầ": "A",
 123      "Ằ": "A",
 124      "Ȃ": "A",
 125      "Ả": "A",
 126      "Ạ": "A",
 127      "Ẩ": "A",
 128      "Ẫ": "A",
 129      "Ậ": "A",
 130      "Ç": "C",
 131      "Ḉ": "C",
 132      "È": "E",
 133      "É": "E",
 134      "Ê": "E",
 135      "Ë": "E",
 136      "Ế": "E",
 137      "Ḗ": "E",
 138      "Ề": "E",
 139      "Ḕ": "E",
 140      "Ḝ": "E",
 141      "Ȇ": "E",
 142      "Ẻ": "E",
 143      "Ẽ": "E",
 144      "Ẹ": "E",
 145      "Ể": "E",
 146      "Ễ": "E",
 147      "Ệ": "E",
 148      "Ì": "I",
 149      "Í": "I",
 150      "Î": "I",
 151      "Ï": "I",
 152      "Ḯ": "I",
 153      "Ȋ": "I",
 154      "Ỉ": "I",
 155      "Ị": "I",
 156      "Ð": "D",
 157      "Ñ": "N",
 158      "Ò": "O",
 159      "Ó": "O",
 160      "Ô": "O",
 161      "Õ": "O",
 162      "Ö": "O",
 163      "Ø": "O",
 164      "Ố": "O",
 165      "Ṍ": "O",
 166      "Ṓ": "O",
 167      "Ȏ": "O",
 168      "Ỏ": "O",
 169      "Ọ": "O",
 170      "Ổ": "O",
 171      "Ỗ": "O",
 172      "Ộ": "O",
 173      "Ờ": "O",
 174      "Ở": "O",
 175      "Ỡ": "O",
 176      "Ớ": "O",
 177      "Ợ": "O",
 178      "Ù": "U",
 179      "Ú": "U",
 180      "Û": "U",
 181      "Ü": "U",
 182      "Ủ": "U",
 183      "Ụ": "U",
 184      "Ử": "U",
 185      "Ữ": "U",
 186      "Ự": "U",
 187      "Ý": "Y",
 188      "à": "a",
 189      "á": "a",
 190      "â": "a",
 191      "ã": "a",
 192      "ä": "a",
 193      "å": "a",
 194      "ấ": "a",
 195      "ắ": "a",
 196      "ẳ": "a",
 197      "ẵ": "a",
 198      "ặ": "a",
 199      "æ": "ae",
 200      "ầ": "a",
 201      "ằ": "a",
 202      "ȃ": "a",
 203      "ả": "a",
 204      "ạ": "a",
 205      "ẩ": "a",
 206      "ẫ": "a",
 207      "ậ": "a",
 208      "ç": "c",
 209      "ḉ": "c",
 210      "è": "e",
 211      "é": "e",
 212      "ê": "e",
 213      "ë": "e",
 214      "ế": "e",
 215      "ḗ": "e",
 216      "ề": "e",
 217      "ḕ": "e",
 218      "ḝ": "e",
 219      "ȇ": "e",
 220      "ẻ": "e",
 221      "ẽ": "e",
 222      "ẹ": "e",
 223      "ể": "e",
 224      "ễ": "e",
 225      "ệ": "e",
 226      "ì": "i",
 227      "í": "i",
 228      "î": "i",
 229      "ï": "i",
 230      "ḯ": "i",
 231      "ȋ": "i",
 232      "ỉ": "i",
 233      "ị": "i",
 234      "ð": "d",
 235      "ñ": "n",
 236      "ò": "o",
 237      "ó": "o",
 238      "ô": "o",
 239      "õ": "o",
 240      "ö": "o",
 241      "ø": "o",
 242      "ố": "o",
 243      "ṍ": "o",
 244      "ṓ": "o",
 245      "ȏ": "o",
 246      "ỏ": "o",
 247      "ọ": "o",
 248      "ổ": "o",
 249      "ỗ": "o",
 250      "ộ": "o",
 251      "ờ": "o",
 252      "ở": "o",
 253      "ỡ": "o",
 254      "ớ": "o",
 255      "ợ": "o",
 256      "ù": "u",
 257      "ú": "u",
 258      "û": "u",
 259      "ü": "u",
 260      "ủ": "u",
 261      "ụ": "u",
 262      "ử": "u",
 263      "ữ": "u",
 264      "ự": "u",
 265      "ý": "y",
 266      "ÿ": "y",
 267      "Ā": "A",
 268      "ā": "a",
 269      "Ă": "A",
 270      "ă": "a",
 271      "Ą": "A",
 272      "ą": "a",
 273      "Ć": "C",
 274      "ć": "c",
 275      "Ĉ": "C",
 276      "ĉ": "c",
 277      "Ċ": "C",
 278      "ċ": "c",
 279      "Č": "C",
 280      "č": "c",
 281      "C̆": "C",
 282      "c̆": "c",
 283      "Ď": "D",
 284      "ď": "d",
 285      "Đ": "D",
 286      "đ": "d",
 287      "Ē": "E",
 288      "ē": "e",
 289      "Ĕ": "E",
 290      "ĕ": "e",
 291      "Ė": "E",
 292      "ė": "e",
 293      "Ę": "E",
 294      "ę": "e",
 295      "Ě": "E",
 296      "ě": "e",
 297      "Ĝ": "G",
 298      "Ǵ": "G",
 299      "ĝ": "g",
 300      "ǵ": "g",
 301      "Ğ": "G",
 302      "ğ": "g",
 303      "Ġ": "G",
 304      "ġ": "g",
 305      "Ģ": "G",
 306      "ģ": "g",
 307      "Ĥ": "H",
 308      "ĥ": "h",
 309      "Ħ": "H",
 310      "ħ": "h",
 311      "Ḫ": "H",
 312      "ḫ": "h",
 313      "Ĩ": "I",
 314      "ĩ": "i",
 315      "Ī": "I",
 316      "ī": "i",
 317      "Ĭ": "I",
 318      "ĭ": "i",
 319      "Į": "I",
 320      "į": "i",
 321      "İ": "I",
 322      "ı": "i",
 323      "IJ": "IJ",
 324      "ij": "ij",
 325      "Ĵ": "J",
 326      "ĵ": "j",
 327      "Ķ": "K",
 328      "ķ": "k",
 329      "Ḱ": "K",
 330      "ḱ": "k",
 331      "K̆": "K",
 332      "k̆": "k",
 333      "Ĺ": "L",
 334      "ĺ": "l",
 335      "Ļ": "L",
 336      "ļ": "l",
 337      "Ľ": "L",
 338      "ľ": "l",
 339      "Ŀ": "L",
 340      "ŀ": "l",
 341      "Ł": "l",
 342      "ł": "l",
 343      "Ḿ": "M",
 344      "ḿ": "m",
 345      "M̆": "M",
 346      "m̆": "m",
 347      "Ń": "N",
 348      "ń": "n",
 349      "Ņ": "N",
 350      "ņ": "n",
 351      "Ň": "N",
 352      "ň": "n",
 353      "ʼn": "n",
 354      "N̆": "N",
 355      "n̆": "n",
 356      "Ō": "O",
 357      "ō": "o",
 358      "Ŏ": "O",
 359      "ŏ": "o",
 360      "Ő": "O",
 361      "ő": "o",
 362      "Œ": "OE",
 363      "œ": "oe",
 364      "P̆": "P",
 365      "p̆": "p",
 366      "Ŕ": "R",
 367      "ŕ": "r",
 368      "Ŗ": "R",
 369      "ŗ": "r",
 370      "Ř": "R",
 371      "ř": "r",
 372      "R̆": "R",
 373      "r̆": "r",
 374      "Ȓ": "R",
 375      "ȓ": "r",
 376      "Ś": "S",
 377      "ś": "s",
 378      "Ŝ": "S",
 379      "ŝ": "s",
 380      "Ş": "S",
 381      "Ș": "S",
 382      "ș": "s",
 383      "ş": "s",
 384      "Š": "S",
 385      "š": "s",
 386      "Ţ": "T",
 387      "ţ": "t",
 388      "ț": "t",
 389      "Ț": "T",
 390      "Ť": "T",
 391      "ť": "t",
 392      "Ŧ": "T",
 393      "ŧ": "t",
 394      "T̆": "T",
 395      "t̆": "t",
 396      "Ũ": "U",
 397      "ũ": "u",
 398      "Ū": "U",
 399      "ū": "u",
 400      "Ŭ": "U",
 401      "ŭ": "u",
 402      "Ů": "U",
 403      "ů": "u",
 404      "Ű": "U",
 405      "ű": "u",
 406      "Ų": "U",
 407      "ų": "u",
 408      "Ȗ": "U",
 409      "ȗ": "u",
 410      "V̆": "V",
 411      "v̆": "v",
 412      "Ŵ": "W",
 413      "ŵ": "w",
 414      "Ẃ": "W",
 415      "ẃ": "w",
 416      "X̆": "X",
 417      "x̆": "x",
 418      "Ŷ": "Y",
 419      "ŷ": "y",
 420      "Ÿ": "Y",
 421      "Y̆": "Y",
 422      "y̆": "y",
 423      "Ź": "Z",
 424      "ź": "z",
 425      "Ż": "Z",
 426      "ż": "z",
 427      "Ž": "Z",
 428      "ž": "z",
 429      "ſ": "s",
 430      "ƒ": "f",
 431      "Ơ": "O",
 432      "ơ": "o",
 433      "Ư": "U",
 434      "ư": "u",
 435      "Ǎ": "A",
 436      "ǎ": "a",
 437      "Ǐ": "I",
 438      "ǐ": "i",
 439      "Ǒ": "O",
 440      "ǒ": "o",
 441      "Ǔ": "U",
 442      "ǔ": "u",
 443      "Ǖ": "U",
 444      "ǖ": "u",
 445      "Ǘ": "U",
 446      "ǘ": "u",
 447      "Ǚ": "U",
 448      "ǚ": "u",
 449      "Ǜ": "U",
 450      "ǜ": "u",
 451      "Ứ": "U",
 452      "ứ": "u",
 453      "Ṹ": "U",
 454      "ṹ": "u",
 455      "Ǻ": "A",
 456      "ǻ": "a",
 457      "Ǽ": "AE",
 458      "ǽ": "ae",
 459      "Ǿ": "O",
 460      "ǿ": "o",
 461      "Þ": "TH",
 462      "þ": "th",
 463      "Ṕ": "P",
 464      "ṕ": "p",
 465      "Ṥ": "S",
 466      "ṥ": "s",
 467      "X́": "X",
 468      "x́": "x",
 469      "Ѓ": "Г",
 470      "ѓ": "г",
 471      "Ќ": "К",
 472      "ќ": "к",
 473      "A̋": "A",
 474      "a̋": "a",
 475      "E̋": "E",
 476      "e̋": "e",
 477      "I̋": "I",
 478      "i̋": "i",
 479      "Ǹ": "N",
 480      "ǹ": "n",
 481      "Ồ": "O",
 482      "ồ": "o",
 483      "Ṑ": "O",
 484      "ṑ": "o",
 485      "Ừ": "U",
 486      "ừ": "u",
 487      "Ẁ": "W",
 488      "ẁ": "w",
 489      "Ỳ": "Y",
 490      "ỳ": "y",
 491      "Ȁ": "A",
 492      "ȁ": "a",
 493      "Ȅ": "E",
 494      "ȅ": "e",
 495      "Ȉ": "I",
 496      "ȉ": "i",
 497      "Ȍ": "O",
 498      "ȍ": "o",
 499      "Ȑ": "R",
 500      "ȑ": "r",
 501      "Ȕ": "U",
 502      "ȕ": "u",
 503      "B̌": "B",
 504      "b̌": "b",
 505      "Č̣": "C",
 506      "č̣": "c",
 507      "Ê̌": "E",
 508      "ê̌": "e",
 509      "F̌": "F",
 510      "f̌": "f",
 511      "Ǧ": "G",
 512      "ǧ": "g",
 513      "Ȟ": "H",
 514      "ȟ": "h",
 515      "J̌": "J",
 516      "ǰ": "j",
 517      "Ǩ": "K",
 518      "ǩ": "k",
 519      "M̌": "M",
 520      "m̌": "m",
 521      "P̌": "P",
 522      "p̌": "p",
 523      "Q̌": "Q",
 524      "q̌": "q",
 525      "Ř̩": "R",
 526      "ř̩": "r",
 527      "Ṧ": "S",
 528      "ṧ": "s",
 529      "V̌": "V",
 530      "v̌": "v",
 531      "W̌": "W",
 532      "w̌": "w",
 533      "X̌": "X",
 534      "x̌": "x",
 535      "Y̌": "Y",
 536      "y̌": "y",
 537      "A̧": "A",
 538      "a̧": "a",
 539      "B̧": "B",
 540      "b̧": "b",
 541      "Ḑ": "D",
 542      "ḑ": "d",
 543      "Ȩ": "E",
 544      "ȩ": "e",
 545      "Ɛ̧": "E",
 546      "ɛ̧": "e",
 547      "Ḩ": "H",
 548      "ḩ": "h",
 549      "I̧": "I",
 550      "i̧": "i",
 551      "Ɨ̧": "I",
 552      "ɨ̧": "i",
 553      "M̧": "M",
 554      "m̧": "m",
 555      "O̧": "O",
 556      "o̧": "o",
 557      "Q̧": "Q",
 558      "q̧": "q",
 559      "U̧": "U",
 560      "u̧": "u",
 561      "X̧": "X",
 562      "x̧": "x",
 563      "Z̧": "Z",
 564      "z̧": "z",
 565      "й":"и",
 566      "Й":"И",
 567      "ё":"е",
 568      "Ё":"Е",
 569  };
 570  
 571  var chars = Object.keys(characterMap).join('|');
 572  var allAccents = new RegExp(chars, 'g');
 573  var firstAccent = new RegExp(chars, '');
 574  
 575  function matcher(match) {
 576      return characterMap[match];
 577  }
 578  
 579  var removeAccents = function(string) {
 580      return string.replace(allAccents, matcher);
 581  };
 582  
 583  var hasAccents = function(string) {
 584      return !!string.match(firstAccent);
 585  };
 586  
 587  module.exports = removeAccents;
 588  module.exports.has = hasAccents;
 589  module.exports.remove = removeAccents;
 590  
 591  
 592  /***/ })
 593  
 594  /******/     });
 595  /************************************************************************/
 596  /******/     // The module cache
 597  /******/     var __webpack_module_cache__ = {};
 598  /******/     
 599  /******/     // The require function
 600  /******/ 	function __webpack_require__(moduleId) {
 601  /******/         // Check if module is in cache
 602  /******/         var cachedModule = __webpack_module_cache__[moduleId];
 603  /******/         if (cachedModule !== undefined) {
 604  /******/             return cachedModule.exports;
 605  /******/         }
 606  /******/         // Create a new module (and put it into the cache)
 607  /******/         var module = __webpack_module_cache__[moduleId] = {
 608  /******/             // no module.id needed
 609  /******/             // no module.loaded needed
 610  /******/             exports: {}
 611  /******/         };
 612  /******/     
 613  /******/         // Execute the module function
 614  /******/         __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
 615  /******/     
 616  /******/         // Return the exports of the module
 617  /******/         return module.exports;
 618  /******/     }
 619  /******/     
 620  /************************************************************************/
 621  /******/     /* webpack/runtime/compat get default export */
 622  /******/     (() => {
 623  /******/         // getDefaultExport function for compatibility with non-harmony modules
 624  /******/         __webpack_require__.n = (module) => {
 625  /******/             var getter = module && module.__esModule ?
 626  /******/                 () => (module['default']) :
 627  /******/                 () => (module);
 628  /******/             __webpack_require__.d(getter, { a: getter });
 629  /******/             return getter;
 630  /******/         };
 631  /******/     })();
 632  /******/     
 633  /******/     /* webpack/runtime/define property getters */
 634  /******/     (() => {
 635  /******/         // define getter functions for harmony exports
 636  /******/         __webpack_require__.d = (exports, definition) => {
 637  /******/             for(var key in definition) {
 638  /******/                 if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
 639  /******/                     Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
 640  /******/                 }
 641  /******/             }
 642  /******/         };
 643  /******/     })();
 644  /******/     
 645  /******/     /* webpack/runtime/hasOwnProperty shorthand */
 646  /******/     (() => {
 647  /******/         __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
 648  /******/     })();
 649  /******/     
 650  /******/     /* webpack/runtime/make namespace object */
 651  /******/     (() => {
 652  /******/         // define __esModule on exports
 653  /******/         __webpack_require__.r = (exports) => {
 654  /******/             if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
 655  /******/                 Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
 656  /******/             }
 657  /******/             Object.defineProperty(exports, '__esModule', { value: true });
 658  /******/         };
 659  /******/     })();
 660  /******/     
 661  /************************************************************************/
 662  var __webpack_exports__ = {};
 663  // This entry need to be wrapped in an IIFE because it need to be in strict mode.
 664  (() => {
 665  "use strict";
 666  // ESM COMPAT FLAG
 667  __webpack_require__.r(__webpack_exports__);
 668  
 669  // EXPORTS
 670  __webpack_require__.d(__webpack_exports__, {
 671    __experimentalGetCoreBlocks: () => (/* binding */ __experimentalGetCoreBlocks),
 672    __experimentalRegisterExperimentalCoreBlocks: () => (/* binding */ __experimentalRegisterExperimentalCoreBlocks),
 673    privateApis: () => (/* reexport */ privateApis),
 674    registerCoreBlocks: () => (/* binding */ registerCoreBlocks)
 675  });
 676  
 677  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/archives/index.js
 678  var archives_namespaceObject = {};
 679  __webpack_require__.r(archives_namespaceObject);
 680  __webpack_require__.d(archives_namespaceObject, {
 681    init: () => (init),
 682    metadata: () => (metadata),
 683    name: () => (archives_name),
 684    settings: () => (settings)
 685  });
 686  
 687  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/avatar/index.js
 688  var avatar_namespaceObject = {};
 689  __webpack_require__.r(avatar_namespaceObject);
 690  __webpack_require__.d(avatar_namespaceObject, {
 691    init: () => (avatar_init),
 692    metadata: () => (avatar_metadata),
 693    name: () => (avatar_name),
 694    settings: () => (avatar_settings)
 695  });
 696  
 697  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/audio/index.js
 698  var build_module_audio_namespaceObject = {};
 699  __webpack_require__.r(build_module_audio_namespaceObject);
 700  __webpack_require__.d(build_module_audio_namespaceObject, {
 701    init: () => (audio_init),
 702    metadata: () => (audio_metadata),
 703    name: () => (audio_name),
 704    settings: () => (audio_settings)
 705  });
 706  
 707  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/button/index.js
 708  var build_module_button_namespaceObject = {};
 709  __webpack_require__.r(build_module_button_namespaceObject);
 710  __webpack_require__.d(build_module_button_namespaceObject, {
 711    init: () => (button_init),
 712    metadata: () => (button_metadata),
 713    name: () => (button_name),
 714    settings: () => (button_settings)
 715  });
 716  
 717  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/buttons/index.js
 718  var build_module_buttons_namespaceObject = {};
 719  __webpack_require__.r(build_module_buttons_namespaceObject);
 720  __webpack_require__.d(build_module_buttons_namespaceObject, {
 721    init: () => (buttons_init),
 722    metadata: () => (buttons_metadata),
 723    name: () => (buttons_name),
 724    settings: () => (buttons_settings)
 725  });
 726  
 727  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/calendar/index.js
 728  var build_module_calendar_namespaceObject = {};
 729  __webpack_require__.r(build_module_calendar_namespaceObject);
 730  __webpack_require__.d(build_module_calendar_namespaceObject, {
 731    init: () => (calendar_init),
 732    metadata: () => (calendar_metadata),
 733    name: () => (calendar_name),
 734    settings: () => (calendar_settings)
 735  });
 736  
 737  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/categories/index.js
 738  var categories_namespaceObject = {};
 739  __webpack_require__.r(categories_namespaceObject);
 740  __webpack_require__.d(categories_namespaceObject, {
 741    init: () => (categories_init),
 742    metadata: () => (categories_metadata),
 743    name: () => (categories_name),
 744    settings: () => (categories_settings)
 745  });
 746  
 747  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/freeform/index.js
 748  var freeform_namespaceObject = {};
 749  __webpack_require__.r(freeform_namespaceObject);
 750  __webpack_require__.d(freeform_namespaceObject, {
 751    init: () => (freeform_init),
 752    metadata: () => (freeform_metadata),
 753    name: () => (freeform_name),
 754    settings: () => (freeform_settings)
 755  });
 756  
 757  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/code/index.js
 758  var build_module_code_namespaceObject = {};
 759  __webpack_require__.r(build_module_code_namespaceObject);
 760  __webpack_require__.d(build_module_code_namespaceObject, {
 761    init: () => (code_init),
 762    metadata: () => (code_metadata),
 763    name: () => (code_name),
 764    settings: () => (code_settings)
 765  });
 766  
 767  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/column/index.js
 768  var build_module_column_namespaceObject = {};
 769  __webpack_require__.r(build_module_column_namespaceObject);
 770  __webpack_require__.d(build_module_column_namespaceObject, {
 771    init: () => (column_init),
 772    metadata: () => (column_metadata),
 773    name: () => (column_name),
 774    settings: () => (column_settings)
 775  });
 776  
 777  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/columns/index.js
 778  var build_module_columns_namespaceObject = {};
 779  __webpack_require__.r(build_module_columns_namespaceObject);
 780  __webpack_require__.d(build_module_columns_namespaceObject, {
 781    init: () => (columns_init),
 782    metadata: () => (columns_metadata),
 783    name: () => (columns_name),
 784    settings: () => (columns_settings)
 785  });
 786  
 787  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments/index.js
 788  var comments_namespaceObject = {};
 789  __webpack_require__.r(comments_namespaceObject);
 790  __webpack_require__.d(comments_namespaceObject, {
 791    init: () => (comments_init),
 792    metadata: () => (comments_metadata),
 793    name: () => (comments_name),
 794    settings: () => (comments_settings)
 795  });
 796  
 797  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-author-avatar/index.js
 798  var build_module_comment_author_avatar_namespaceObject = {};
 799  __webpack_require__.r(build_module_comment_author_avatar_namespaceObject);
 800  __webpack_require__.d(build_module_comment_author_avatar_namespaceObject, {
 801    init: () => (comment_author_avatar_init),
 802    metadata: () => (comment_author_avatar_metadata),
 803    name: () => (comment_author_avatar_name),
 804    settings: () => (comment_author_avatar_settings)
 805  });
 806  
 807  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
 808  var build_module_comment_author_name_namespaceObject = {};
 809  __webpack_require__.r(build_module_comment_author_name_namespaceObject);
 810  __webpack_require__.d(build_module_comment_author_name_namespaceObject, {
 811    init: () => (comment_author_name_init),
 812    metadata: () => (comment_author_name_metadata),
 813    name: () => (comment_author_name_name),
 814    settings: () => (comment_author_name_settings)
 815  });
 816  
 817  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
 818  var build_module_comment_content_namespaceObject = {};
 819  __webpack_require__.r(build_module_comment_content_namespaceObject);
 820  __webpack_require__.d(build_module_comment_content_namespaceObject, {
 821    init: () => (comment_content_init),
 822    metadata: () => (comment_content_metadata),
 823    name: () => (comment_content_name),
 824    settings: () => (comment_content_settings)
 825  });
 826  
 827  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
 828  var comment_date_namespaceObject = {};
 829  __webpack_require__.r(comment_date_namespaceObject);
 830  __webpack_require__.d(comment_date_namespaceObject, {
 831    init: () => (comment_date_init),
 832    metadata: () => (comment_date_metadata),
 833    name: () => (comment_date_name),
 834    settings: () => (comment_date_settings)
 835  });
 836  
 837  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
 838  var build_module_comment_edit_link_namespaceObject = {};
 839  __webpack_require__.r(build_module_comment_edit_link_namespaceObject);
 840  __webpack_require__.d(build_module_comment_edit_link_namespaceObject, {
 841    init: () => (comment_edit_link_init),
 842    metadata: () => (comment_edit_link_metadata),
 843    name: () => (comment_edit_link_name),
 844    settings: () => (comment_edit_link_settings)
 845  });
 846  
 847  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
 848  var build_module_comment_reply_link_namespaceObject = {};
 849  __webpack_require__.r(build_module_comment_reply_link_namespaceObject);
 850  __webpack_require__.d(build_module_comment_reply_link_namespaceObject, {
 851    init: () => (comment_reply_link_init),
 852    metadata: () => (comment_reply_link_metadata),
 853    name: () => (comment_reply_link_name),
 854    settings: () => (comment_reply_link_settings)
 855  });
 856  
 857  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
 858  var comment_template_namespaceObject = {};
 859  __webpack_require__.r(comment_template_namespaceObject);
 860  __webpack_require__.d(comment_template_namespaceObject, {
 861    init: () => (comment_template_init),
 862    metadata: () => (comment_template_metadata),
 863    name: () => (comment_template_name),
 864    settings: () => (comment_template_settings)
 865  });
 866  
 867  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
 868  var comments_pagination_previous_namespaceObject = {};
 869  __webpack_require__.r(comments_pagination_previous_namespaceObject);
 870  __webpack_require__.d(comments_pagination_previous_namespaceObject, {
 871    init: () => (comments_pagination_previous_init),
 872    metadata: () => (comments_pagination_previous_metadata),
 873    name: () => (comments_pagination_previous_name),
 874    settings: () => (comments_pagination_previous_settings)
 875  });
 876  
 877  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
 878  var comments_pagination_namespaceObject = {};
 879  __webpack_require__.r(comments_pagination_namespaceObject);
 880  __webpack_require__.d(comments_pagination_namespaceObject, {
 881    init: () => (comments_pagination_init),
 882    metadata: () => (comments_pagination_metadata),
 883    name: () => (comments_pagination_name),
 884    settings: () => (comments_pagination_settings)
 885  });
 886  
 887  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
 888  var comments_pagination_next_namespaceObject = {};
 889  __webpack_require__.r(comments_pagination_next_namespaceObject);
 890  __webpack_require__.d(comments_pagination_next_namespaceObject, {
 891    init: () => (comments_pagination_next_init),
 892    metadata: () => (comments_pagination_next_metadata),
 893    name: () => (comments_pagination_next_name),
 894    settings: () => (comments_pagination_next_settings)
 895  });
 896  
 897  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
 898  var comments_pagination_numbers_namespaceObject = {};
 899  __webpack_require__.r(comments_pagination_numbers_namespaceObject);
 900  __webpack_require__.d(comments_pagination_numbers_namespaceObject, {
 901    init: () => (comments_pagination_numbers_init),
 902    metadata: () => (comments_pagination_numbers_metadata),
 903    name: () => (comments_pagination_numbers_name),
 904    settings: () => (comments_pagination_numbers_settings)
 905  });
 906  
 907  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
 908  var comments_title_namespaceObject = {};
 909  __webpack_require__.r(comments_title_namespaceObject);
 910  __webpack_require__.d(comments_title_namespaceObject, {
 911    init: () => (comments_title_init),
 912    metadata: () => (comments_title_metadata),
 913    name: () => (comments_title_name),
 914    settings: () => (comments_title_settings)
 915  });
 916  
 917  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/cover/index.js
 918  var build_module_cover_namespaceObject = {};
 919  __webpack_require__.r(build_module_cover_namespaceObject);
 920  __webpack_require__.d(build_module_cover_namespaceObject, {
 921    init: () => (cover_init),
 922    metadata: () => (cover_metadata),
 923    name: () => (cover_name),
 924    settings: () => (cover_settings)
 925  });
 926  
 927  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/details/index.js
 928  var build_module_details_namespaceObject = {};
 929  __webpack_require__.r(build_module_details_namespaceObject);
 930  __webpack_require__.d(build_module_details_namespaceObject, {
 931    init: () => (details_init),
 932    metadata: () => (details_metadata),
 933    name: () => (details_name),
 934    settings: () => (details_settings)
 935  });
 936  
 937  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/embed/index.js
 938  var embed_namespaceObject = {};
 939  __webpack_require__.r(embed_namespaceObject);
 940  __webpack_require__.d(embed_namespaceObject, {
 941    init: () => (embed_init),
 942    metadata: () => (embed_metadata),
 943    name: () => (embed_name),
 944    settings: () => (embed_settings)
 945  });
 946  
 947  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/file/index.js
 948  var build_module_file_namespaceObject = {};
 949  __webpack_require__.r(build_module_file_namespaceObject);
 950  __webpack_require__.d(build_module_file_namespaceObject, {
 951    init: () => (file_init),
 952    metadata: () => (file_metadata),
 953    name: () => (file_name),
 954    settings: () => (file_settings)
 955  });
 956  
 957  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/form/index.js
 958  var build_module_form_namespaceObject = {};
 959  __webpack_require__.r(build_module_form_namespaceObject);
 960  __webpack_require__.d(build_module_form_namespaceObject, {
 961    init: () => (form_init),
 962    metadata: () => (form_metadata),
 963    name: () => (form_name),
 964    settings: () => (form_settings)
 965  });
 966  
 967  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/form-input/index.js
 968  var form_input_namespaceObject = {};
 969  __webpack_require__.r(form_input_namespaceObject);
 970  __webpack_require__.d(form_input_namespaceObject, {
 971    init: () => (form_input_init),
 972    metadata: () => (form_input_metadata),
 973    name: () => (form_input_name),
 974    settings: () => (form_input_settings)
 975  });
 976  
 977  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/form-submit-button/index.js
 978  var form_submit_button_namespaceObject = {};
 979  __webpack_require__.r(form_submit_button_namespaceObject);
 980  __webpack_require__.d(form_submit_button_namespaceObject, {
 981    init: () => (form_submit_button_init),
 982    metadata: () => (form_submit_button_metadata),
 983    name: () => (form_submit_button_name),
 984    settings: () => (form_submit_button_settings)
 985  });
 986  
 987  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/form-submission-notification/index.js
 988  var form_submission_notification_namespaceObject = {};
 989  __webpack_require__.r(form_submission_notification_namespaceObject);
 990  __webpack_require__.d(form_submission_notification_namespaceObject, {
 991    init: () => (form_submission_notification_init),
 992    metadata: () => (form_submission_notification_metadata),
 993    name: () => (form_submission_notification_name),
 994    settings: () => (form_submission_notification_settings)
 995  });
 996  
 997  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/gallery/index.js
 998  var build_module_gallery_namespaceObject = {};
 999  __webpack_require__.r(build_module_gallery_namespaceObject);
1000  __webpack_require__.d(build_module_gallery_namespaceObject, {
1001    init: () => (gallery_init),
1002    metadata: () => (gallery_metadata),
1003    name: () => (gallery_name),
1004    settings: () => (gallery_settings)
1005  });
1006  
1007  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/group/index.js
1008  var build_module_group_namespaceObject = {};
1009  __webpack_require__.r(build_module_group_namespaceObject);
1010  __webpack_require__.d(build_module_group_namespaceObject, {
1011    init: () => (group_init),
1012    metadata: () => (group_metadata),
1013    name: () => (group_name),
1014    settings: () => (group_settings)
1015  });
1016  
1017  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/heading/index.js
1018  var build_module_heading_namespaceObject = {};
1019  __webpack_require__.r(build_module_heading_namespaceObject);
1020  __webpack_require__.d(build_module_heading_namespaceObject, {
1021    init: () => (heading_init),
1022    metadata: () => (heading_metadata),
1023    name: () => (heading_name),
1024    settings: () => (heading_settings)
1025  });
1026  
1027  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/home-link/index.js
1028  var home_link_namespaceObject = {};
1029  __webpack_require__.r(home_link_namespaceObject);
1030  __webpack_require__.d(home_link_namespaceObject, {
1031    init: () => (home_link_init),
1032    metadata: () => (home_link_metadata),
1033    name: () => (home_link_name),
1034    settings: () => (home_link_settings)
1035  });
1036  
1037  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/html/index.js
1038  var build_module_html_namespaceObject = {};
1039  __webpack_require__.r(build_module_html_namespaceObject);
1040  __webpack_require__.d(build_module_html_namespaceObject, {
1041    init: () => (html_init),
1042    metadata: () => (html_metadata),
1043    name: () => (html_name),
1044    settings: () => (html_settings)
1045  });
1046  
1047  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/image/index.js
1048  var build_module_image_namespaceObject = {};
1049  __webpack_require__.r(build_module_image_namespaceObject);
1050  __webpack_require__.d(build_module_image_namespaceObject, {
1051    init: () => (image_init),
1052    metadata: () => (image_metadata),
1053    name: () => (image_name),
1054    settings: () => (image_settings)
1055  });
1056  
1057  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
1058  var latest_comments_namespaceObject = {};
1059  __webpack_require__.r(latest_comments_namespaceObject);
1060  __webpack_require__.d(latest_comments_namespaceObject, {
1061    init: () => (latest_comments_init),
1062    metadata: () => (latest_comments_metadata),
1063    name: () => (latest_comments_name),
1064    settings: () => (latest_comments_settings)
1065  });
1066  
1067  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
1068  var latest_posts_namespaceObject = {};
1069  __webpack_require__.r(latest_posts_namespaceObject);
1070  __webpack_require__.d(latest_posts_namespaceObject, {
1071    init: () => (latest_posts_init),
1072    metadata: () => (latest_posts_metadata),
1073    name: () => (latest_posts_name),
1074    settings: () => (latest_posts_settings)
1075  });
1076  
1077  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/list/index.js
1078  var build_module_list_namespaceObject = {};
1079  __webpack_require__.r(build_module_list_namespaceObject);
1080  __webpack_require__.d(build_module_list_namespaceObject, {
1081    init: () => (list_init),
1082    metadata: () => (list_metadata),
1083    name: () => (list_name),
1084    settings: () => (list_settings)
1085  });
1086  
1087  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/list-item/index.js
1088  var build_module_list_item_namespaceObject = {};
1089  __webpack_require__.r(build_module_list_item_namespaceObject);
1090  __webpack_require__.d(build_module_list_item_namespaceObject, {
1091    init: () => (list_item_init),
1092    metadata: () => (list_item_metadata),
1093    name: () => (list_item_name),
1094    settings: () => (list_item_settings)
1095  });
1096  
1097  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/loginout/index.js
1098  var loginout_namespaceObject = {};
1099  __webpack_require__.r(loginout_namespaceObject);
1100  __webpack_require__.d(loginout_namespaceObject, {
1101    init: () => (loginout_init),
1102    metadata: () => (loginout_metadata),
1103    name: () => (loginout_name),
1104    settings: () => (loginout_settings)
1105  });
1106  
1107  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/media-text/index.js
1108  var media_text_namespaceObject = {};
1109  __webpack_require__.r(media_text_namespaceObject);
1110  __webpack_require__.d(media_text_namespaceObject, {
1111    init: () => (media_text_init),
1112    metadata: () => (media_text_metadata),
1113    name: () => (media_text_name),
1114    settings: () => (media_text_settings)
1115  });
1116  
1117  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/missing/index.js
1118  var missing_namespaceObject = {};
1119  __webpack_require__.r(missing_namespaceObject);
1120  __webpack_require__.d(missing_namespaceObject, {
1121    init: () => (missing_init),
1122    metadata: () => (missing_metadata),
1123    name: () => (missing_name),
1124    settings: () => (missing_settings)
1125  });
1126  
1127  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/more/index.js
1128  var build_module_more_namespaceObject = {};
1129  __webpack_require__.r(build_module_more_namespaceObject);
1130  __webpack_require__.d(build_module_more_namespaceObject, {
1131    init: () => (more_init),
1132    metadata: () => (more_metadata),
1133    name: () => (more_name),
1134    settings: () => (more_settings)
1135  });
1136  
1137  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation/index.js
1138  var build_module_navigation_namespaceObject = {};
1139  __webpack_require__.r(build_module_navigation_namespaceObject);
1140  __webpack_require__.d(build_module_navigation_namespaceObject, {
1141    init: () => (navigation_init),
1142    metadata: () => (navigation_metadata),
1143    name: () => (navigation_name),
1144    settings: () => (navigation_settings)
1145  });
1146  
1147  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
1148  var navigation_link_namespaceObject = {};
1149  __webpack_require__.r(navigation_link_namespaceObject);
1150  __webpack_require__.d(navigation_link_namespaceObject, {
1151    init: () => (navigation_link_init),
1152    metadata: () => (navigation_link_metadata),
1153    name: () => (navigation_link_name),
1154    settings: () => (navigation_link_settings)
1155  });
1156  
1157  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
1158  var navigation_submenu_namespaceObject = {};
1159  __webpack_require__.r(navigation_submenu_namespaceObject);
1160  __webpack_require__.d(navigation_submenu_namespaceObject, {
1161    init: () => (navigation_submenu_init),
1162    metadata: () => (navigation_submenu_metadata),
1163    name: () => (navigation_submenu_name),
1164    settings: () => (navigation_submenu_settings)
1165  });
1166  
1167  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
1168  var nextpage_namespaceObject = {};
1169  __webpack_require__.r(nextpage_namespaceObject);
1170  __webpack_require__.d(nextpage_namespaceObject, {
1171    init: () => (nextpage_init),
1172    metadata: () => (nextpage_metadata),
1173    name: () => (nextpage_name),
1174    settings: () => (nextpage_settings)
1175  });
1176  
1177  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pattern/index.js
1178  var pattern_namespaceObject = {};
1179  __webpack_require__.r(pattern_namespaceObject);
1180  __webpack_require__.d(pattern_namespaceObject, {
1181    init: () => (pattern_init),
1182    metadata: () => (pattern_metadata),
1183    name: () => (pattern_name),
1184    settings: () => (pattern_settings)
1185  });
1186  
1187  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/page-list/index.js
1188  var page_list_namespaceObject = {};
1189  __webpack_require__.r(page_list_namespaceObject);
1190  __webpack_require__.d(page_list_namespaceObject, {
1191    init: () => (page_list_init),
1192    metadata: () => (page_list_metadata),
1193    name: () => (page_list_name),
1194    settings: () => (page_list_settings)
1195  });
1196  
1197  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/page-list-item/index.js
1198  var page_list_item_namespaceObject = {};
1199  __webpack_require__.r(page_list_item_namespaceObject);
1200  __webpack_require__.d(page_list_item_namespaceObject, {
1201    init: () => (page_list_item_init),
1202    metadata: () => (page_list_item_metadata),
1203    name: () => (page_list_item_name),
1204    settings: () => (page_list_item_settings)
1205  });
1206  
1207  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
1208  var build_module_paragraph_namespaceObject = {};
1209  __webpack_require__.r(build_module_paragraph_namespaceObject);
1210  __webpack_require__.d(build_module_paragraph_namespaceObject, {
1211    init: () => (paragraph_init),
1212    metadata: () => (paragraph_metadata),
1213    name: () => (paragraph_name),
1214    settings: () => (paragraph_settings)
1215  });
1216  
1217  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author/index.js
1218  var build_module_post_author_namespaceObject = {};
1219  __webpack_require__.r(build_module_post_author_namespaceObject);
1220  __webpack_require__.d(build_module_post_author_namespaceObject, {
1221    init: () => (post_author_init),
1222    metadata: () => (post_author_metadata),
1223    name: () => (post_author_name),
1224    settings: () => (post_author_settings)
1225  });
1226  
1227  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author-name/index.js
1228  var post_author_name_namespaceObject = {};
1229  __webpack_require__.r(post_author_name_namespaceObject);
1230  __webpack_require__.d(post_author_name_namespaceObject, {
1231    init: () => (post_author_name_init),
1232    metadata: () => (post_author_name_metadata),
1233    name: () => (post_author_name_name),
1234    settings: () => (post_author_name_settings)
1235  });
1236  
1237  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
1238  var post_author_biography_namespaceObject = {};
1239  __webpack_require__.r(post_author_biography_namespaceObject);
1240  __webpack_require__.d(post_author_biography_namespaceObject, {
1241    init: () => (post_author_biography_init),
1242    metadata: () => (post_author_biography_metadata),
1243    name: () => (post_author_biography_name),
1244    settings: () => (post_author_biography_settings)
1245  });
1246  
1247  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comment/index.js
1248  var post_comment_namespaceObject = {};
1249  __webpack_require__.r(post_comment_namespaceObject);
1250  __webpack_require__.d(post_comment_namespaceObject, {
1251    init: () => (post_comment_init),
1252    metadata: () => (post_comment_metadata),
1253    name: () => (post_comment_name),
1254    settings: () => (post_comment_settings)
1255  });
1256  
1257  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments-count/index.js
1258  var build_module_post_comments_count_namespaceObject = {};
1259  __webpack_require__.r(build_module_post_comments_count_namespaceObject);
1260  __webpack_require__.d(build_module_post_comments_count_namespaceObject, {
1261    init: () => (post_comments_count_init),
1262    metadata: () => (post_comments_count_metadata),
1263    name: () => (post_comments_count_name),
1264    settings: () => (post_comments_count_settings)
1265  });
1266  
1267  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
1268  var build_module_post_comments_form_namespaceObject = {};
1269  __webpack_require__.r(build_module_post_comments_form_namespaceObject);
1270  __webpack_require__.d(build_module_post_comments_form_namespaceObject, {
1271    init: () => (post_comments_form_init),
1272    metadata: () => (post_comments_form_metadata),
1273    name: () => (post_comments_form_name),
1274    settings: () => (post_comments_form_settings)
1275  });
1276  
1277  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments-link/index.js
1278  var post_comments_link_namespaceObject = {};
1279  __webpack_require__.r(post_comments_link_namespaceObject);
1280  __webpack_require__.d(post_comments_link_namespaceObject, {
1281    init: () => (post_comments_link_init),
1282    metadata: () => (post_comments_link_metadata),
1283    name: () => (post_comments_link_name),
1284    settings: () => (post_comments_link_settings)
1285  });
1286  
1287  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-content/index.js
1288  var build_module_post_content_namespaceObject = {};
1289  __webpack_require__.r(build_module_post_content_namespaceObject);
1290  __webpack_require__.d(build_module_post_content_namespaceObject, {
1291    init: () => (post_content_init),
1292    metadata: () => (post_content_metadata),
1293    name: () => (post_content_name),
1294    settings: () => (post_content_settings)
1295  });
1296  
1297  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-date/index.js
1298  var build_module_post_date_namespaceObject = {};
1299  __webpack_require__.r(build_module_post_date_namespaceObject);
1300  __webpack_require__.d(build_module_post_date_namespaceObject, {
1301    init: () => (post_date_init),
1302    metadata: () => (post_date_metadata),
1303    name: () => (post_date_name),
1304    settings: () => (post_date_settings)
1305  });
1306  
1307  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
1308  var build_module_post_excerpt_namespaceObject = {};
1309  __webpack_require__.r(build_module_post_excerpt_namespaceObject);
1310  __webpack_require__.d(build_module_post_excerpt_namespaceObject, {
1311    init: () => (post_excerpt_init),
1312    metadata: () => (post_excerpt_metadata),
1313    name: () => (post_excerpt_name),
1314    settings: () => (post_excerpt_settings)
1315  });
1316  
1317  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
1318  var build_module_post_featured_image_namespaceObject = {};
1319  __webpack_require__.r(build_module_post_featured_image_namespaceObject);
1320  __webpack_require__.d(build_module_post_featured_image_namespaceObject, {
1321    init: () => (post_featured_image_init),
1322    metadata: () => (post_featured_image_metadata),
1323    name: () => (post_featured_image_name),
1324    settings: () => (post_featured_image_settings)
1325  });
1326  
1327  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
1328  var post_navigation_link_namespaceObject = {};
1329  __webpack_require__.r(post_navigation_link_namespaceObject);
1330  __webpack_require__.d(post_navigation_link_namespaceObject, {
1331    init: () => (post_navigation_link_init),
1332    metadata: () => (post_navigation_link_metadata),
1333    name: () => (post_navigation_link_name),
1334    settings: () => (post_navigation_link_settings)
1335  });
1336  
1337  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-template/index.js
1338  var post_template_namespaceObject = {};
1339  __webpack_require__.r(post_template_namespaceObject);
1340  __webpack_require__.d(post_template_namespaceObject, {
1341    init: () => (post_template_init),
1342    metadata: () => (post_template_metadata),
1343    name: () => (post_template_name),
1344    settings: () => (post_template_settings)
1345  });
1346  
1347  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
1348  var build_module_post_terms_namespaceObject = {};
1349  __webpack_require__.r(build_module_post_terms_namespaceObject);
1350  __webpack_require__.d(build_module_post_terms_namespaceObject, {
1351    init: () => (post_terms_init),
1352    metadata: () => (post_terms_metadata),
1353    name: () => (post_terms_name),
1354    settings: () => (post_terms_settings)
1355  });
1356  
1357  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-time-to-read/index.js
1358  var post_time_to_read_namespaceObject = {};
1359  __webpack_require__.r(post_time_to_read_namespaceObject);
1360  __webpack_require__.d(post_time_to_read_namespaceObject, {
1361    init: () => (post_time_to_read_init),
1362    metadata: () => (post_time_to_read_metadata),
1363    name: () => (post_time_to_read_name),
1364    settings: () => (post_time_to_read_settings)
1365  });
1366  
1367  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-title/index.js
1368  var post_title_namespaceObject = {};
1369  __webpack_require__.r(post_title_namespaceObject);
1370  __webpack_require__.d(post_title_namespaceObject, {
1371    init: () => (post_title_init),
1372    metadata: () => (post_title_metadata),
1373    name: () => (post_title_name),
1374    settings: () => (post_title_settings)
1375  });
1376  
1377  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
1378  var build_module_preformatted_namespaceObject = {};
1379  __webpack_require__.r(build_module_preformatted_namespaceObject);
1380  __webpack_require__.d(build_module_preformatted_namespaceObject, {
1381    init: () => (preformatted_init),
1382    metadata: () => (preformatted_metadata),
1383    name: () => (preformatted_name),
1384    settings: () => (preformatted_settings)
1385  });
1386  
1387  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
1388  var build_module_pullquote_namespaceObject = {};
1389  __webpack_require__.r(build_module_pullquote_namespaceObject);
1390  __webpack_require__.d(build_module_pullquote_namespaceObject, {
1391    init: () => (pullquote_init),
1392    metadata: () => (pullquote_metadata),
1393    name: () => (pullquote_name),
1394    settings: () => (pullquote_settings)
1395  });
1396  
1397  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query/index.js
1398  var query_namespaceObject = {};
1399  __webpack_require__.r(query_namespaceObject);
1400  __webpack_require__.d(query_namespaceObject, {
1401    init: () => (query_init),
1402    metadata: () => (query_metadata),
1403    name: () => (query_name),
1404    settings: () => (query_settings)
1405  });
1406  
1407  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
1408  var query_no_results_namespaceObject = {};
1409  __webpack_require__.r(query_no_results_namespaceObject);
1410  __webpack_require__.d(query_no_results_namespaceObject, {
1411    init: () => (query_no_results_init),
1412    metadata: () => (query_no_results_metadata),
1413    name: () => (query_no_results_name),
1414    settings: () => (query_no_results_settings)
1415  });
1416  
1417  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
1418  var build_module_query_pagination_namespaceObject = {};
1419  __webpack_require__.r(build_module_query_pagination_namespaceObject);
1420  __webpack_require__.d(build_module_query_pagination_namespaceObject, {
1421    init: () => (query_pagination_init),
1422    metadata: () => (query_pagination_metadata),
1423    name: () => (query_pagination_name),
1424    settings: () => (query_pagination_settings)
1425  });
1426  
1427  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
1428  var build_module_query_pagination_next_namespaceObject = {};
1429  __webpack_require__.r(build_module_query_pagination_next_namespaceObject);
1430  __webpack_require__.d(build_module_query_pagination_next_namespaceObject, {
1431    init: () => (query_pagination_next_init),
1432    metadata: () => (query_pagination_next_metadata),
1433    name: () => (query_pagination_next_name),
1434    settings: () => (query_pagination_next_settings)
1435  });
1436  
1437  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
1438  var build_module_query_pagination_numbers_namespaceObject = {};
1439  __webpack_require__.r(build_module_query_pagination_numbers_namespaceObject);
1440  __webpack_require__.d(build_module_query_pagination_numbers_namespaceObject, {
1441    init: () => (query_pagination_numbers_init),
1442    metadata: () => (query_pagination_numbers_metadata),
1443    name: () => (query_pagination_numbers_name),
1444    settings: () => (query_pagination_numbers_settings)
1445  });
1446  
1447  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
1448  var build_module_query_pagination_previous_namespaceObject = {};
1449  __webpack_require__.r(build_module_query_pagination_previous_namespaceObject);
1450  __webpack_require__.d(build_module_query_pagination_previous_namespaceObject, {
1451    init: () => (query_pagination_previous_init),
1452    metadata: () => (query_pagination_previous_metadata),
1453    name: () => (query_pagination_previous_name),
1454    settings: () => (query_pagination_previous_settings)
1455  });
1456  
1457  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-title/index.js
1458  var query_title_namespaceObject = {};
1459  __webpack_require__.r(query_title_namespaceObject);
1460  __webpack_require__.d(query_title_namespaceObject, {
1461    init: () => (query_title_init),
1462    metadata: () => (query_title_metadata),
1463    name: () => (query_title_name),
1464    settings: () => (query_title_settings)
1465  });
1466  
1467  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/quote/index.js
1468  var build_module_quote_namespaceObject = {};
1469  __webpack_require__.r(build_module_quote_namespaceObject);
1470  __webpack_require__.d(build_module_quote_namespaceObject, {
1471    init: () => (quote_init),
1472    metadata: () => (quote_metadata),
1473    name: () => (quote_name),
1474    settings: () => (quote_settings)
1475  });
1476  
1477  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/block/index.js
1478  var block_namespaceObject = {};
1479  __webpack_require__.r(block_namespaceObject);
1480  __webpack_require__.d(block_namespaceObject, {
1481    init: () => (block_init),
1482    metadata: () => (block_metadata),
1483    name: () => (block_name),
1484    settings: () => (block_settings)
1485  });
1486  
1487  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
1488  var read_more_namespaceObject = {};
1489  __webpack_require__.r(read_more_namespaceObject);
1490  __webpack_require__.d(read_more_namespaceObject, {
1491    init: () => (read_more_init),
1492    metadata: () => (read_more_metadata),
1493    name: () => (read_more_name),
1494    settings: () => (read_more_settings)
1495  });
1496  
1497  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/rss/index.js
1498  var build_module_rss_namespaceObject = {};
1499  __webpack_require__.r(build_module_rss_namespaceObject);
1500  __webpack_require__.d(build_module_rss_namespaceObject, {
1501    init: () => (rss_init),
1502    metadata: () => (rss_metadata),
1503    name: () => (rss_name),
1504    settings: () => (rss_settings)
1505  });
1506  
1507  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/search/index.js
1508  var build_module_search_namespaceObject = {};
1509  __webpack_require__.r(build_module_search_namespaceObject);
1510  __webpack_require__.d(build_module_search_namespaceObject, {
1511    init: () => (search_init),
1512    metadata: () => (search_metadata),
1513    name: () => (search_name),
1514    settings: () => (search_settings)
1515  });
1516  
1517  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/separator/index.js
1518  var build_module_separator_namespaceObject = {};
1519  __webpack_require__.r(build_module_separator_namespaceObject);
1520  __webpack_require__.d(build_module_separator_namespaceObject, {
1521    init: () => (separator_init),
1522    metadata: () => (separator_metadata),
1523    name: () => (separator_name),
1524    settings: () => (separator_settings)
1525  });
1526  
1527  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
1528  var build_module_shortcode_namespaceObject = {};
1529  __webpack_require__.r(build_module_shortcode_namespaceObject);
1530  __webpack_require__.d(build_module_shortcode_namespaceObject, {
1531    init: () => (shortcode_init),
1532    metadata: () => (shortcode_metadata),
1533    name: () => (shortcode_name),
1534    settings: () => (shortcode_settings)
1535  });
1536  
1537  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
1538  var build_module_site_logo_namespaceObject = {};
1539  __webpack_require__.r(build_module_site_logo_namespaceObject);
1540  __webpack_require__.d(build_module_site_logo_namespaceObject, {
1541    init: () => (site_logo_init),
1542    metadata: () => (site_logo_metadata),
1543    name: () => (site_logo_name),
1544    settings: () => (site_logo_settings)
1545  });
1546  
1547  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
1548  var site_tagline_namespaceObject = {};
1549  __webpack_require__.r(site_tagline_namespaceObject);
1550  __webpack_require__.d(site_tagline_namespaceObject, {
1551    init: () => (site_tagline_init),
1552    metadata: () => (site_tagline_metadata),
1553    name: () => (site_tagline_name),
1554    settings: () => (site_tagline_settings)
1555  });
1556  
1557  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
1558  var site_title_namespaceObject = {};
1559  __webpack_require__.r(site_title_namespaceObject);
1560  __webpack_require__.d(site_title_namespaceObject, {
1561    init: () => (site_title_init),
1562    metadata: () => (site_title_metadata),
1563    name: () => (site_title_name),
1564    settings: () => (site_title_settings)
1565  });
1566  
1567  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
1568  var social_link_namespaceObject = {};
1569  __webpack_require__.r(social_link_namespaceObject);
1570  __webpack_require__.d(social_link_namespaceObject, {
1571    init: () => (social_link_init),
1572    metadata: () => (social_link_metadata),
1573    name: () => (social_link_name),
1574    settings: () => (social_link_settings)
1575  });
1576  
1577  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
1578  var social_links_namespaceObject = {};
1579  __webpack_require__.r(social_links_namespaceObject);
1580  __webpack_require__.d(social_links_namespaceObject, {
1581    init: () => (social_links_init),
1582    metadata: () => (social_links_metadata),
1583    name: () => (social_links_name),
1584    settings: () => (social_links_settings)
1585  });
1586  
1587  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
1588  var spacer_namespaceObject = {};
1589  __webpack_require__.r(spacer_namespaceObject);
1590  __webpack_require__.d(spacer_namespaceObject, {
1591    init: () => (spacer_init),
1592    metadata: () => (spacer_metadata),
1593    name: () => (spacer_name),
1594    settings: () => (spacer_settings)
1595  });
1596  
1597  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table/index.js
1598  var build_module_table_namespaceObject = {};
1599  __webpack_require__.r(build_module_table_namespaceObject);
1600  __webpack_require__.d(build_module_table_namespaceObject, {
1601    init: () => (table_init),
1602    metadata: () => (table_metadata),
1603    name: () => (table_name),
1604    settings: () => (table_settings)
1605  });
1606  
1607  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table-of-contents/index.js
1608  var build_module_table_of_contents_namespaceObject = {};
1609  __webpack_require__.r(build_module_table_of_contents_namespaceObject);
1610  __webpack_require__.d(build_module_table_of_contents_namespaceObject, {
1611    init: () => (table_of_contents_init),
1612    metadata: () => (table_of_contents_metadata),
1613    name: () => (table_of_contents_name),
1614    settings: () => (table_of_contents_settings)
1615  });
1616  
1617  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
1618  var tag_cloud_namespaceObject = {};
1619  __webpack_require__.r(tag_cloud_namespaceObject);
1620  __webpack_require__.d(tag_cloud_namespaceObject, {
1621    init: () => (tag_cloud_init),
1622    metadata: () => (tag_cloud_metadata),
1623    name: () => (tag_cloud_name),
1624    settings: () => (tag_cloud_settings)
1625  });
1626  
1627  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
1628  var template_part_namespaceObject = {};
1629  __webpack_require__.r(template_part_namespaceObject);
1630  __webpack_require__.d(template_part_namespaceObject, {
1631    init: () => (template_part_init),
1632    metadata: () => (template_part_metadata),
1633    name: () => (template_part_name),
1634    settings: () => (template_part_settings)
1635  });
1636  
1637  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
1638  var build_module_term_description_namespaceObject = {};
1639  __webpack_require__.r(build_module_term_description_namespaceObject);
1640  __webpack_require__.d(build_module_term_description_namespaceObject, {
1641    init: () => (term_description_init),
1642    metadata: () => (term_description_metadata),
1643    name: () => (term_description_name),
1644    settings: () => (term_description_settings)
1645  });
1646  
1647  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
1648  var text_columns_namespaceObject = {};
1649  __webpack_require__.r(text_columns_namespaceObject);
1650  __webpack_require__.d(text_columns_namespaceObject, {
1651    init: () => (text_columns_init),
1652    metadata: () => (text_columns_metadata),
1653    name: () => (text_columns_name),
1654    settings: () => (text_columns_settings)
1655  });
1656  
1657  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/verse/index.js
1658  var build_module_verse_namespaceObject = {};
1659  __webpack_require__.r(build_module_verse_namespaceObject);
1660  __webpack_require__.d(build_module_verse_namespaceObject, {
1661    init: () => (verse_init),
1662    metadata: () => (verse_metadata),
1663    name: () => (verse_name),
1664    settings: () => (verse_settings)
1665  });
1666  
1667  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/video/index.js
1668  var build_module_video_namespaceObject = {};
1669  __webpack_require__.r(build_module_video_namespaceObject);
1670  __webpack_require__.d(build_module_video_namespaceObject, {
1671    init: () => (video_init),
1672    metadata: () => (video_metadata),
1673    name: () => (video_name),
1674    settings: () => (video_settings)
1675  });
1676  
1677  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/footnotes/index.js
1678  var footnotes_namespaceObject = {};
1679  __webpack_require__.r(footnotes_namespaceObject);
1680  __webpack_require__.d(footnotes_namespaceObject, {
1681    init: () => (footnotes_init),
1682    metadata: () => (footnotes_metadata),
1683    name: () => (footnotes_name),
1684    settings: () => (footnotes_settings)
1685  });
1686  
1687  ;// CONCATENATED MODULE: external ["wp","blocks"]
1688  const external_wp_blocks_namespaceObject = window["wp"]["blocks"];
1689  ;// CONCATENATED MODULE: external ["wp","primitives"]
1690  const external_wp_primitives_namespaceObject = window["wp"]["primitives"];
1691  ;// CONCATENATED MODULE: external "ReactJSXRuntime"
1692  const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"];
1693  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive.js
1694  /**
1695   * WordPress dependencies
1696   */
1697  
1698  
1699  const archive = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
1700    viewBox: "0 0 24 24",
1701    xmlns: "http://www.w3.org/2000/svg",
1702    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
1703      fillRule: "evenodd",
1704      clipRule: "evenodd",
1705      d: "M11.934 7.406a1 1 0 0 0 .914.594H19a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5h5.764a.5.5 0 0 1 .447.276l.723 1.63Zm1.064-1.216a.5.5 0 0 0 .462.31H19a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.764a2 2 0 0 1 1.789 1.106l.445 1.084ZM8.5 10.5h7V12h-7v-1.5Zm7 3.5h-7v1.5h7V14Z"
1706    })
1707  });
1708  /* harmony default export */ const library_archive = (archive);
1709  
1710  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/init-block.js
1711  /**
1712   * WordPress dependencies
1713   */
1714  
1715  
1716  /**
1717   * Function to register an individual block.
1718   *
1719   * @param {Object} block The block to be registered.
1720   *
1721   * @return {WPBlockType | undefined} The block, if it has been successfully registered;
1722   *                        otherwise `undefined`.
1723   */
1724  function initBlock(block) {
1725    if (!block) {
1726      return;
1727    }
1728    const {
1729      metadata,
1730      settings,
1731      name
1732    } = block;
1733    return (0,external_wp_blocks_namespaceObject.registerBlockType)({
1734      name,
1735      ...metadata
1736    }, settings);
1737  }
1738  
1739  ;// CONCATENATED MODULE: external ["wp","components"]
1740  const external_wp_components_namespaceObject = window["wp"]["components"];
1741  ;// CONCATENATED MODULE: external ["wp","i18n"]
1742  const external_wp_i18n_namespaceObject = window["wp"]["i18n"];
1743  ;// CONCATENATED MODULE: external ["wp","blockEditor"]
1744  const external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
1745  ;// CONCATENATED MODULE: external ["wp","serverSideRender"]
1746  const external_wp_serverSideRender_namespaceObject = window["wp"]["serverSideRender"];
1747  var external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_namespaceObject);
1748  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/edit.js
1749  /**
1750   * WordPress dependencies
1751   */
1752  
1753  
1754  
1755  
1756  
1757  
1758  
1759  function ArchivesEdit({
1760    attributes,
1761    setAttributes
1762  }) {
1763    const {
1764      showLabel,
1765      showPostCounts,
1766      displayAsDropdown,
1767      type
1768    } = attributes;
1769    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
1770      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
1771        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
1772          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
1773          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
1774            __nextHasNoMarginBottom: true,
1775            label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
1776            checked: displayAsDropdown,
1777            onChange: () => setAttributes({
1778              displayAsDropdown: !displayAsDropdown
1779            })
1780          }), displayAsDropdown && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
1781            __nextHasNoMarginBottom: true,
1782            label: (0,external_wp_i18n_namespaceObject.__)('Show label'),
1783            checked: showLabel,
1784            onChange: () => setAttributes({
1785              showLabel: !showLabel
1786            })
1787          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
1788            __nextHasNoMarginBottom: true,
1789            label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
1790            checked: showPostCounts,
1791            onChange: () => setAttributes({
1792              showPostCounts: !showPostCounts
1793            })
1794          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
1795            __next40pxDefaultSize: true,
1796            __nextHasNoMarginBottom: true,
1797            label: (0,external_wp_i18n_namespaceObject.__)('Group by'),
1798            options: [{
1799              label: (0,external_wp_i18n_namespaceObject.__)('Year'),
1800              value: 'yearly'
1801            }, {
1802              label: (0,external_wp_i18n_namespaceObject.__)('Month'),
1803              value: 'monthly'
1804            }, {
1805              label: (0,external_wp_i18n_namespaceObject.__)('Week'),
1806              value: 'weekly'
1807            }, {
1808              label: (0,external_wp_i18n_namespaceObject.__)('Day'),
1809              value: 'daily'
1810            }],
1811            value: type,
1812            onChange: value => setAttributes({
1813              type: value
1814            })
1815          })]
1816        })
1817      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
1818        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
1819        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
1820          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
1821            block: "core/archives",
1822            skipBlockSupportAttributes: true,
1823            attributes: attributes
1824          })
1825        })
1826      })]
1827    });
1828  }
1829  
1830  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/index.js
1831  /**
1832   * WordPress dependencies
1833   */
1834  
1835  
1836  /**
1837   * Internal dependencies
1838   */
1839  
1840  const metadata = {
1841    $schema: "https://schemas.wp.org/trunk/block.json",
1842    apiVersion: 3,
1843    name: "core/archives",
1844    title: "Archives",
1845    category: "widgets",
1846    description: "Display a date archive of your posts.",
1847    textdomain: "default",
1848    attributes: {
1849      displayAsDropdown: {
1850        type: "boolean",
1851        "default": false
1852      },
1853      showLabel: {
1854        type: "boolean",
1855        "default": true
1856      },
1857      showPostCounts: {
1858        type: "boolean",
1859        "default": false
1860      },
1861      type: {
1862        type: "string",
1863        "default": "monthly"
1864      }
1865    },
1866    supports: {
1867      align: true,
1868      html: false,
1869      spacing: {
1870        margin: true,
1871        padding: true,
1872        __experimentalDefaultControls: {
1873          margin: false,
1874          padding: false
1875        }
1876      },
1877      typography: {
1878        fontSize: true,
1879        lineHeight: true,
1880        __experimentalFontFamily: true,
1881        __experimentalFontWeight: true,
1882        __experimentalFontStyle: true,
1883        __experimentalTextTransform: true,
1884        __experimentalTextDecoration: true,
1885        __experimentalLetterSpacing: true,
1886        __experimentalDefaultControls: {
1887          fontSize: true
1888        }
1889      },
1890      interactivity: {
1891        clientNavigation: true
1892      }
1893    },
1894    editorStyle: "wp-block-archives-editor"
1895  };
1896  
1897  const {
1898    name: archives_name
1899  } = metadata;
1900  
1901  const settings = {
1902    icon: library_archive,
1903    example: {},
1904    edit: ArchivesEdit
1905  };
1906  const init = () => initBlock({
1907    name: archives_name,
1908    metadata,
1909    settings
1910  });
1911  
1912  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js
1913  /**
1914   * WordPress dependencies
1915   */
1916  
1917  
1918  const commentAuthorAvatar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
1919    xmlns: "http://www.w3.org/2000/svg",
1920    viewBox: "0 0 24 24",
1921    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
1922      fillRule: "evenodd",
1923      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",
1924      clipRule: "evenodd"
1925    })
1926  });
1927  /* harmony default export */ const comment_author_avatar = (commentAuthorAvatar);
1928  
1929  ;// CONCATENATED MODULE: ./node_modules/clsx/dist/clsx.mjs
1930  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}/* harmony default export */ const dist_clsx = (clsx);
1931  ;// CONCATENATED MODULE: external ["wp","url"]
1932  const external_wp_url_namespaceObject = window["wp"]["url"];
1933  ;// CONCATENATED MODULE: external ["wp","coreData"]
1934  const external_wp_coreData_namespaceObject = window["wp"]["coreData"];
1935  ;// CONCATENATED MODULE: external ["wp","data"]
1936  const external_wp_data_namespaceObject = window["wp"]["data"];
1937  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/hooks.js
1938  /**
1939   * WordPress dependencies
1940   */
1941  
1942  
1943  
1944  
1945  function getAvatarSizes(sizes) {
1946    const minSize = sizes ? sizes[0] : 24;
1947    const maxSize = sizes ? sizes[sizes.length - 1] : 96;
1948    const maxSizeBuffer = Math.floor(maxSize * 2.5);
1949    return {
1950      minSize,
1951      maxSize: maxSizeBuffer
1952    };
1953  }
1954  function useDefaultAvatar() {
1955    const {
1956      avatarURL: defaultAvatarUrl
1957    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
1958      const {
1959        getSettings
1960      } = select(external_wp_blockEditor_namespaceObject.store);
1961      const {
1962        __experimentalDiscussionSettings
1963      } = getSettings();
1964      return __experimentalDiscussionSettings;
1965    });
1966    return defaultAvatarUrl;
1967  }
1968  function useCommentAvatar({
1969    commentId
1970  }) {
1971    const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId);
1972    const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId);
1973    const avatarUrls = avatars ? Object.values(avatars) : null;
1974    const sizes = avatars ? Object.keys(avatars) : null;
1975    const {
1976      minSize,
1977      maxSize
1978    } = getAvatarSizes(sizes);
1979    const defaultAvatar = useDefaultAvatar();
1980    return {
1981      src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
1982      minSize,
1983      maxSize,
1984      alt: authorName ?
1985      // translators: %s: Author name.
1986      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorName) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
1987    };
1988  }
1989  function useUserAvatar({
1990    userId,
1991    postId,
1992    postType
1993  }) {
1994    const {
1995      authorDetails
1996    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
1997      const {
1998        getEditedEntityRecord,
1999        getUser
2000      } = select(external_wp_coreData_namespaceObject.store);
2001      if (userId) {
2002        return {
2003          authorDetails: getUser(userId)
2004        };
2005      }
2006      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
2007      return {
2008        authorDetails: _authorId ? getUser(_authorId) : null
2009      };
2010    }, [postType, postId, userId]);
2011    const avatarUrls = authorDetails?.avatar_urls ? Object.values(authorDetails.avatar_urls) : null;
2012    const sizes = authorDetails?.avatar_urls ? Object.keys(authorDetails.avatar_urls) : null;
2013    const {
2014      minSize,
2015      maxSize
2016    } = getAvatarSizes(sizes);
2017    const defaultAvatar = useDefaultAvatar();
2018    return {
2019      src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
2020      minSize,
2021      maxSize,
2022      alt: authorDetails ?
2023      // translators: %s: Author name.
2024      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorDetails?.name) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
2025    };
2026  }
2027  
2028  ;// CONCATENATED MODULE: external ["wp","element"]
2029  const external_wp_element_namespaceObject = window["wp"]["element"];
2030  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/user-control.js
2031  /**
2032   * WordPress dependencies
2033   */
2034  
2035  
2036  
2037  
2038  
2039  
2040  const AUTHORS_QUERY = {
2041    who: 'authors',
2042    per_page: -1,
2043    _fields: 'id,name',
2044    context: 'view'
2045  };
2046  function UserControl({
2047    value,
2048    onChange
2049  }) {
2050    const [filteredAuthorsList, setFilteredAuthorsList] = (0,external_wp_element_namespaceObject.useState)();
2051    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
2052      const {
2053        getUsers
2054      } = select(external_wp_coreData_namespaceObject.store);
2055      return getUsers(AUTHORS_QUERY);
2056    }, []);
2057    if (!authorsList) {
2058      return null;
2059    }
2060    const options = authorsList.map(author => {
2061      return {
2062        label: author.name,
2063        value: author.id
2064      };
2065    });
2066    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
2067      __next40pxDefaultSize: true,
2068      __nextHasNoMarginBottom: true,
2069      label: (0,external_wp_i18n_namespaceObject.__)('User'),
2070      help: (0,external_wp_i18n_namespaceObject.__)('Select the avatar user to display, if it is blank it will use the post/page author.'),
2071      value: value,
2072      onChange: onChange,
2073      options: filteredAuthorsList || options,
2074      onFilterValueChange: inputValue => setFilteredAuthorsList(options.filter(option => option.label.toLowerCase().startsWith(inputValue.toLowerCase())))
2075    });
2076  }
2077  /* harmony default export */ const user_control = (UserControl);
2078  
2079  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/edit.js
2080  /**
2081   * External dependencies
2082   */
2083  
2084  
2085  /**
2086   * WordPress dependencies
2087   */
2088  
2089  
2090  
2091  
2092  
2093  /**
2094   * Internal dependencies
2095   */
2096  
2097  
2098  
2099  
2100  
2101  const AvatarInspectorControls = ({
2102    setAttributes,
2103    avatar,
2104    attributes,
2105    selectUser
2106  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
2107    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
2108      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
2109      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
2110        __nextHasNoMarginBottom: true,
2111        __next40pxDefaultSize: true,
2112        label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
2113        onChange: newSize => setAttributes({
2114          size: newSize
2115        }),
2116        min: avatar.minSize,
2117        max: avatar.maxSize,
2118        initialPosition: attributes?.size,
2119        value: attributes?.size
2120      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
2121        __nextHasNoMarginBottom: true,
2122        label: (0,external_wp_i18n_namespaceObject.__)('Link to user profile'),
2123        onChange: () => setAttributes({
2124          isLink: !attributes.isLink
2125        }),
2126        checked: attributes.isLink
2127      }), attributes.isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
2128        __nextHasNoMarginBottom: true,
2129        label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
2130        onChange: value => setAttributes({
2131          linkTarget: value ? '_blank' : '_self'
2132        }),
2133        checked: attributes.linkTarget === '_blank'
2134      }), selectUser && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(user_control, {
2135        value: attributes?.userId,
2136        onChange: value => {
2137          setAttributes({
2138            userId: value
2139          });
2140        }
2141      })]
2142    })
2143  });
2144  const ResizableAvatar = ({
2145    setAttributes,
2146    attributes,
2147    avatar,
2148    blockProps,
2149    isSelected
2150  }) => {
2151    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
2152    const doubledSizedSrc = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(avatar?.src, ['s']), {
2153      s: attributes?.size * 2
2154    });
2155    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
2156      ...blockProps,
2157      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
2158        size: {
2159          width: attributes.size,
2160          height: attributes.size
2161        },
2162        showHandle: isSelected,
2163        onResizeStop: (event, direction, elt, delta) => {
2164          setAttributes({
2165            size: parseInt(attributes.size + (delta.height || delta.width), 10)
2166          });
2167        },
2168        lockAspectRatio: true,
2169        enable: {
2170          top: false,
2171          right: !(0,external_wp_i18n_namespaceObject.isRTL)(),
2172          bottom: true,
2173          left: (0,external_wp_i18n_namespaceObject.isRTL)()
2174        },
2175        minWidth: avatar.minSize,
2176        maxWidth: avatar.maxSize,
2177        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
2178          src: doubledSizedSrc,
2179          alt: avatar.alt,
2180          className: dist_clsx('avatar', 'avatar-' + attributes.size, 'photo', 'wp-block-avatar__image', borderProps.className),
2181          style: borderProps.style
2182        })
2183      })
2184    });
2185  };
2186  const CommentEdit = ({
2187    attributes,
2188    context,
2189    setAttributes,
2190    isSelected
2191  }) => {
2192    const {
2193      commentId
2194    } = context;
2195    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
2196    const avatar = useCommentAvatar({
2197      commentId
2198    });
2199    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
2200      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AvatarInspectorControls, {
2201        avatar: avatar,
2202        setAttributes: setAttributes,
2203        attributes: attributes,
2204        selectUser: false
2205      }), attributes.isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
2206        href: "#avatar-pseudo-link",
2207        className: "wp-block-avatar__link",
2208        onClick: event => event.preventDefault(),
2209        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2210          attributes: attributes,
2211          avatar: avatar,
2212          blockProps: blockProps,
2213          isSelected: isSelected,
2214          setAttributes: setAttributes
2215        })
2216      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2217        attributes: attributes,
2218        avatar: avatar,
2219        blockProps: blockProps,
2220        isSelected: isSelected,
2221        setAttributes: setAttributes
2222      })]
2223    });
2224  };
2225  const UserEdit = ({
2226    attributes,
2227    context,
2228    setAttributes,
2229    isSelected
2230  }) => {
2231    const {
2232      postId,
2233      postType
2234    } = context;
2235    const avatar = useUserAvatar({
2236      userId: attributes?.userId,
2237      postId,
2238      postType
2239    });
2240    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
2241    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
2242      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AvatarInspectorControls, {
2243        selectUser: true,
2244        attributes: attributes,
2245        avatar: avatar,
2246        setAttributes: setAttributes
2247      }), attributes.isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
2248        href: "#avatar-pseudo-link",
2249        className: "wp-block-avatar__link",
2250        onClick: event => event.preventDefault(),
2251        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2252          attributes: attributes,
2253          avatar: avatar,
2254          blockProps: blockProps,
2255          isSelected: isSelected,
2256          setAttributes: setAttributes
2257        })
2258      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2259        attributes: attributes,
2260        avatar: avatar,
2261        blockProps: blockProps,
2262        isSelected: isSelected,
2263        setAttributes: setAttributes
2264      })]
2265    });
2266  };
2267  function Edit(props) {
2268    // 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`).
2269    if (props?.context?.commentId || props?.context?.commentId === null) {
2270      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentEdit, {
2271        ...props
2272      });
2273    }
2274    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(UserEdit, {
2275      ...props
2276    });
2277  }
2278  
2279  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/index.js
2280  /**
2281   * WordPress dependencies
2282   */
2283  
2284  
2285  /**
2286   * Internal dependencies
2287   */
2288  
2289  const avatar_metadata = {
2290    $schema: "https://schemas.wp.org/trunk/block.json",
2291    apiVersion: 3,
2292    name: "core/avatar",
2293    title: "Avatar",
2294    category: "theme",
2295    description: "Add a user\u2019s avatar.",
2296    textdomain: "default",
2297    attributes: {
2298      userId: {
2299        type: "number"
2300      },
2301      size: {
2302        type: "number",
2303        "default": 96
2304      },
2305      isLink: {
2306        type: "boolean",
2307        "default": false
2308      },
2309      linkTarget: {
2310        type: "string",
2311        "default": "_self"
2312      }
2313    },
2314    usesContext: ["postType", "postId", "commentId"],
2315    supports: {
2316      html: false,
2317      align: true,
2318      alignWide: false,
2319      spacing: {
2320        margin: true,
2321        padding: true,
2322        __experimentalDefaultControls: {
2323          margin: false,
2324          padding: false
2325        }
2326      },
2327      __experimentalBorder: {
2328        __experimentalSkipSerialization: true,
2329        radius: true,
2330        width: true,
2331        color: true,
2332        style: true,
2333        __experimentalDefaultControls: {
2334          radius: true
2335        }
2336      },
2337      color: {
2338        text: false,
2339        background: false,
2340        __experimentalDuotone: "img"
2341      },
2342      interactivity: {
2343        clientNavigation: true
2344      }
2345    },
2346    selectors: {
2347      border: ".wp-block-avatar img"
2348    },
2349    editorStyle: "wp-block-avatar-editor",
2350    style: "wp-block-avatar"
2351  };
2352  
2353  const {
2354    name: avatar_name
2355  } = avatar_metadata;
2356  
2357  const avatar_settings = {
2358    icon: comment_author_avatar,
2359    edit: Edit
2360  };
2361  const avatar_init = () => initBlock({
2362    name: avatar_name,
2363    metadata: avatar_metadata,
2364    settings: avatar_settings
2365  });
2366  
2367  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/audio.js
2368  /**
2369   * WordPress dependencies
2370   */
2371  
2372  
2373  const audio = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
2374    viewBox: "0 0 24 24",
2375    xmlns: "http://www.w3.org/2000/svg",
2376    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
2377      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"
2378    })
2379  });
2380  /* harmony default export */ const library_audio = (audio);
2381  
2382  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/deprecated.js
2383  /**
2384   * WordPress dependencies
2385   */
2386  
2387  
2388  
2389  /* harmony default export */ const deprecated = ([{
2390    attributes: {
2391      src: {
2392        type: 'string',
2393        source: 'attribute',
2394        selector: 'audio',
2395        attribute: 'src'
2396      },
2397      caption: {
2398        type: 'string',
2399        source: 'html',
2400        selector: 'figcaption'
2401      },
2402      id: {
2403        type: 'number'
2404      },
2405      autoplay: {
2406        type: 'boolean',
2407        source: 'attribute',
2408        selector: 'audio',
2409        attribute: 'autoplay'
2410      },
2411      loop: {
2412        type: 'boolean',
2413        source: 'attribute',
2414        selector: 'audio',
2415        attribute: 'loop'
2416      },
2417      preload: {
2418        type: 'string',
2419        source: 'attribute',
2420        selector: 'audio',
2421        attribute: 'preload'
2422      }
2423    },
2424    supports: {
2425      align: true
2426    },
2427    save({
2428      attributes
2429    }) {
2430      const {
2431        autoplay,
2432        caption,
2433        loop,
2434        preload,
2435        src
2436      } = attributes;
2437      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
2438        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("audio", {
2439          controls: "controls",
2440          src: src,
2441          autoPlay: autoplay,
2442          loop: loop,
2443          preload: preload
2444        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
2445          tagName: "figcaption",
2446          value: caption
2447        })]
2448      });
2449    }
2450  }]);
2451  
2452  ;// CONCATENATED MODULE: external ["wp","blob"]
2453  const external_wp_blob_namespaceObject = window["wp"]["blob"];
2454  ;// CONCATENATED MODULE: external ["wp","notices"]
2455  const external_wp_notices_namespaceObject = window["wp"]["notices"];
2456  ;// CONCATENATED MODULE: ./node_modules/memize/dist/index.js
2457  /**
2458   * Memize options object.
2459   *
2460   * @typedef MemizeOptions
2461   *
2462   * @property {number} [maxSize] Maximum size of the cache.
2463   */
2464  
2465  /**
2466   * Internal cache entry.
2467   *
2468   * @typedef MemizeCacheNode
2469   *
2470   * @property {?MemizeCacheNode|undefined} [prev] Previous node.
2471   * @property {?MemizeCacheNode|undefined} [next] Next node.
2472   * @property {Array<*>}                   args   Function arguments for cache
2473   *                                               entry.
2474   * @property {*}                          val    Function result.
2475   */
2476  
2477  /**
2478   * Properties of the enhanced function for controlling cache.
2479   *
2480   * @typedef MemizeMemoizedFunction
2481   *
2482   * @property {()=>void} clear Clear the cache.
2483   */
2484  
2485  /**
2486   * Accepts a function to be memoized, and returns a new memoized function, with
2487   * optional options.
2488   *
2489   * @template {(...args: any[]) => any} F
2490   *
2491   * @param {F}             fn        Function to memoize.
2492   * @param {MemizeOptions} [options] Options object.
2493   *
2494   * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function.
2495   */
2496  function memize(fn, options) {
2497      var size = 0;
2498  
2499      /** @type {?MemizeCacheNode|undefined} */
2500      var head;
2501  
2502      /** @type {?MemizeCacheNode|undefined} */
2503      var tail;
2504  
2505      options = options || {};
2506  
2507  	function memoized(/* ...args */) {
2508          var node = head,
2509              len = arguments.length,
2510              args,
2511              i;
2512  
2513          searchCache: while (node) {
2514              // Perform a shallow equality test to confirm that whether the node
2515              // under test is a candidate for the arguments passed. Two arrays
2516              // are shallowly equal if their length matches and each entry is
2517              // strictly equal between the two sets. Avoid abstracting to a
2518              // function which could incur an arguments leaking deoptimization.
2519  
2520              // Check whether node arguments match arguments length
2521              if (node.args.length !== arguments.length) {
2522                  node = node.next;
2523                  continue;
2524              }
2525  
2526              // Check whether node arguments match arguments values
2527              for (i = 0; i < len; i++) {
2528                  if (node.args[i] !== arguments[i]) {
2529                      node = node.next;
2530                      continue searchCache;
2531                  }
2532              }
2533  
2534              // At this point we can assume we've found a match
2535  
2536              // Surface matched node to head if not already
2537              if (node !== head) {
2538                  // As tail, shift to previous. Must only shift if not also
2539                  // head, since if both head and tail, there is no previous.
2540                  if (node === tail) {
2541                      tail = node.prev;
2542                  }
2543  
2544                  // Adjust siblings to point to each other. If node was tail,
2545                  // this also handles new tail's empty `next` assignment.
2546                  /** @type {MemizeCacheNode} */ (node.prev).next = node.next;
2547                  if (node.next) {
2548                      node.next.prev = node.prev;
2549                  }
2550  
2551                  node.next = head;
2552                  node.prev = null;
2553                  /** @type {MemizeCacheNode} */ (head).prev = node;
2554                  head = node;
2555              }
2556  
2557              // Return immediately
2558              return node.val;
2559          }
2560  
2561          // No cached value found. Continue to insertion phase:
2562  
2563          // Create a copy of arguments (avoid leaking deoptimization)
2564          args = new Array(len);
2565          for (i = 0; i < len; i++) {
2566              args[i] = arguments[i];
2567          }
2568  
2569          node = {
2570              args: args,
2571  
2572              // Generate the result from original function
2573              val: fn.apply(null, args),
2574          };
2575  
2576          // Don't need to check whether node is already head, since it would
2577          // have been returned above already if it was
2578  
2579          // Shift existing head down list
2580          if (head) {
2581              head.prev = node;
2582              node.next = head;
2583          } else {
2584              // If no head, follows that there's no tail (at initial or reset)
2585              tail = node;
2586          }
2587  
2588          // Trim tail if we're reached max size and are pending cache insertion
2589          if (size === /** @type {MemizeOptions} */ (options).maxSize) {
2590              tail = /** @type {MemizeCacheNode} */ (tail).prev;
2591              /** @type {MemizeCacheNode} */ (tail).next = null;
2592          } else {
2593              size++;
2594          }
2595  
2596          head = node;
2597  
2598          return node.val;
2599      }
2600  
2601      memoized.clear = function () {
2602          head = null;
2603          tail = null;
2604          size = 0;
2605      };
2606  
2607      // Ignore reason: There's not a clear solution to create an intersection of
2608      // the function with additional properties, where the goal is to retain the
2609      // function signature of the incoming argument and add control properties
2610      // on the return value.
2611  
2612      // @ts-ignore
2613      return memoized;
2614  }
2615  
2616  
2617  
2618  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/constants.js
2619  const ASPECT_RATIOS = [
2620  // Common video resolutions.
2621  {
2622    ratio: '2.33',
2623    className: 'wp-embed-aspect-21-9'
2624  }, {
2625    ratio: '2.00',
2626    className: 'wp-embed-aspect-18-9'
2627  }, {
2628    ratio: '1.78',
2629    className: 'wp-embed-aspect-16-9'
2630  }, {
2631    ratio: '1.33',
2632    className: 'wp-embed-aspect-4-3'
2633  },
2634  // Vertical video and instagram square video support.
2635  {
2636    ratio: '1.00',
2637    className: 'wp-embed-aspect-1-1'
2638  }, {
2639    ratio: '0.56',
2640    className: 'wp-embed-aspect-9-16'
2641  }, {
2642    ratio: '0.50',
2643    className: 'wp-embed-aspect-1-2'
2644  }];
2645  const WP_EMBED_TYPE = 'wp-embed';
2646  
2647  ;// CONCATENATED MODULE: external ["wp","privateApis"]
2648  const external_wp_privateApis_namespaceObject = window["wp"]["privateApis"];
2649  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/lock-unlock.js
2650  /**
2651   * WordPress dependencies
2652   */
2653  
2654  const {
2655    lock,
2656    unlock
2657  } = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/block-library');
2658  
2659  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/util.js
2660  /**
2661   * External dependencies
2662   */
2663  
2664  
2665  
2666  /**
2667   * WordPress dependencies
2668   */
2669  
2670  
2671  
2672  
2673  /**
2674   * Internal dependencies
2675   */
2676  const util_metadata = {
2677    $schema: "https://schemas.wp.org/trunk/block.json",
2678    apiVersion: 3,
2679    name: "core/embed",
2680    title: "Embed",
2681    category: "embed",
2682    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
2683    textdomain: "default",
2684    attributes: {
2685      url: {
2686        type: "string",
2687        role: "content"
2688      },
2689      caption: {
2690        type: "rich-text",
2691        source: "rich-text",
2692        selector: "figcaption",
2693        role: "content"
2694      },
2695      type: {
2696        type: "string",
2697        role: "content"
2698      },
2699      providerNameSlug: {
2700        type: "string",
2701        role: "content"
2702      },
2703      allowResponsive: {
2704        type: "boolean",
2705        "default": true
2706      },
2707      responsive: {
2708        type: "boolean",
2709        "default": false,
2710        role: "content"
2711      },
2712      previewable: {
2713        type: "boolean",
2714        "default": true,
2715        role: "content"
2716      }
2717    },
2718    supports: {
2719      align: true,
2720      spacing: {
2721        margin: true
2722      },
2723      interactivity: {
2724        clientNavigation: true
2725      }
2726    },
2727    editorStyle: "wp-block-embed-editor",
2728    style: "wp-block-embed"
2729  };
2730  
2731  
2732  
2733  const {
2734    name: DEFAULT_EMBED_BLOCK
2735  } = util_metadata;
2736  const {
2737    kebabCase
2738  } = unlock(external_wp_components_namespaceObject.privateApis);
2739  
2740  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
2741  
2742  /**
2743   * Returns the embed block's information by matching the provided service provider
2744   *
2745   * @param {string} provider The embed block's provider
2746   * @return {WPBlockVariation} The embed block's information
2747   */
2748  const getEmbedInfoByProvider = provider => (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)?.find(({
2749    name
2750  }) => name === provider);
2751  
2752  /**
2753   * Returns true if any of the regular expressions match the URL.
2754   *
2755   * @param {string} url      The URL to test.
2756   * @param {Array}  patterns The list of regular expressions to test agains.
2757   * @return {boolean} True if any of the regular expressions match the URL.
2758   */
2759  const matchesPatterns = (url, patterns = []) => patterns.some(pattern => url.match(pattern));
2760  
2761  /**
2762   * Finds the block variation that should be used for the URL,
2763   * based on the provided URL and the variation's patterns.
2764   *
2765   * @param {string} url The URL to test.
2766   * @return {WPBlockVariation} The block variation that should be used for this URL
2767   */
2768  const findMoreSuitableBlock = url => (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)?.find(({
2769    patterns
2770  }) => matchesPatterns(url, patterns));
2771  const isFromWordPress = html => html && html.includes('class="wp-embedded-content"');
2772  const getPhotoHtml = photo => {
2773    // If full image url not found use thumbnail.
2774    const imageUrl = photo.url || photo.thumbnail_url;
2775  
2776    // 100% width for the preview so it fits nicely into the document, some "thumbnails" are
2777    // actually the full size photo.
2778    const photoPreview = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
2779      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
2780        src: imageUrl,
2781        alt: photo.title,
2782        width: "100%"
2783      })
2784    });
2785    return (0,external_wp_element_namespaceObject.renderToString)(photoPreview);
2786  };
2787  
2788  /**
2789   * Creates a more suitable embed block based on the passed in props
2790   * and attributes generated from an embed block's preview.
2791   *
2792   * We require `attributesFromPreview` to be generated from the latest attributes
2793   * and preview, and because of the way the react lifecycle operates, we can't
2794   * guarantee that the attributes contained in the block's props are the latest
2795   * versions, so we require that these are generated separately.
2796   * See `getAttributesFromPreview` in the generated embed edit component.
2797   *
2798   * @param {Object} props                   The block's props.
2799   * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.
2800   * @return {Object|undefined} A more suitable embed block if one exists.
2801   */
2802  const createUpgradedEmbedBlock = (props, attributesFromPreview = {}) => {
2803    const {
2804      preview,
2805      attributes = {}
2806    } = props;
2807    const {
2808      url,
2809      providerNameSlug,
2810      type,
2811      ...restAttributes
2812    } = attributes;
2813    if (!url || !(0,external_wp_blocks_namespaceObject.getBlockType)(DEFAULT_EMBED_BLOCK)) {
2814      return;
2815    }
2816    const matchedBlock = findMoreSuitableBlock(url);
2817  
2818    // WordPress blocks can work on multiple sites, and so don't have patterns,
2819    // so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.
2820    const isCurrentBlockWP = providerNameSlug === 'wordpress' || type === WP_EMBED_TYPE;
2821    // If current block is not WordPress and a more suitable block found
2822    // that is different from the current one, create the new matched block.
2823    const shouldCreateNewBlock = !isCurrentBlockWP && matchedBlock && (matchedBlock.attributes.providerNameSlug !== providerNameSlug || !providerNameSlug);
2824    if (shouldCreateNewBlock) {
2825      return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
2826        url,
2827        ...restAttributes,
2828        ...matchedBlock.attributes
2829      });
2830    }
2831    const wpVariation = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)?.find(({
2832      name
2833    }) => name === 'wordpress');
2834  
2835    // We can't match the URL for WordPress embeds, we have to check the HTML instead.
2836    if (!wpVariation || !preview || !isFromWordPress(preview.html) || isCurrentBlockWP) {
2837      return;
2838    }
2839  
2840    // This is not the WordPress embed block so transform it into one.
2841    return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
2842      url,
2843      ...wpVariation.attributes,
2844      // By now we have the preview, but when the new block first renders, it
2845      // won't have had all the attributes set, and so won't get the correct
2846      // type and it won't render correctly. So, we pass through the current attributes
2847      // here so that the initial render works when we switch to the WordPress
2848      // block. This only affects the WordPress block because it can't be
2849      // rendered in the usual Sandbox (it has a sandbox of its own) and it
2850      // relies on the preview to set the correct render type.
2851      ...attributesFromPreview
2852    });
2853  };
2854  
2855  /**
2856   * Determine if the block already has an aspect ratio class applied.
2857   *
2858   * @param {string} existingClassNames Existing block classes.
2859   * @return {boolean} True or false if the classnames contain an aspect ratio class.
2860   */
2861  const hasAspectRatioClass = existingClassNames => {
2862    if (!existingClassNames) {
2863      return false;
2864    }
2865    return ASPECT_RATIOS.some(({
2866      className
2867    }) => existingClassNames.includes(className));
2868  };
2869  
2870  /**
2871   * Removes all previously set aspect ratio related classes and return the rest
2872   * existing class names.
2873   *
2874   * @param {string} existingClassNames Any existing class names.
2875   * @return {string} The class names without any aspect ratio related class.
2876   */
2877  const removeAspectRatioClasses = existingClassNames => {
2878    if (!existingClassNames) {
2879      // Avoids extraneous work and also, by returning the same value as
2880      // received, ensures the post is not dirtied by a change of the block
2881      // attribute from `undefined` to an empty string.
2882      return existingClassNames;
2883    }
2884    const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, {
2885      className
2886    }) => {
2887      accumulator.push(className);
2888      return accumulator;
2889    }, ['wp-has-aspect-ratio']);
2890    let outputClassNames = existingClassNames;
2891    for (const className of aspectRatioClassNames) {
2892      outputClassNames = outputClassNames.replace(className, '');
2893    }
2894    return outputClassNames.trim();
2895  };
2896  
2897  /**
2898   * Returns class names with any relevant responsive aspect ratio names.
2899   *
2900   * @param {string}  html               The preview HTML that possibly contains an iframe with width and height set.
2901   * @param {string}  existingClassNames Any existing class names.
2902   * @param {boolean} allowResponsive    If the responsive class names should be added, or removed.
2903   * @return {string} Deduped class names.
2904   */
2905  function getClassNames(html, existingClassNames, allowResponsive = true) {
2906    if (!allowResponsive) {
2907      return removeAspectRatioClasses(existingClassNames);
2908    }
2909    const previewDocument = document.implementation.createHTMLDocument('');
2910    previewDocument.body.innerHTML = html;
2911    const iframe = previewDocument.body.querySelector('iframe');
2912  
2913    // If we have a fixed aspect iframe, and it's a responsive embed block.
2914    if (iframe && iframe.height && iframe.width) {
2915      const aspectRatio = (iframe.width / iframe.height).toFixed(2);
2916      // Given the actual aspect ratio, find the widest ratio to support it.
2917      for (let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++) {
2918        const potentialRatio = ASPECT_RATIOS[ratioIndex];
2919        if (aspectRatio >= potentialRatio.ratio) {
2920          // Evaluate the difference between actual aspect ratio and closest match.
2921          // If the difference is too big, do not scale the embed according to aspect ratio.
2922          const ratioDiff = aspectRatio - potentialRatio.ratio;
2923          if (ratioDiff > 0.1) {
2924            // No close aspect ratio match found.
2925            return removeAspectRatioClasses(existingClassNames);
2926          }
2927          // Close aspect ratio match found.
2928          return dist_clsx(removeAspectRatioClasses(existingClassNames), potentialRatio.className, 'wp-has-aspect-ratio');
2929        }
2930      }
2931    }
2932    return existingClassNames;
2933  }
2934  
2935  /**
2936   * Fallback behaviour for unembeddable URLs.
2937   * Creates a paragraph block containing a link to the URL, and calls `onReplace`.
2938   *
2939   * @param {string}   url       The URL that could not be embedded.
2940   * @param {Function} onReplace Function to call with the created fallback block.
2941   */
2942  function fallback(url, onReplace) {
2943    const link = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
2944      href: url,
2945      children: url
2946    });
2947    onReplace((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
2948      content: (0,external_wp_element_namespaceObject.renderToString)(link)
2949    }));
2950  }
2951  
2952  /***
2953   * Gets block attributes based on the preview and responsive state.
2954   *
2955   * @param {Object} preview The preview data.
2956   * @param {string} title The block's title, e.g. Twitter.
2957   * @param {Object} currentClassNames The block's current class names.
2958   * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
2959   * @param {boolean} allowResponsive Apply responsive classes to fixed size content.
2960   * @return {Object} Attributes and values.
2961   */
2962  const getAttributesFromPreview = memize((preview, title, currentClassNames, isResponsive, allowResponsive = true) => {
2963    if (!preview) {
2964      return {};
2965    }
2966    const attributes = {};
2967    // Some plugins only return HTML with no type info, so default this to 'rich'.
2968    let {
2969      type = 'rich'
2970    } = preview;
2971    // If we got a provider name from the API, use it for the slug, otherwise we use the title,
2972    // because not all embed code gives us a provider name.
2973    const {
2974      html,
2975      provider_name: providerName
2976    } = preview;
2977    const providerNameSlug = kebabCase((providerName || title).toLowerCase());
2978    if (isFromWordPress(html)) {
2979      type = WP_EMBED_TYPE;
2980    }
2981    if (html || 'photo' === type) {
2982      attributes.type = type;
2983      attributes.providerNameSlug = providerNameSlug;
2984    }
2985  
2986    // Aspect ratio classes are removed when the embed URL is updated.
2987    // If the embed already has an aspect ratio class, that means the URL has not changed.
2988    // Which also means no need to regenerate it with getClassNames.
2989    if (hasAspectRatioClass(currentClassNames)) {
2990      return attributes;
2991    }
2992    attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive);
2993    return attributes;
2994  });
2995  
2996  /**
2997   * Returns the attributes derived from the preview, merged with the current attributes.
2998   *
2999   * @param {Object}  currentAttributes The current attributes of the block.
3000   * @param {Object}  preview           The preview data.
3001   * @param {string}  title             The block's title, e.g. Twitter.
3002   * @param {boolean} isResponsive      Boolean indicating if the block supports responsive content.
3003   * @return {Object} Merged attributes.
3004   */
3005  const getMergedAttributesWithPreview = (currentAttributes, preview, title, isResponsive) => {
3006    const {
3007      allowResponsive,
3008      className
3009    } = currentAttributes;
3010    return {
3011      ...currentAttributes,
3012      ...getAttributesFromPreview(preview, title, className, isResponsive, allowResponsive)
3013    };
3014  };
3015  
3016  ;// CONCATENATED MODULE: external ["wp","compose"]
3017  const external_wp_compose_namespaceObject = window["wp"]["compose"];
3018  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/hooks.js
3019  /**
3020   * WordPress dependencies
3021   */
3022  
3023  
3024  
3025  
3026  
3027  
3028  
3029  /**
3030   * Returns whether the current user can edit the given entity.
3031   *
3032   * @param {string} kind     Entity kind.
3033   * @param {string} name     Entity name.
3034   * @param {string} recordId Record's id.
3035   */
3036  function useCanEditEntity(kind, name, recordId) {
3037    return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).canUser('update', {
3038      kind,
3039      name,
3040      id: recordId
3041    }), [kind, name, recordId]);
3042  }
3043  
3044  /**
3045   * Handles uploading a media file from a blob URL on mount.
3046   *
3047   * @param {Object}   args              Upload media arguments.
3048   * @param {string}   args.url          Blob URL.
3049   * @param {?Array}   args.allowedTypes Array of allowed media types.
3050   * @param {Function} args.onChange     Function called when the media is uploaded.
3051   * @param {Function} args.onError      Function called when an error happens.
3052   */
3053  function useUploadMediaFromBlobURL(args = {}) {
3054    const latestArgsRef = (0,external_wp_element_namespaceObject.useRef)(args);
3055    const hasUploadStartedRef = (0,external_wp_element_namespaceObject.useRef)(false);
3056    const {
3057      getSettings
3058    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
3059    (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
3060      latestArgsRef.current = args;
3061    });
3062    (0,external_wp_element_namespaceObject.useEffect)(() => {
3063      // Uploading is a special effect that can't be canceled via the cleanup method.
3064      // The extra check avoids duplicate uploads in development mode (React.StrictMode).
3065      if (hasUploadStartedRef.current) {
3066        return;
3067      }
3068      if (!latestArgsRef.current.url || !(0,external_wp_blob_namespaceObject.isBlobURL)(latestArgsRef.current.url)) {
3069        return;
3070      }
3071      const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(latestArgsRef.current.url);
3072      if (!file) {
3073        return;
3074      }
3075      const {
3076        url,
3077        allowedTypes,
3078        onChange,
3079        onError
3080      } = latestArgsRef.current;
3081      const {
3082        mediaUpload
3083      } = getSettings();
3084      hasUploadStartedRef.current = true;
3085      mediaUpload({
3086        filesList: [file],
3087        allowedTypes,
3088        onFileChange: ([media]) => {
3089          if ((0,external_wp_blob_namespaceObject.isBlobURL)(media?.url)) {
3090            return;
3091          }
3092          (0,external_wp_blob_namespaceObject.revokeBlobURL)(url);
3093          onChange(media);
3094          hasUploadStartedRef.current = false;
3095        },
3096        onError: message => {
3097          (0,external_wp_blob_namespaceObject.revokeBlobURL)(url);
3098          onError(message);
3099          hasUploadStartedRef.current = false;
3100        }
3101      });
3102    }, [getSettings]);
3103  }
3104  function useToolsPanelDropdownMenuProps() {
3105    const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
3106    return !isMobile ? {
3107      popoverProps: {
3108        placement: 'left-start',
3109        // For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)
3110        offset: 259
3111      }
3112    } : {};
3113  }
3114  
3115  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/caption.js
3116  /**
3117   * WordPress dependencies
3118   */
3119  
3120  
3121  const caption = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
3122    viewBox: "0 0 24 24",
3123    xmlns: "http://www.w3.org/2000/svg",
3124    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
3125      fillRule: "evenodd",
3126      clipRule: "evenodd",
3127      d: "M6 5.5h12a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5ZM4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Zm4 10h2v-1.5H8V16Zm5 0h-2v-1.5h2V16Zm1 0h2v-1.5h-2V16Z"
3128    })
3129  });
3130  /* harmony default export */ const library_caption = (caption);
3131  
3132  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/caption.js
3133  /**
3134   * External dependencies
3135   */
3136  
3137  
3138  /**
3139   * WordPress dependencies
3140   */
3141  
3142  
3143  
3144  
3145  
3146  
3147  
3148  
3149  /**
3150   * Internal dependencies
3151   */
3152  
3153  
3154  
3155  
3156  function Caption({
3157    attributeKey = 'caption',
3158    attributes,
3159    setAttributes,
3160    isSelected,
3161    insertBlocksAfter,
3162    placeholder = (0,external_wp_i18n_namespaceObject.__)('Add caption'),
3163    label = (0,external_wp_i18n_namespaceObject.__)('Caption text'),
3164    showToolbarButton = true,
3165    excludeElementClassName,
3166    className,
3167    readOnly,
3168    tagName = 'figcaption',
3169    addLabel = (0,external_wp_i18n_namespaceObject.__)('Add caption'),
3170    removeLabel = (0,external_wp_i18n_namespaceObject.__)('Remove caption'),
3171    icon = library_caption,
3172    ...props
3173  }) {
3174    const caption = attributes[attributeKey];
3175    const prevCaption = (0,external_wp_compose_namespaceObject.usePrevious)(caption);
3176    const {
3177      PrivateRichText: RichText
3178    } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
3179    const isCaptionEmpty = RichText.isEmpty(caption);
3180    const isPrevCaptionEmpty = RichText.isEmpty(prevCaption);
3181    const [showCaption, setShowCaption] = (0,external_wp_element_namespaceObject.useState)(!isCaptionEmpty);
3182  
3183    // We need to show the caption when changes come from
3184    // history navigation(undo/redo).
3185    (0,external_wp_element_namespaceObject.useEffect)(() => {
3186      if (!isCaptionEmpty && isPrevCaptionEmpty) {
3187        setShowCaption(true);
3188      }
3189    }, [isCaptionEmpty, isPrevCaptionEmpty]);
3190    (0,external_wp_element_namespaceObject.useEffect)(() => {
3191      if (!isSelected && isCaptionEmpty) {
3192        setShowCaption(false);
3193      }
3194    }, [isSelected, isCaptionEmpty]);
3195  
3196    // Focus the caption when we click to add one.
3197    const ref = (0,external_wp_element_namespaceObject.useCallback)(node => {
3198      if (node && isCaptionEmpty) {
3199        node.focus();
3200      }
3201    }, [isCaptionEmpty]);
3202    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
3203      children: [showToolbarButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
3204        group: "block",
3205        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
3206          onClick: () => {
3207            setShowCaption(!showCaption);
3208            if (showCaption && caption) {
3209              setAttributes({
3210                [attributeKey]: undefined
3211              });
3212            }
3213          },
3214          icon: icon,
3215          isPressed: showCaption,
3216          label: showCaption ? removeLabel : addLabel
3217        })
3218      }), showCaption && (!RichText.isEmpty(caption) || isSelected) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RichText, {
3219        identifier: attributeKey,
3220        tagName: tagName,
3221        className: dist_clsx(className, excludeElementClassName ? '' : (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')),
3222        ref: ref,
3223        "aria-label": label,
3224        placeholder: placeholder,
3225        value: caption,
3226        onChange: value => setAttributes({
3227          [attributeKey]: value
3228        }),
3229        inlineToolbar: true,
3230        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
3231        readOnly: readOnly,
3232        ...props
3233      })]
3234    });
3235  }
3236  
3237  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/edit.js
3238  /**
3239   * External dependencies
3240   */
3241  
3242  
3243  /**
3244   * WordPress dependencies
3245   */
3246  
3247  
3248  
3249  
3250  
3251  
3252  
3253  
3254  
3255  /**
3256   * Internal dependencies
3257   */
3258  
3259  
3260  
3261  
3262  
3263  
3264  const ALLOWED_MEDIA_TYPES = ['audio'];
3265  function AudioEdit({
3266    attributes,
3267    className,
3268    setAttributes,
3269    onReplace,
3270    isSelected: isSingleSelected,
3271    insertBlocksAfter
3272  }) {
3273    const {
3274      id,
3275      autoplay,
3276      loop,
3277      preload,
3278      src
3279    } = attributes;
3280    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
3281    useUploadMediaFromBlobURL({
3282      url: temporaryURL,
3283      allowedTypes: ALLOWED_MEDIA_TYPES,
3284      onChange: onSelectAudio,
3285      onError: onUploadError
3286    });
3287    function toggleAttribute(attribute) {
3288      return newValue => {
3289        setAttributes({
3290          [attribute]: newValue
3291        });
3292      };
3293    }
3294    function onSelectURL(newSrc) {
3295      // Set the block's src from the edit component's state, and switch off
3296      // the editing UI.
3297      if (newSrc !== src) {
3298        // Check if there's an embed block that handles this URL.
3299        const embedBlock = createUpgradedEmbedBlock({
3300          attributes: {
3301            url: newSrc
3302          }
3303        });
3304        if (undefined !== embedBlock && onReplace) {
3305          onReplace(embedBlock);
3306          return;
3307        }
3308        setAttributes({
3309          src: newSrc,
3310          id: undefined,
3311          blob: undefined
3312        });
3313        setTemporaryURL();
3314      }
3315    }
3316    const {
3317      createErrorNotice
3318    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
3319    function onUploadError(message) {
3320      createErrorNotice(message, {
3321        type: 'snackbar'
3322      });
3323    }
3324    function getAutoplayHelp(checked) {
3325      return checked ? (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.') : null;
3326    }
3327    function onSelectAudio(media) {
3328      if (!media || !media.url) {
3329        // In this case there was an error and we should continue in the editing state
3330        // previous attributes should be removed because they may be temporary blob urls.
3331        setAttributes({
3332          src: undefined,
3333          id: undefined,
3334          caption: undefined,
3335          blob: undefined
3336        });
3337        setTemporaryURL();
3338        return;
3339      }
3340      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
3341        setTemporaryURL(media.url);
3342        return;
3343      }
3344  
3345      // Sets the block's attribute and updates the edit component from the
3346      // selected media, then switches off the editing UI.
3347      setAttributes({
3348        blob: undefined,
3349        src: media.url,
3350        id: media.id,
3351        caption: media.caption
3352      });
3353      setTemporaryURL();
3354    }
3355    const classes = dist_clsx(className, {
3356      'is-transient': !!temporaryURL
3357    });
3358    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
3359      className: classes
3360    });
3361    if (!src && !temporaryURL) {
3362      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
3363        ...blockProps,
3364        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
3365          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
3366            icon: library_audio
3367          }),
3368          onSelect: onSelectAudio,
3369          onSelectURL: onSelectURL,
3370          accept: "audio/*",
3371          allowedTypes: ALLOWED_MEDIA_TYPES,
3372          value: attributes,
3373          onError: onUploadError
3374        })
3375      });
3376    }
3377    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
3378      children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
3379        group: "other",
3380        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
3381          mediaId: id,
3382          mediaURL: src,
3383          allowedTypes: ALLOWED_MEDIA_TYPES,
3384          accept: "audio/*",
3385          onSelect: onSelectAudio,
3386          onSelectURL: onSelectURL,
3387          onError: onUploadError,
3388          onReset: () => onSelectAudio(undefined)
3389        })
3390      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
3391        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
3392          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
3393          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
3394            __nextHasNoMarginBottom: true,
3395            label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
3396            onChange: toggleAttribute('autoplay'),
3397            checked: autoplay,
3398            help: getAutoplayHelp
3399          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
3400            __nextHasNoMarginBottom: true,
3401            label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
3402            onChange: toggleAttribute('loop'),
3403            checked: loop
3404          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
3405            __next40pxDefaultSize: true,
3406            __nextHasNoMarginBottom: true,
3407            label: (0,external_wp_i18n_namespaceObject._x)('Preload', 'noun; Audio block parameter'),
3408            value: preload || ''
3409            // `undefined` is required for the preload attribute to be unset.
3410            ,
3411            onChange: value => setAttributes({
3412              preload: value || undefined
3413            }),
3414            options: [{
3415              value: '',
3416              label: (0,external_wp_i18n_namespaceObject.__)('Browser default')
3417            }, {
3418              value: 'auto',
3419              label: (0,external_wp_i18n_namespaceObject.__)('Auto')
3420            }, {
3421              value: 'metadata',
3422              label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
3423            }, {
3424              value: 'none',
3425              label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
3426            }]
3427          })]
3428        })
3429      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
3430        ...blockProps,
3431        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
3432          isDisabled: !isSingleSelected,
3433          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("audio", {
3434            controls: "controls",
3435            src: src !== null && src !== void 0 ? src : temporaryURL
3436          })
3437        }), !!temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
3438          attributes: attributes,
3439          setAttributes: setAttributes,
3440          isSelected: isSingleSelected,
3441          insertBlocksAfter: insertBlocksAfter,
3442          label: (0,external_wp_i18n_namespaceObject.__)('Audio caption text'),
3443          showToolbarButton: isSingleSelected
3444        })]
3445      })]
3446    });
3447  }
3448  /* harmony default export */ const edit = (AudioEdit);
3449  
3450  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/save.js
3451  /**
3452   * WordPress dependencies
3453   */
3454  
3455  
3456  
3457  function save({
3458    attributes
3459  }) {
3460    const {
3461      autoplay,
3462      caption,
3463      loop,
3464      preload,
3465      src
3466    } = attributes;
3467    return src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
3468      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
3469      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("audio", {
3470        controls: "controls",
3471        src: src,
3472        autoPlay: autoplay,
3473        loop: loop,
3474        preload: preload
3475      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3476        tagName: "figcaption",
3477        value: caption,
3478        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
3479      })]
3480    });
3481  }
3482  
3483  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/transforms.js
3484  /**
3485   * WordPress dependencies
3486   */
3487  
3488  
3489  const transforms = {
3490    from: [{
3491      type: 'files',
3492      isMatch(files) {
3493        return files.length === 1 && files[0].type.indexOf('audio/') === 0;
3494      },
3495      transform(files) {
3496        const file = files[0];
3497        // We don't need to upload the media directly here
3498        // It's already done as part of the `componentDidMount`
3499        // in the audio block.
3500        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
3501          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
3502        });
3503        return block;
3504      }
3505    }, {
3506      type: 'shortcode',
3507      tag: 'audio',
3508      attributes: {
3509        src: {
3510          type: 'string',
3511          shortcode: ({
3512            named: {
3513              src,
3514              mp3,
3515              m4a,
3516              ogg,
3517              wav,
3518              wma
3519            }
3520          }) => {
3521            return src || mp3 || m4a || ogg || wav || wma;
3522          }
3523        },
3524        loop: {
3525          type: 'string',
3526          shortcode: ({
3527            named: {
3528              loop
3529            }
3530          }) => {
3531            return loop;
3532          }
3533        },
3534        autoplay: {
3535          type: 'string',
3536          shortcode: ({
3537            named: {
3538              autoplay
3539            }
3540          }) => {
3541            return autoplay;
3542          }
3543        },
3544        preload: {
3545          type: 'string',
3546          shortcode: ({
3547            named: {
3548              preload
3549            }
3550          }) => {
3551            return preload;
3552          }
3553        }
3554      }
3555    }]
3556  };
3557  /* harmony default export */ const audio_transforms = (transforms);
3558  
3559  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/index.js
3560  /**
3561   * WordPress dependencies
3562   */
3563  
3564  
3565  /**
3566   * Internal dependencies
3567   */
3568  
3569  
3570  
3571  const audio_metadata = {
3572    $schema: "https://schemas.wp.org/trunk/block.json",
3573    apiVersion: 3,
3574    name: "core/audio",
3575    title: "Audio",
3576    category: "media",
3577    description: "Embed a simple audio player.",
3578    keywords: ["music", "sound", "podcast", "recording"],
3579    textdomain: "default",
3580    attributes: {
3581      blob: {
3582        type: "string",
3583        role: "local"
3584      },
3585      src: {
3586        type: "string",
3587        source: "attribute",
3588        selector: "audio",
3589        attribute: "src",
3590        role: "content"
3591      },
3592      caption: {
3593        type: "rich-text",
3594        source: "rich-text",
3595        selector: "figcaption",
3596        role: "content"
3597      },
3598      id: {
3599        type: "number",
3600        role: "content"
3601      },
3602      autoplay: {
3603        type: "boolean",
3604        source: "attribute",
3605        selector: "audio",
3606        attribute: "autoplay"
3607      },
3608      loop: {
3609        type: "boolean",
3610        source: "attribute",
3611        selector: "audio",
3612        attribute: "loop"
3613      },
3614      preload: {
3615        type: "string",
3616        source: "attribute",
3617        selector: "audio",
3618        attribute: "preload"
3619      }
3620    },
3621    supports: {
3622      anchor: true,
3623      align: true,
3624      spacing: {
3625        margin: true,
3626        padding: true,
3627        __experimentalDefaultControls: {
3628          margin: false,
3629          padding: false
3630        }
3631      },
3632      interactivity: {
3633        clientNavigation: true
3634      }
3635    },
3636    editorStyle: "wp-block-audio-editor",
3637    style: "wp-block-audio"
3638  };
3639  
3640  
3641  const {
3642    name: audio_name
3643  } = audio_metadata;
3644  
3645  const audio_settings = {
3646    icon: library_audio,
3647    example: {
3648      attributes: {
3649        src: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg'
3650      },
3651      viewportWidth: 350
3652    },
3653    transforms: audio_transforms,
3654    deprecated: deprecated,
3655    edit: edit,
3656    save: save
3657  };
3658  const audio_init = () => initBlock({
3659    name: audio_name,
3660    metadata: audio_metadata,
3661    settings: audio_settings
3662  });
3663  
3664  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/button.js
3665  /**
3666   * WordPress dependencies
3667   */
3668  
3669  
3670  const button_button = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
3671    viewBox: "0 0 24 24",
3672    xmlns: "http://www.w3.org/2000/svg",
3673    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
3674      d: "M8 12.5h8V11H8v1.5Z M19 6.5H5a2 2 0 0 0-2 2V15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a2 2 0 0 0-2-2ZM5 8h14a.5.5 0 0 1 .5.5V15a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8.5A.5.5 0 0 1 5 8Z"
3675    })
3676  });
3677  /* harmony default export */ const library_button = (button_button);
3678  
3679  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/migrate-font-family.js
3680  /**
3681   * WordPress dependencies
3682   */
3683  
3684  
3685  /**
3686   * Internal dependencies
3687   */
3688  
3689  const {
3690    cleanEmptyObject
3691  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
3692  
3693  /**
3694   * Migrates the current style.typography.fontFamily attribute,
3695   * whose value was "var:preset|font-family|helvetica-arial",
3696   * to the style.fontFamily attribute, whose value will be "helvetica-arial".
3697   *
3698   * @param {Object} attributes The current attributes
3699   * @return {Object} The updated attributes.
3700   */
3701  /* harmony default export */ function migrate_font_family(attributes) {
3702    if (!attributes?.style?.typography?.fontFamily) {
3703      return attributes;
3704    }
3705    const {
3706      fontFamily,
3707      ...typography
3708    } = attributes.style.typography;
3709    return {
3710      ...attributes,
3711      style: cleanEmptyObject({
3712        ...attributes.style,
3713        typography
3714      }),
3715      fontFamily: fontFamily.split('|').pop()
3716    };
3717  }
3718  
3719  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/deprecated.js
3720  /**
3721   * External dependencies
3722   */
3723  
3724  
3725  /**
3726   * WordPress dependencies
3727   */
3728  
3729  
3730  
3731  /**
3732   * Internal dependencies
3733   */
3734  
3735  
3736  const migrateBorderRadius = attributes => {
3737    const {
3738      borderRadius,
3739      ...newAttributes
3740    } = attributes;
3741    // We have to check old property `borderRadius` and if
3742    // `styles.border.radius` is a `number`
3743    const oldBorderRadius = [borderRadius, newAttributes.style?.border?.radius].find(possibleBorderRadius => {
3744      return typeof possibleBorderRadius === 'number' && possibleBorderRadius !== 0;
3745    });
3746    if (!oldBorderRadius) {
3747      return newAttributes;
3748    }
3749    return {
3750      ...newAttributes,
3751      style: {
3752        ...newAttributes.style,
3753        border: {
3754          ...newAttributes.style?.border,
3755          radius: `$oldBorderRadius}px`
3756        }
3757      }
3758    };
3759  };
3760  function migrateAlign(attributes) {
3761    if (!attributes.align) {
3762      return attributes;
3763    }
3764    const {
3765      align,
3766      ...otherAttributes
3767    } = attributes;
3768    return {
3769      ...otherAttributes,
3770      className: dist_clsx(otherAttributes.className, `align$attributes.align}`)
3771    };
3772  }
3773  const migrateCustomColorsAndGradients = attributes => {
3774    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customGradient) {
3775      return attributes;
3776    }
3777    const style = {
3778      color: {}
3779    };
3780    if (attributes.customTextColor) {
3781      style.color.text = attributes.customTextColor;
3782    }
3783    if (attributes.customBackgroundColor) {
3784      style.color.background = attributes.customBackgroundColor;
3785    }
3786    if (attributes.customGradient) {
3787      style.color.gradient = attributes.customGradient;
3788    }
3789    const {
3790      customTextColor,
3791      customBackgroundColor,
3792      customGradient,
3793      ...restAttributes
3794    } = attributes;
3795    return {
3796      ...restAttributes,
3797      style
3798    };
3799  };
3800  const oldColorsMigration = attributes => {
3801    const {
3802      color,
3803      textColor,
3804      ...restAttributes
3805    } = {
3806      ...attributes,
3807      customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
3808      customBackgroundColor: attributes.color && '#' === attributes.color[0] ? attributes.color : undefined
3809    };
3810    return migrateCustomColorsAndGradients(restAttributes);
3811  };
3812  const blockAttributes = {
3813    url: {
3814      type: 'string',
3815      source: 'attribute',
3816      selector: 'a',
3817      attribute: 'href'
3818    },
3819    title: {
3820      type: 'string',
3821      source: 'attribute',
3822      selector: 'a',
3823      attribute: 'title'
3824    },
3825    text: {
3826      type: 'string',
3827      source: 'html',
3828      selector: 'a'
3829    }
3830  };
3831  const v11 = {
3832    attributes: {
3833      url: {
3834        type: 'string',
3835        source: 'attribute',
3836        selector: 'a',
3837        attribute: 'href'
3838      },
3839      title: {
3840        type: 'string',
3841        source: 'attribute',
3842        selector: 'a',
3843        attribute: 'title'
3844      },
3845      text: {
3846        type: 'string',
3847        source: 'html',
3848        selector: 'a'
3849      },
3850      linkTarget: {
3851        type: 'string',
3852        source: 'attribute',
3853        selector: 'a',
3854        attribute: 'target'
3855      },
3856      rel: {
3857        type: 'string',
3858        source: 'attribute',
3859        selector: 'a',
3860        attribute: 'rel'
3861      },
3862      placeholder: {
3863        type: 'string'
3864      },
3865      backgroundColor: {
3866        type: 'string'
3867      },
3868      textColor: {
3869        type: 'string'
3870      },
3871      gradient: {
3872        type: 'string'
3873      },
3874      width: {
3875        type: 'number'
3876      }
3877    },
3878    supports: {
3879      anchor: true,
3880      align: true,
3881      alignWide: false,
3882      color: {
3883        __experimentalSkipSerialization: true,
3884        gradients: true,
3885        __experimentalDefaultControls: {
3886          background: true,
3887          text: true
3888        }
3889      },
3890      typography: {
3891        fontSize: true,
3892        __experimentalFontFamily: true,
3893        __experimentalDefaultControls: {
3894          fontSize: true
3895        }
3896      },
3897      reusable: false,
3898      spacing: {
3899        __experimentalSkipSerialization: true,
3900        padding: ['horizontal', 'vertical'],
3901        __experimentalDefaultControls: {
3902          padding: true
3903        }
3904      },
3905      __experimentalBorder: {
3906        radius: true,
3907        __experimentalSkipSerialization: true,
3908        __experimentalDefaultControls: {
3909          radius: true
3910        }
3911      },
3912      __experimentalSelector: '.wp-block-button__link'
3913    },
3914    save({
3915      attributes,
3916      className
3917    }) {
3918      const {
3919        fontSize,
3920        linkTarget,
3921        rel,
3922        style,
3923        text,
3924        title,
3925        url,
3926        width
3927      } = attributes;
3928      if (!text) {
3929        return null;
3930      }
3931      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
3932      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
3933      const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
3934      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, {
3935        // For backwards compatibility add style that isn't provided via
3936        // block support.
3937        'no-border-radius': style?.border?.radius === 0
3938      });
3939      const buttonStyle = {
3940        ...borderProps.style,
3941        ...colorProps.style,
3942        ...spacingProps.style
3943      };
3944  
3945      // The use of a `title` attribute here is soft-deprecated, but still applied
3946      // if it had already been assigned, for the sake of backward-compatibility.
3947      // A title will no longer be assigned for new or updated button block links.
3948  
3949      const wrapperClasses = dist_clsx(className, {
3950        [`has-custom-width wp-block-button__width-$width}`]: width,
3951        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
3952      });
3953      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
3954        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
3955          className: wrapperClasses
3956        }),
3957        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3958          tagName: "a",
3959          className: buttonClasses,
3960          href: url,
3961          title: title,
3962          style: buttonStyle,
3963          value: text,
3964          target: linkTarget,
3965          rel: rel
3966        })
3967      });
3968    }
3969  };
3970  const v10 = {
3971    attributes: {
3972      url: {
3973        type: 'string',
3974        source: 'attribute',
3975        selector: 'a',
3976        attribute: 'href'
3977      },
3978      title: {
3979        type: 'string',
3980        source: 'attribute',
3981        selector: 'a',
3982        attribute: 'title'
3983      },
3984      text: {
3985        type: 'string',
3986        source: 'html',
3987        selector: 'a'
3988      },
3989      linkTarget: {
3990        type: 'string',
3991        source: 'attribute',
3992        selector: 'a',
3993        attribute: 'target'
3994      },
3995      rel: {
3996        type: 'string',
3997        source: 'attribute',
3998        selector: 'a',
3999        attribute: 'rel'
4000      },
4001      placeholder: {
4002        type: 'string'
4003      },
4004      backgroundColor: {
4005        type: 'string'
4006      },
4007      textColor: {
4008        type: 'string'
4009      },
4010      gradient: {
4011        type: 'string'
4012      },
4013      width: {
4014        type: 'number'
4015      }
4016    },
4017    supports: {
4018      anchor: true,
4019      align: true,
4020      alignWide: false,
4021      color: {
4022        __experimentalSkipSerialization: true,
4023        gradients: true
4024      },
4025      typography: {
4026        fontSize: true,
4027        __experimentalFontFamily: true
4028      },
4029      reusable: false,
4030      spacing: {
4031        __experimentalSkipSerialization: true,
4032        padding: ['horizontal', 'vertical'],
4033        __experimentalDefaultControls: {
4034          padding: true
4035        }
4036      },
4037      __experimentalBorder: {
4038        radius: true,
4039        __experimentalSkipSerialization: true
4040      },
4041      __experimentalSelector: '.wp-block-button__link'
4042    },
4043    save({
4044      attributes,
4045      className
4046    }) {
4047      const {
4048        fontSize,
4049        linkTarget,
4050        rel,
4051        style,
4052        text,
4053        title,
4054        url,
4055        width
4056      } = attributes;
4057      if (!text) {
4058        return null;
4059      }
4060      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
4061      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4062      const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
4063      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, {
4064        // For backwards compatibility add style that isn't provided via
4065        // block support.
4066        'no-border-radius': style?.border?.radius === 0
4067      });
4068      const buttonStyle = {
4069        ...borderProps.style,
4070        ...colorProps.style,
4071        ...spacingProps.style
4072      };
4073  
4074      // The use of a `title` attribute here is soft-deprecated, but still applied
4075      // if it had already been assigned, for the sake of backward-compatibility.
4076      // A title will no longer be assigned for new or updated button block links.
4077  
4078      const wrapperClasses = dist_clsx(className, {
4079        [`has-custom-width wp-block-button__width-$width}`]: width,
4080        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
4081      });
4082      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4083        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4084          className: wrapperClasses
4085        }),
4086        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4087          tagName: "a",
4088          className: buttonClasses,
4089          href: url,
4090          title: title,
4091          style: buttonStyle,
4092          value: text,
4093          target: linkTarget,
4094          rel: rel
4095        })
4096      });
4097    },
4098    migrate: migrate_font_family,
4099    isEligible({
4100      style
4101    }) {
4102      return style?.typography?.fontFamily;
4103    }
4104  };
4105  const deprecated_deprecated = [v11, v10, {
4106    supports: {
4107      anchor: true,
4108      align: true,
4109      alignWide: false,
4110      color: {
4111        __experimentalSkipSerialization: true,
4112        gradients: true
4113      },
4114      typography: {
4115        fontSize: true,
4116        __experimentalFontFamily: true
4117      },
4118      reusable: false,
4119      __experimentalSelector: '.wp-block-button__link'
4120    },
4121    attributes: {
4122      ...blockAttributes,
4123      linkTarget: {
4124        type: 'string',
4125        source: 'attribute',
4126        selector: 'a',
4127        attribute: 'target'
4128      },
4129      rel: {
4130        type: 'string',
4131        source: 'attribute',
4132        selector: 'a',
4133        attribute: 'rel'
4134      },
4135      placeholder: {
4136        type: 'string'
4137      },
4138      backgroundColor: {
4139        type: 'string'
4140      },
4141      textColor: {
4142        type: 'string'
4143      },
4144      gradient: {
4145        type: 'string'
4146      },
4147      width: {
4148        type: 'number'
4149      }
4150    },
4151    isEligible({
4152      style
4153    }) {
4154      return typeof style?.border?.radius === 'number';
4155    },
4156    save({
4157      attributes,
4158      className
4159    }) {
4160      const {
4161        fontSize,
4162        linkTarget,
4163        rel,
4164        style,
4165        text,
4166        title,
4167        url,
4168        width
4169      } = attributes;
4170      if (!text) {
4171        return null;
4172      }
4173      const borderRadius = style?.border?.radius;
4174      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4175      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, {
4176        'no-border-radius': style?.border?.radius === 0
4177      });
4178      const buttonStyle = {
4179        borderRadius: borderRadius ? borderRadius : undefined,
4180        ...colorProps.style
4181      };
4182  
4183      // The use of a `title` attribute here is soft-deprecated, but still applied
4184      // if it had already been assigned, for the sake of backward-compatibility.
4185      // A title will no longer be assigned for new or updated button block links.
4186  
4187      const wrapperClasses = dist_clsx(className, {
4188        [`has-custom-width wp-block-button__width-$width}`]: width,
4189        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
4190      });
4191      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4192        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4193          className: wrapperClasses
4194        }),
4195        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4196          tagName: "a",
4197          className: buttonClasses,
4198          href: url,
4199          title: title,
4200          style: buttonStyle,
4201          value: text,
4202          target: linkTarget,
4203          rel: rel
4204        })
4205      });
4206    },
4207    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
4208  }, {
4209    supports: {
4210      anchor: true,
4211      align: true,
4212      alignWide: false,
4213      color: {
4214        __experimentalSkipSerialization: true
4215      },
4216      reusable: false,
4217      __experimentalSelector: '.wp-block-button__link'
4218    },
4219    attributes: {
4220      ...blockAttributes,
4221      linkTarget: {
4222        type: 'string',
4223        source: 'attribute',
4224        selector: 'a',
4225        attribute: 'target'
4226      },
4227      rel: {
4228        type: 'string',
4229        source: 'attribute',
4230        selector: 'a',
4231        attribute: 'rel'
4232      },
4233      placeholder: {
4234        type: 'string'
4235      },
4236      borderRadius: {
4237        type: 'number'
4238      },
4239      backgroundColor: {
4240        type: 'string'
4241      },
4242      textColor: {
4243        type: 'string'
4244      },
4245      gradient: {
4246        type: 'string'
4247      },
4248      style: {
4249        type: 'object'
4250      },
4251      width: {
4252        type: 'number'
4253      }
4254    },
4255    save({
4256      attributes,
4257      className
4258    }) {
4259      const {
4260        borderRadius,
4261        linkTarget,
4262        rel,
4263        text,
4264        title,
4265        url,
4266        width
4267      } = attributes;
4268      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4269      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, {
4270        'no-border-radius': borderRadius === 0
4271      });
4272      const buttonStyle = {
4273        borderRadius: borderRadius ? borderRadius + 'px' : undefined,
4274        ...colorProps.style
4275      };
4276  
4277      // The use of a `title` attribute here is soft-deprecated, but still applied
4278      // if it had already been assigned, for the sake of backward-compatibility.
4279      // A title will no longer be assigned for new or updated button block links.
4280  
4281      const wrapperClasses = dist_clsx(className, {
4282        [`has-custom-width wp-block-button__width-$width}`]: width
4283      });
4284      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4285        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4286          className: wrapperClasses
4287        }),
4288        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4289          tagName: "a",
4290          className: buttonClasses,
4291          href: url,
4292          title: title,
4293          style: buttonStyle,
4294          value: text,
4295          target: linkTarget,
4296          rel: rel
4297        })
4298      });
4299    },
4300    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
4301  }, {
4302    supports: {
4303      anchor: true,
4304      align: true,
4305      alignWide: false,
4306      color: {
4307        __experimentalSkipSerialization: true
4308      },
4309      reusable: false,
4310      __experimentalSelector: '.wp-block-button__link'
4311    },
4312    attributes: {
4313      ...blockAttributes,
4314      linkTarget: {
4315        type: 'string',
4316        source: 'attribute',
4317        selector: 'a',
4318        attribute: 'target'
4319      },
4320      rel: {
4321        type: 'string',
4322        source: 'attribute',
4323        selector: 'a',
4324        attribute: 'rel'
4325      },
4326      placeholder: {
4327        type: 'string'
4328      },
4329      borderRadius: {
4330        type: 'number'
4331      },
4332      backgroundColor: {
4333        type: 'string'
4334      },
4335      textColor: {
4336        type: 'string'
4337      },
4338      gradient: {
4339        type: 'string'
4340      },
4341      style: {
4342        type: 'object'
4343      },
4344      width: {
4345        type: 'number'
4346      }
4347    },
4348    save({
4349      attributes,
4350      className
4351    }) {
4352      const {
4353        borderRadius,
4354        linkTarget,
4355        rel,
4356        text,
4357        title,
4358        url,
4359        width
4360      } = attributes;
4361      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4362      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, {
4363        'no-border-radius': borderRadius === 0
4364      });
4365      const buttonStyle = {
4366        borderRadius: borderRadius ? borderRadius + 'px' : undefined,
4367        ...colorProps.style
4368      };
4369  
4370      // The use of a `title` attribute here is soft-deprecated, but still applied
4371      // if it had already been assigned, for the sake of backward-compatibility.
4372      // A title will no longer be assigned for new or updated button block links.
4373  
4374      const wrapperClasses = dist_clsx(className, {
4375        [`has-custom-width wp-block-button__width-$width}`]: width
4376      });
4377      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4378        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4379          className: wrapperClasses
4380        }),
4381        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4382          tagName: "a",
4383          className: buttonClasses,
4384          href: url,
4385          title: title,
4386          style: buttonStyle,
4387          value: text,
4388          target: linkTarget,
4389          rel: rel
4390        })
4391      });
4392    },
4393    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
4394  }, {
4395    supports: {
4396      align: true,
4397      alignWide: false,
4398      color: {
4399        gradients: true
4400      }
4401    },
4402    attributes: {
4403      ...blockAttributes,
4404      linkTarget: {
4405        type: 'string',
4406        source: 'attribute',
4407        selector: 'a',
4408        attribute: 'target'
4409      },
4410      rel: {
4411        type: 'string',
4412        source: 'attribute',
4413        selector: 'a',
4414        attribute: 'rel'
4415      },
4416      placeholder: {
4417        type: 'string'
4418      },
4419      borderRadius: {
4420        type: 'number'
4421      },
4422      backgroundColor: {
4423        type: 'string'
4424      },
4425      textColor: {
4426        type: 'string'
4427      },
4428      gradient: {
4429        type: 'string'
4430      },
4431      style: {
4432        type: 'object'
4433      }
4434    },
4435    save({
4436      attributes
4437    }) {
4438      const {
4439        borderRadius,
4440        linkTarget,
4441        rel,
4442        text,
4443        title,
4444        url
4445      } = attributes;
4446      const buttonClasses = dist_clsx('wp-block-button__link', {
4447        'no-border-radius': borderRadius === 0
4448      });
4449      const buttonStyle = {
4450        borderRadius: borderRadius ? borderRadius + 'px' : undefined
4451      };
4452      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4453        tagName: "a",
4454        className: buttonClasses,
4455        href: url,
4456        title: title,
4457        style: buttonStyle,
4458        value: text,
4459        target: linkTarget,
4460        rel: rel
4461      });
4462    },
4463    migrate: migrateBorderRadius
4464  }, {
4465    supports: {
4466      align: true,
4467      alignWide: false
4468    },
4469    attributes: {
4470      ...blockAttributes,
4471      linkTarget: {
4472        type: 'string',
4473        source: 'attribute',
4474        selector: 'a',
4475        attribute: 'target'
4476      },
4477      rel: {
4478        type: 'string',
4479        source: 'attribute',
4480        selector: 'a',
4481        attribute: 'rel'
4482      },
4483      placeholder: {
4484        type: 'string'
4485      },
4486      borderRadius: {
4487        type: 'number'
4488      },
4489      backgroundColor: {
4490        type: 'string'
4491      },
4492      textColor: {
4493        type: 'string'
4494      },
4495      customBackgroundColor: {
4496        type: 'string'
4497      },
4498      customTextColor: {
4499        type: 'string'
4500      },
4501      customGradient: {
4502        type: 'string'
4503      },
4504      gradient: {
4505        type: 'string'
4506      }
4507    },
4508    isEligible: attributes => !!attributes.customTextColor || !!attributes.customBackgroundColor || !!attributes.customGradient || !!attributes.align,
4509    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateBorderRadius, migrateCustomColorsAndGradients, migrateAlign),
4510    save({
4511      attributes
4512    }) {
4513      const {
4514        backgroundColor,
4515        borderRadius,
4516        customBackgroundColor,
4517        customTextColor,
4518        customGradient,
4519        linkTarget,
4520        gradient,
4521        rel,
4522        text,
4523        textColor,
4524        title,
4525        url
4526      } = attributes;
4527      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4528      const backgroundClass = !customGradient && (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4529      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
4530      const buttonClasses = dist_clsx('wp-block-button__link', {
4531        'has-text-color': textColor || customTextColor,
4532        [textClass]: textClass,
4533        'has-background': backgroundColor || customBackgroundColor || customGradient || gradient,
4534        [backgroundClass]: backgroundClass,
4535        'no-border-radius': borderRadius === 0,
4536        [gradientClass]: gradientClass
4537      });
4538      const buttonStyle = {
4539        background: customGradient ? customGradient : undefined,
4540        backgroundColor: backgroundClass || customGradient || gradient ? undefined : customBackgroundColor,
4541        color: textClass ? undefined : customTextColor,
4542        borderRadius: borderRadius ? borderRadius + 'px' : undefined
4543      };
4544  
4545      // The use of a `title` attribute here is soft-deprecated, but still applied
4546      // if it had already been assigned, for the sake of backward-compatibility.
4547      // A title will no longer be assigned for new or updated button block links.
4548  
4549      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4550        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4551          tagName: "a",
4552          className: buttonClasses,
4553          href: url,
4554          title: title,
4555          style: buttonStyle,
4556          value: text,
4557          target: linkTarget,
4558          rel: rel
4559        })
4560      });
4561    }
4562  }, {
4563    attributes: {
4564      ...blockAttributes,
4565      align: {
4566        type: 'string',
4567        default: 'none'
4568      },
4569      backgroundColor: {
4570        type: 'string'
4571      },
4572      textColor: {
4573        type: 'string'
4574      },
4575      customBackgroundColor: {
4576        type: 'string'
4577      },
4578      customTextColor: {
4579        type: 'string'
4580      },
4581      linkTarget: {
4582        type: 'string',
4583        source: 'attribute',
4584        selector: 'a',
4585        attribute: 'target'
4586      },
4587      rel: {
4588        type: 'string',
4589        source: 'attribute',
4590        selector: 'a',
4591        attribute: 'rel'
4592      },
4593      placeholder: {
4594        type: 'string'
4595      }
4596    },
4597    isEligible(attribute) {
4598      return attribute.className && attribute.className.includes('is-style-squared');
4599    },
4600    migrate(attributes) {
4601      let newClassName = attributes.className;
4602      if (newClassName) {
4603        newClassName = newClassName.replace(/is-style-squared[\s]?/, '').trim();
4604      }
4605      return migrateBorderRadius(migrateCustomColorsAndGradients({
4606        ...attributes,
4607        className: newClassName ? newClassName : undefined,
4608        borderRadius: 0
4609      }));
4610    },
4611    save({
4612      attributes
4613    }) {
4614      const {
4615        backgroundColor,
4616        customBackgroundColor,
4617        customTextColor,
4618        linkTarget,
4619        rel,
4620        text,
4621        textColor,
4622        title,
4623        url
4624      } = attributes;
4625      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4626      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4627      const buttonClasses = dist_clsx('wp-block-button__link', {
4628        'has-text-color': textColor || customTextColor,
4629        [textClass]: textClass,
4630        'has-background': backgroundColor || customBackgroundColor,
4631        [backgroundClass]: backgroundClass
4632      });
4633      const buttonStyle = {
4634        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
4635        color: textClass ? undefined : customTextColor
4636      };
4637      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4638        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4639          tagName: "a",
4640          className: buttonClasses,
4641          href: url,
4642          title: title,
4643          style: buttonStyle,
4644          value: text,
4645          target: linkTarget,
4646          rel: rel
4647        })
4648      });
4649    }
4650  }, {
4651    attributes: {
4652      ...blockAttributes,
4653      align: {
4654        type: 'string',
4655        default: 'none'
4656      },
4657      backgroundColor: {
4658        type: 'string'
4659      },
4660      textColor: {
4661        type: 'string'
4662      },
4663      customBackgroundColor: {
4664        type: 'string'
4665      },
4666      customTextColor: {
4667        type: 'string'
4668      }
4669    },
4670    migrate: oldColorsMigration,
4671    save({
4672      attributes
4673    }) {
4674      const {
4675        url,
4676        text,
4677        title,
4678        backgroundColor,
4679        textColor,
4680        customBackgroundColor,
4681        customTextColor
4682      } = attributes;
4683      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4684      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4685      const buttonClasses = dist_clsx('wp-block-button__link', {
4686        'has-text-color': textColor || customTextColor,
4687        [textClass]: textClass,
4688        'has-background': backgroundColor || customBackgroundColor,
4689        [backgroundClass]: backgroundClass
4690      });
4691      const buttonStyle = {
4692        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
4693        color: textClass ? undefined : customTextColor
4694      };
4695      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4696        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4697          tagName: "a",
4698          className: buttonClasses,
4699          href: url,
4700          title: title,
4701          style: buttonStyle,
4702          value: text
4703        })
4704      });
4705    }
4706  }, {
4707    attributes: {
4708      ...blockAttributes,
4709      color: {
4710        type: 'string'
4711      },
4712      textColor: {
4713        type: 'string'
4714      },
4715      align: {
4716        type: 'string',
4717        default: 'none'
4718      }
4719    },
4720    save({
4721      attributes
4722    }) {
4723      const {
4724        url,
4725        text,
4726        title,
4727        align,
4728        color,
4729        textColor
4730      } = attributes;
4731      const buttonStyle = {
4732        backgroundColor: color,
4733        color: textColor
4734      };
4735      const linkClass = 'wp-block-button__link';
4736      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4737        className: `align$align}`,
4738        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4739          tagName: "a",
4740          className: linkClass,
4741          href: url,
4742          title: title,
4743          style: buttonStyle,
4744          value: text
4745        })
4746      });
4747    },
4748    migrate: oldColorsMigration
4749  }, {
4750    attributes: {
4751      ...blockAttributes,
4752      color: {
4753        type: 'string'
4754      },
4755      textColor: {
4756        type: 'string'
4757      },
4758      align: {
4759        type: 'string',
4760        default: 'none'
4761      }
4762    },
4763    save({
4764      attributes
4765    }) {
4766      const {
4767        url,
4768        text,
4769        title,
4770        align,
4771        color,
4772        textColor
4773      } = attributes;
4774      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4775        className: `align$align}`,
4776        style: {
4777          backgroundColor: color
4778        },
4779        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4780          tagName: "a",
4781          href: url,
4782          title: title,
4783          style: {
4784            color: textColor
4785          },
4786          value: text
4787        })
4788      });
4789    },
4790    migrate: oldColorsMigration
4791  }];
4792  /* harmony default export */ const button_deprecated = (deprecated_deprecated);
4793  
4794  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/constants.js
4795  const NEW_TAB_REL = 'noreferrer noopener';
4796  const NEW_TAB_TARGET = '_blank';
4797  const NOFOLLOW_REL = 'nofollow';
4798  
4799  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/get-updated-link-attributes.js
4800  /**
4801   * Internal dependencies
4802   */
4803  
4804  
4805  /**
4806   * WordPress dependencies
4807   */
4808  
4809  
4810  /**
4811   * Updates the link attributes.
4812   *
4813   * @param {Object}  attributes               The current block attributes.
4814   * @param {string}  attributes.rel           The current link rel attribute.
4815   * @param {string}  attributes.url           The current link url.
4816   * @param {boolean} attributes.opensInNewTab Whether the link should open in a new window.
4817   * @param {boolean} attributes.nofollow      Whether the link should be marked as nofollow.
4818   */
4819  function getUpdatedLinkAttributes({
4820    rel = '',
4821    url = '',
4822    opensInNewTab,
4823    nofollow
4824  }) {
4825    let newLinkTarget;
4826    // Since `rel` is editable attribute, we need to check for existing values and proceed accordingly.
4827    let updatedRel = rel;
4828    if (opensInNewTab) {
4829      newLinkTarget = NEW_TAB_TARGET;
4830      updatedRel = updatedRel?.includes(NEW_TAB_REL) ? updatedRel : updatedRel + ` $NEW_TAB_REL}`;
4831    } else {
4832      const relRegex = new RegExp(`\\b$NEW_TAB_REL}\\s*`, 'g');
4833      updatedRel = updatedRel?.replace(relRegex, '').trim();
4834    }
4835    if (nofollow) {
4836      updatedRel = updatedRel?.includes(NOFOLLOW_REL) ? updatedRel : updatedRel + ` $NOFOLLOW_REL}`;
4837    } else {
4838      const relRegex = new RegExp(`\\b$NOFOLLOW_REL}\\s*`, 'g');
4839      updatedRel = updatedRel?.replace(relRegex, '').trim();
4840    }
4841    return {
4842      url: (0,external_wp_url_namespaceObject.prependHTTP)(url),
4843      linkTarget: newLinkTarget,
4844      rel: updatedRel || undefined
4845    };
4846  }
4847  
4848  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/remove-anchor-tag.js
4849  /**
4850   * Removes anchor tags from a string.
4851   *
4852   * @param {string} value The value to remove anchor tags from.
4853   *
4854   * @return {string} The value with anchor tags removed.
4855   */
4856  function removeAnchorTag(value) {
4857    // To do: Refactor this to use rich text's removeFormat instead.
4858    return value.toString().replace(/<\/?a[^>]*>/g, '');
4859  }
4860  
4861  ;// CONCATENATED MODULE: external ["wp","keycodes"]
4862  const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
4863  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js
4864  /**
4865   * WordPress dependencies
4866   */
4867  
4868  
4869  const link_link = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
4870    xmlns: "http://www.w3.org/2000/svg",
4871    viewBox: "0 0 24 24",
4872    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
4873      d: "M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z"
4874    })
4875  });
4876  /* harmony default export */ const library_link = (link_link);
4877  
4878  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js
4879  /**
4880   * WordPress dependencies
4881   */
4882  
4883  
4884  const linkOff = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
4885    xmlns: "http://www.w3.org/2000/svg",
4886    viewBox: "0 0 24 24",
4887    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
4888      d: "M17.031 4.703 15.576 4l-1.56 3H14v.03l-2.324 4.47H9.5V13h1.396l-1.502 2.889h-.95a3.694 3.694 0 0 1 0-7.389H10V7H8.444a5.194 5.194 0 1 0 0 10.389h.17L7.5 19.53l1.416.719L15.049 8.5h.507a3.694 3.694 0 0 1 0 7.39H14v1.5h1.556a5.194 5.194 0 0 0 .273-10.383l1.202-2.304Z"
4889    })
4890  });
4891  /* harmony default export */ const link_off = (linkOff);
4892  
4893  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/edit.js
4894  /**
4895   * External dependencies
4896   */
4897  
4898  
4899  /**
4900   * Internal dependencies
4901   */
4902  
4903  
4904  
4905  
4906  /**
4907   * WordPress dependencies
4908   */
4909  
4910  
4911  
4912  
4913  
4914  
4915  
4916  
4917  
4918  
4919  
4920  
4921  const LINK_SETTINGS = [...external_wp_blockEditor_namespaceObject.__experimentalLinkControl.DEFAULT_LINK_SETTINGS, {
4922    id: 'nofollow',
4923    title: (0,external_wp_i18n_namespaceObject.__)('Mark as nofollow')
4924  }];
4925  function useEnter(props) {
4926    const {
4927      replaceBlocks,
4928      selectionChange
4929    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
4930    const {
4931      getBlock,
4932      getBlockRootClientId,
4933      getBlockIndex
4934    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
4935    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
4936    propsRef.current = props;
4937    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
4938      function onKeyDown(event) {
4939        if (event.defaultPrevented || event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
4940          return;
4941        }
4942        const {
4943          content,
4944          clientId
4945        } = propsRef.current;
4946        if (content.length) {
4947          return;
4948        }
4949        event.preventDefault();
4950        const topParentListBlock = getBlock(getBlockRootClientId(clientId));
4951        const blockIndex = getBlockIndex(clientId);
4952        const head = (0,external_wp_blocks_namespaceObject.cloneBlock)({
4953          ...topParentListBlock,
4954          innerBlocks: topParentListBlock.innerBlocks.slice(0, blockIndex)
4955        });
4956        const middle = (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)());
4957        const after = topParentListBlock.innerBlocks.slice(blockIndex + 1);
4958        const tail = after.length ? [(0,external_wp_blocks_namespaceObject.cloneBlock)({
4959          ...topParentListBlock,
4960          innerBlocks: after
4961        })] : [];
4962        replaceBlocks(topParentListBlock.clientId, [head, middle, ...tail], 1);
4963        // We manually change the selection here because we are replacing
4964        // a different block than the selected one.
4965        selectionChange(middle.clientId);
4966      }
4967      element.addEventListener('keydown', onKeyDown);
4968      return () => {
4969        element.removeEventListener('keydown', onKeyDown);
4970      };
4971    }, []);
4972  }
4973  function WidthPanel({
4974    selectedWidth,
4975    setAttributes
4976  }) {
4977    function handleChange(newWidth) {
4978      // Check if we are toggling the width off
4979      const width = selectedWidth === newWidth ? undefined : newWidth;
4980  
4981      // Update attributes.
4982      setAttributes({
4983        width
4984      });
4985    }
4986    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
4987      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
4988      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ButtonGroup, {
4989        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button width'),
4990        children: [25, 50, 75, 100].map(widthValue => {
4991          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
4992            size: "small",
4993            variant: widthValue === selectedWidth ? 'primary' : undefined,
4994            onClick: () => handleChange(widthValue),
4995            children: [widthValue, "%"]
4996          }, widthValue);
4997        })
4998      })
4999    });
5000  }
5001  function ButtonEdit(props) {
5002    const {
5003      attributes,
5004      setAttributes,
5005      className,
5006      isSelected,
5007      onReplace,
5008      mergeBlocks,
5009      clientId,
5010      context
5011    } = props;
5012    const {
5013      tagName,
5014      textAlign,
5015      linkTarget,
5016      placeholder,
5017      rel,
5018      style,
5019      text,
5020      url,
5021      width,
5022      metadata
5023    } = attributes;
5024    const TagName = tagName || 'a';
5025    function onKeyDown(event) {
5026      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
5027        startEditing(event);
5028      } else if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'k')) {
5029        unlink();
5030        richTextRef.current?.focus();
5031      }
5032    }
5033  
5034    // Use internal state instead of a ref to make sure that the component
5035    // re-renders when the popover's anchor updates.
5036    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
5037    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
5038    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
5039    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
5040    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
5041    const ref = (0,external_wp_element_namespaceObject.useRef)();
5042    const richTextRef = (0,external_wp_element_namespaceObject.useRef)();
5043    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
5044      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, ref]),
5045      onKeyDown
5046    });
5047    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
5048    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
5049    const isURLSet = !!url;
5050    const opensInNewTab = linkTarget === NEW_TAB_TARGET;
5051    const nofollow = !!rel?.includes(NOFOLLOW_REL);
5052    const isLinkTag = 'a' === TagName;
5053    function startEditing(event) {
5054      event.preventDefault();
5055      setIsEditingURL(true);
5056    }
5057    function unlink() {
5058      setAttributes({
5059        url: undefined,
5060        linkTarget: undefined,
5061        rel: undefined
5062      });
5063      setIsEditingURL(false);
5064    }
5065    (0,external_wp_element_namespaceObject.useEffect)(() => {
5066      if (!isSelected) {
5067        setIsEditingURL(false);
5068      }
5069    }, [isSelected]);
5070  
5071    // Memoize link value to avoid overriding the LinkControl's internal state.
5072    // This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.
5073    const linkValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({
5074      url,
5075      opensInNewTab,
5076      nofollow
5077    }), [url, opensInNewTab, nofollow]);
5078    const useEnterRef = useEnter({
5079      content: text,
5080      clientId
5081    });
5082    const mergedRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([useEnterRef, richTextRef]);
5083    const {
5084      lockUrlControls = false
5085    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
5086      if (!isSelected) {
5087        return {};
5088      }
5089      const blockBindingsSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(metadata?.bindings?.url?.source);
5090      return {
5091        lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue?.({
5092          select,
5093          context,
5094          args: metadata?.bindings?.url?.args
5095        })
5096      };
5097    }, [context, isSelected, metadata?.bindings?.url]);
5098    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
5099      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5100        ...blockProps,
5101        className: dist_clsx(blockProps.className, {
5102          [`has-custom-width wp-block-button__width-$width}`]: width,
5103          [`has-custom-font-size`]: blockProps.style.fontSize
5104        }),
5105        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
5106          ref: mergedRef,
5107          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
5108          placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Add text…'),
5109          value: text,
5110          onChange: value => setAttributes({
5111            text: removeAnchorTag(value)
5112          }),
5113          withoutInteractiveFormatting: true,
5114          className: dist_clsx(className, 'wp-block-button__link', colorProps.className, borderProps.className, {
5115            [`has-text-align-$textAlign}`]: textAlign,
5116            // For backwards compatibility add style that isn't
5117            // provided via block support.
5118            'no-border-radius': style?.border?.radius === 0
5119          }, (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
5120          style: {
5121            ...borderProps.style,
5122            ...colorProps.style,
5123            ...spacingProps.style,
5124            ...shadowProps.style
5125          },
5126          onReplace: onReplace,
5127          onMerge: mergeBlocks,
5128          identifier: "text"
5129        })
5130      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
5131        group: "block",
5132        children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
5133          value: textAlign,
5134          onChange: nextAlign => {
5135            setAttributes({
5136              textAlign: nextAlign
5137            });
5138          }
5139        }), !isURLSet && isLinkTag && !lockUrlControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
5140          name: "link",
5141          icon: library_link,
5142          title: (0,external_wp_i18n_namespaceObject.__)('Link'),
5143          shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
5144          onClick: startEditing
5145        }), isURLSet && isLinkTag && !lockUrlControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
5146          name: "link",
5147          icon: link_off,
5148          title: (0,external_wp_i18n_namespaceObject.__)('Unlink'),
5149          shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('k'),
5150          onClick: unlink,
5151          isActive: true
5152        })]
5153      }), isLinkTag && isSelected && (isEditingURL || isURLSet) && !lockUrlControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover, {
5154        placement: "bottom",
5155        onClose: () => {
5156          setIsEditingURL(false);
5157          richTextRef.current?.focus();
5158        },
5159        anchor: popoverAnchor,
5160        focusOnMount: isEditingURL ? 'firstElement' : false,
5161        __unstableSlotName: "__unstable-block-tools-after",
5162        shift: true,
5163        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
5164          value: linkValue,
5165          onChange: ({
5166            url: newURL,
5167            opensInNewTab: newOpensInNewTab,
5168            nofollow: newNofollow
5169          }) => setAttributes(getUpdatedLinkAttributes({
5170            rel,
5171            url: newURL,
5172            opensInNewTab: newOpensInNewTab,
5173            nofollow: newNofollow
5174          })),
5175          onRemove: () => {
5176            unlink();
5177            richTextRef.current?.focus();
5178          },
5179          forceIsEditingLink: isEditingURL,
5180          settings: LINK_SETTINGS
5181        })
5182      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
5183        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WidthPanel, {
5184          selectedWidth: width,
5185          setAttributes: setAttributes
5186        })
5187      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
5188        group: "advanced",
5189        children: isLinkTag && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
5190          __next40pxDefaultSize: true,
5191          __nextHasNoMarginBottom: true,
5192          label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
5193          value: rel || '',
5194          onChange: newRel => setAttributes({
5195            rel: newRel
5196          })
5197        })
5198      })]
5199    });
5200  }
5201  /* harmony default export */ const button_edit = (ButtonEdit);
5202  
5203  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/save.js
5204  /**
5205   * External dependencies
5206   */
5207  
5208  
5209  /**
5210   * WordPress dependencies
5211   */
5212  
5213  
5214  function save_save({
5215    attributes,
5216    className
5217  }) {
5218    const {
5219      tagName,
5220      type,
5221      textAlign,
5222      fontSize,
5223      linkTarget,
5224      rel,
5225      style,
5226      text,
5227      title,
5228      url,
5229      width
5230    } = attributes;
5231    const TagName = tagName || 'a';
5232    const isButtonTag = 'button' === TagName;
5233    const buttonType = type || 'button';
5234    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
5235    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
5236    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
5237    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
5238    const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, {
5239      [`has-text-align-$textAlign}`]: textAlign,
5240      // For backwards compatibility add style that isn't provided via
5241      // block support.
5242      'no-border-radius': style?.border?.radius === 0
5243    }, (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button'));
5244    const buttonStyle = {
5245      ...borderProps.style,
5246      ...colorProps.style,
5247      ...spacingProps.style,
5248      ...shadowProps.style
5249    };
5250  
5251    // The use of a `title` attribute here is soft-deprecated, but still applied
5252    // if it had already been assigned, for the sake of backward-compatibility.
5253    // A title will no longer be assigned for new or updated button block links.
5254  
5255    const wrapperClasses = dist_clsx(className, {
5256      [`has-custom-width wp-block-button__width-$width}`]: width,
5257      [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
5258    });
5259    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5260      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
5261        className: wrapperClasses
5262      }),
5263      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
5264        tagName: TagName,
5265        type: isButtonTag ? buttonType : null,
5266        className: buttonClasses,
5267        href: isButtonTag ? null : url,
5268        title: title,
5269        style: buttonStyle,
5270        value: text,
5271        target: isButtonTag ? null : linkTarget,
5272        rel: isButtonTag ? null : rel
5273      })
5274    });
5275  }
5276  
5277  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/index.js
5278  /**
5279   * WordPress dependencies
5280   */
5281  
5282  
5283  
5284  /**
5285   * Internal dependencies
5286   */
5287  
5288  
5289  
5290  const button_metadata = {
5291    $schema: "https://schemas.wp.org/trunk/block.json",
5292    apiVersion: 3,
5293    name: "core/button",
5294    title: "Button",
5295    category: "design",
5296    parent: ["core/buttons"],
5297    description: "Prompt visitors to take action with a button-style link.",
5298    keywords: ["link"],
5299    textdomain: "default",
5300    attributes: {
5301      tagName: {
5302        type: "string",
5303        "enum": ["a", "button"],
5304        "default": "a"
5305      },
5306      type: {
5307        type: "string",
5308        "default": "button"
5309      },
5310      textAlign: {
5311        type: "string"
5312      },
5313      url: {
5314        type: "string",
5315        source: "attribute",
5316        selector: "a",
5317        attribute: "href",
5318        role: "content"
5319      },
5320      title: {
5321        type: "string",
5322        source: "attribute",
5323        selector: "a,button",
5324        attribute: "title",
5325        role: "content"
5326      },
5327      text: {
5328        type: "rich-text",
5329        source: "rich-text",
5330        selector: "a,button",
5331        role: "content"
5332      },
5333      linkTarget: {
5334        type: "string",
5335        source: "attribute",
5336        selector: "a",
5337        attribute: "target",
5338        role: "content"
5339      },
5340      rel: {
5341        type: "string",
5342        source: "attribute",
5343        selector: "a",
5344        attribute: "rel",
5345        role: "content"
5346      },
5347      placeholder: {
5348        type: "string"
5349      },
5350      backgroundColor: {
5351        type: "string"
5352      },
5353      textColor: {
5354        type: "string"
5355      },
5356      gradient: {
5357        type: "string"
5358      },
5359      width: {
5360        type: "number"
5361      }
5362    },
5363    supports: {
5364      anchor: true,
5365      splitting: true,
5366      align: false,
5367      alignWide: false,
5368      color: {
5369        __experimentalSkipSerialization: true,
5370        gradients: true,
5371        __experimentalDefaultControls: {
5372          background: true,
5373          text: true
5374        }
5375      },
5376      typography: {
5377        fontSize: true,
5378        lineHeight: true,
5379        __experimentalFontFamily: true,
5380        __experimentalFontWeight: true,
5381        __experimentalFontStyle: true,
5382        __experimentalTextTransform: true,
5383        __experimentalTextDecoration: true,
5384        __experimentalLetterSpacing: true,
5385        __experimentalWritingMode: true,
5386        __experimentalDefaultControls: {
5387          fontSize: true
5388        }
5389      },
5390      reusable: false,
5391      shadow: {
5392        __experimentalSkipSerialization: true
5393      },
5394      spacing: {
5395        __experimentalSkipSerialization: true,
5396        padding: ["horizontal", "vertical"],
5397        __experimentalDefaultControls: {
5398          padding: true
5399        }
5400      },
5401      __experimentalBorder: {
5402        color: true,
5403        radius: true,
5404        style: true,
5405        width: true,
5406        __experimentalSkipSerialization: true,
5407        __experimentalDefaultControls: {
5408          color: true,
5409          radius: true,
5410          style: true,
5411          width: true
5412        }
5413      },
5414      __experimentalSelector: ".wp-block-button .wp-block-button__link",
5415      interactivity: {
5416        clientNavigation: true
5417      }
5418    },
5419    styles: [{
5420      name: "fill",
5421      label: "Fill",
5422      isDefault: true
5423    }, {
5424      name: "outline",
5425      label: "Outline"
5426    }],
5427    editorStyle: "wp-block-button-editor",
5428    style: "wp-block-button"
5429  };
5430  
5431  const {
5432    name: button_name
5433  } = button_metadata;
5434  
5435  const button_settings = {
5436    icon: library_button,
5437    example: {
5438      attributes: {
5439        className: 'is-style-fill',
5440        text: (0,external_wp_i18n_namespaceObject.__)('Call to Action')
5441      }
5442    },
5443    edit: button_edit,
5444    save: save_save,
5445    deprecated: button_deprecated,
5446    merge: (a, {
5447      text = ''
5448    }) => ({
5449      ...a,
5450      text: (a.text || '') + text
5451    })
5452  };
5453  const button_init = () => initBlock({
5454    name: button_name,
5455    metadata: button_metadata,
5456    settings: button_settings
5457  });
5458  
5459  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/buttons.js
5460  /**
5461   * WordPress dependencies
5462   */
5463  
5464  
5465  const buttons = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
5466    viewBox: "0 0 24 24",
5467    xmlns: "http://www.w3.org/2000/svg",
5468    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
5469      d: "M14.5 17.5H9.5V16H14.5V17.5Z M14.5 8H9.5V6.5H14.5V8Z M7 3.5H17C18.1046 3.5 19 4.39543 19 5.5V9C19 10.1046 18.1046 11 17 11H7C5.89543 11 5 10.1046 5 9V5.5C5 4.39543 5.89543 3.5 7 3.5ZM17 5H7C6.72386 5 6.5 5.22386 6.5 5.5V9C6.5 9.27614 6.72386 9.5 7 9.5H17C17.2761 9.5 17.5 9.27614 17.5 9V5.5C17.5 5.22386 17.2761 5 17 5Z M7 13H17C18.1046 13 19 13.8954 19 15V18.5C19 19.6046 18.1046 20.5 17 20.5H7C5.89543 20.5 5 19.6046 5 18.5V15C5 13.8954 5.89543 13 7 13ZM17 14.5H7C6.72386 14.5 6.5 14.7239 6.5 15V18.5C6.5 18.7761 6.72386 19 7 19H17C17.2761 19 17.5 18.7761 17.5 18.5V15C17.5 14.7239 17.2761 14.5 17 14.5Z"
5470    })
5471  });
5472  /* harmony default export */ const library_buttons = (buttons);
5473  
5474  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/deprecated.js
5475  /**
5476   * External dependencies
5477   */
5478  
5479  /**
5480   * WordPress dependencies
5481   */
5482  
5483  
5484  /**
5485   * @param {Object} attributes Block's attributes.
5486   */
5487  
5488  const migrateWithLayout = attributes => {
5489    if (!!attributes.layout) {
5490      return attributes;
5491    }
5492    const {
5493      contentJustification,
5494      orientation,
5495      ...updatedAttributes
5496    } = attributes;
5497    if (contentJustification || orientation) {
5498      Object.assign(updatedAttributes, {
5499        layout: {
5500          type: 'flex',
5501          ...(contentJustification && {
5502            justifyContent: contentJustification
5503          }),
5504          ...(orientation && {
5505            orientation
5506          })
5507        }
5508      });
5509    }
5510    return updatedAttributes;
5511  };
5512  const buttons_deprecated_deprecated = [{
5513    attributes: {
5514      contentJustification: {
5515        type: 'string'
5516      },
5517      orientation: {
5518        type: 'string',
5519        default: 'horizontal'
5520      }
5521    },
5522    supports: {
5523      anchor: true,
5524      align: ['wide', 'full'],
5525      __experimentalExposeControlsToChildren: true,
5526      spacing: {
5527        blockGap: true,
5528        margin: ['top', 'bottom'],
5529        __experimentalDefaultControls: {
5530          blockGap: true
5531        }
5532      }
5533    },
5534    isEligible: ({
5535      contentJustification,
5536      orientation
5537    }) => !!contentJustification || !!orientation,
5538    migrate: migrateWithLayout,
5539    save({
5540      attributes: {
5541        contentJustification,
5542        orientation
5543      }
5544    }) {
5545      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5546        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
5547          className: dist_clsx({
5548            [`is-content-justification-$contentJustification}`]: contentJustification,
5549            'is-vertical': orientation === 'vertical'
5550          })
5551        }),
5552        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
5553      });
5554    }
5555  }, {
5556    supports: {
5557      align: ['center', 'left', 'right'],
5558      anchor: true
5559    },
5560    save() {
5561      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5562        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
5563      });
5564    },
5565    isEligible({
5566      align
5567    }) {
5568      return align && ['center', 'left', 'right'].includes(align);
5569    },
5570    migrate(attributes) {
5571      return migrateWithLayout({
5572        ...attributes,
5573        align: undefined,
5574        // Floating Buttons blocks shouldn't have been supported in the
5575        // first place. Most users using them probably expected them to
5576        // act like content justification controls, so these blocks are
5577        // migrated to use content justification.
5578        // As for center-aligned Buttons blocks, the content justification
5579        // equivalent will create an identical end result in most cases.
5580        contentJustification: attributes.align
5581      });
5582    }
5583  }];
5584  /* harmony default export */ const buttons_deprecated = (buttons_deprecated_deprecated);
5585  
5586  ;// CONCATENATED MODULE: external ["wp","richText"]
5587  const external_wp_richText_namespaceObject = window["wp"]["richText"];
5588  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/get-transformed-metadata.js
5589  /**
5590   * WordPress dependencies
5591   */
5592  
5593  
5594  /**
5595   * Transform the metadata attribute with only the values and bindings specified by each transform.
5596   * Returns `undefined` if the input metadata is falsy.
5597   *
5598   * @param {Object}   metadata         Original metadata attribute from the block that is being transformed.
5599   * @param {Object}   newBlockName     Name of the final block after the transformation.
5600   * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.
5601   * @return {Object|undefined} New metadata object only with the relevant properties.
5602   */
5603  function getTransformedMetadata(metadata, newBlockName, bindingsCallback) {
5604    if (!metadata) {
5605      return;
5606    }
5607    const {
5608      supports
5609    } = (0,external_wp_blocks_namespaceObject.getBlockType)(newBlockName);
5610    // Fixed until an opt-in mechanism is implemented.
5611    const BLOCK_BINDINGS_SUPPORTED_BLOCKS = ['core/paragraph', 'core/heading', 'core/image', 'core/button'];
5612    // The metadata properties that should be preserved after the transform.
5613    const transformSupportedProps = [];
5614    // If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.
5615    if (BLOCK_BINDINGS_SUPPORTED_BLOCKS.includes(newBlockName) && bindingsCallback) {
5616      transformSupportedProps.push('id', 'bindings');
5617    }
5618    // If it support block naming (true by default), add the `name` property.
5619    if (supports.renaming !== false) {
5620      transformSupportedProps.push('name');
5621    }
5622  
5623    // Return early if no supported properties.
5624    if (!transformSupportedProps.length) {
5625      return;
5626    }
5627    const newMetadata = Object.entries(metadata).reduce((obj, [prop, value]) => {
5628      // If prop is not supported, don't add it to the new metadata object.
5629      if (!transformSupportedProps.includes(prop)) {
5630        return obj;
5631      }
5632      obj[prop] = prop === 'bindings' ? bindingsCallback(value) : value;
5633      return obj;
5634    }, {});
5635  
5636    // Return undefined if object is empty.
5637    return Object.keys(newMetadata).length ? newMetadata : undefined;
5638  }
5639  
5640  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/transforms.js
5641  /**
5642   * WordPress dependencies
5643   */
5644  
5645  
5646  
5647  /**
5648   * Internal dependencies
5649   */
5650  
5651  const transforms_transforms = {
5652    from: [{
5653      type: 'block',
5654      isMultiBlock: true,
5655      blocks: ['core/button'],
5656      transform: buttons =>
5657      // Creates the buttons block.
5658      (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {},
5659      // Loop the selected buttons.
5660      buttons.map(attributes =>
5661      // Create singular button in the buttons block.
5662      (0,external_wp_blocks_namespaceObject.createBlock)('core/button', attributes)))
5663    }, {
5664      type: 'block',
5665      isMultiBlock: true,
5666      blocks: ['core/paragraph'],
5667      transform: buttons =>
5668      // Creates the buttons block.
5669      (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {},
5670      // Loop the selected buttons.
5671      buttons.map(attributes => {
5672        const {
5673          content,
5674          metadata
5675        } = attributes;
5676        const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, content);
5677        // Remove any HTML tags.
5678        const text = element.innerText || '';
5679        // Get first url.
5680        const link = element.querySelector('a');
5681        const url = link?.getAttribute('href');
5682        // Create singular button in the buttons block.
5683        return (0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
5684          text,
5685          url,
5686          metadata: getTransformedMetadata(metadata, 'core/button', ({
5687            content: contentBinding
5688          }) => ({
5689            text: contentBinding
5690          }))
5691        });
5692      })),
5693      isMatch: paragraphs => {
5694        return paragraphs.every(attributes => {
5695          const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content);
5696          const text = element.innerText || '';
5697          const links = element.querySelectorAll('a');
5698          return text.length <= 30 && links.length <= 1;
5699        });
5700      }
5701    }]
5702  };
5703  /* harmony default export */ const buttons_transforms = (transforms_transforms);
5704  
5705  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/edit.js
5706  /**
5707   * External dependencies
5708   */
5709  
5710  
5711  /**
5712   * WordPress dependencies
5713   */
5714  
5715  
5716  
5717  
5718  const DEFAULT_BLOCK = {
5719    name: 'core/button',
5720    attributesToCopy: ['backgroundColor', 'border', 'className', 'fontFamily', 'fontSize', 'gradient', 'style', 'textColor', 'width']
5721  };
5722  function ButtonsEdit({
5723    attributes,
5724    className
5725  }) {
5726    var _layout$orientation;
5727    const {
5728      fontSize,
5729      layout,
5730      style
5731    } = attributes;
5732    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
5733      className: dist_clsx(className, {
5734        'has-custom-font-size': fontSize || style?.typography?.fontSize
5735      })
5736    });
5737    const {
5738      hasButtonVariations
5739    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
5740      const buttonVariations = select(external_wp_blocks_namespaceObject.store).getBlockVariations('core/button', 'inserter');
5741      return {
5742        hasButtonVariations: buttonVariations.length > 0
5743      };
5744    }, []);
5745    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
5746      defaultBlock: DEFAULT_BLOCK,
5747      // This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.
5748      directInsert: !hasButtonVariations,
5749      template: [['core/button']],
5750      templateInsertUpdatesSelection: true,
5751      orientation: (_layout$orientation = layout?.orientation) !== null && _layout$orientation !== void 0 ? _layout$orientation : 'horizontal'
5752    });
5753    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5754      ...innerBlocksProps
5755    });
5756  }
5757  /* harmony default export */ const buttons_edit = (ButtonsEdit);
5758  
5759  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/save.js
5760  /**
5761   * External dependencies
5762   */
5763  
5764  
5765  /**
5766   * WordPress dependencies
5767   */
5768  
5769  
5770  function buttons_save_save({
5771    attributes,
5772    className
5773  }) {
5774    const {
5775      fontSize,
5776      style
5777    } = attributes;
5778    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
5779      className: dist_clsx(className, {
5780        'has-custom-font-size': fontSize || style?.typography?.fontSize
5781      })
5782    });
5783    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
5784    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5785      ...innerBlocksProps
5786    });
5787  }
5788  
5789  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/index.js
5790  /**
5791   * WordPress dependencies
5792   */
5793  
5794  
5795  
5796  /**
5797   * Internal dependencies
5798   */
5799  
5800  
5801  
5802  
5803  const buttons_metadata = {
5804    $schema: "https://schemas.wp.org/trunk/block.json",
5805    apiVersion: 3,
5806    name: "core/buttons",
5807    title: "Buttons",
5808    category: "design",
5809    allowedBlocks: ["core/button"],
5810    description: "Prompt visitors to take action with a group of button-style links.",
5811    keywords: ["link"],
5812    textdomain: "default",
5813    supports: {
5814      anchor: true,
5815      align: ["wide", "full"],
5816      html: false,
5817      __experimentalExposeControlsToChildren: true,
5818      color: {
5819        gradients: true,
5820        text: false,
5821        __experimentalDefaultControls: {
5822          background: true
5823        }
5824      },
5825      spacing: {
5826        blockGap: ["horizontal", "vertical"],
5827        padding: true,
5828        margin: ["top", "bottom"],
5829        __experimentalDefaultControls: {
5830          blockGap: true
5831        }
5832      },
5833      typography: {
5834        fontSize: true,
5835        lineHeight: true,
5836        __experimentalFontFamily: true,
5837        __experimentalFontWeight: true,
5838        __experimentalFontStyle: true,
5839        __experimentalTextTransform: true,
5840        __experimentalTextDecoration: true,
5841        __experimentalLetterSpacing: true,
5842        __experimentalDefaultControls: {
5843          fontSize: true
5844        }
5845      },
5846      __experimentalBorder: {
5847        color: true,
5848        radius: true,
5849        style: true,
5850        width: true,
5851        __experimentalDefaultControls: {
5852          color: true,
5853          radius: true,
5854          style: true,
5855          width: true
5856        }
5857      },
5858      layout: {
5859        allowSwitching: false,
5860        allowInheriting: false,
5861        "default": {
5862          type: "flex"
5863        }
5864      },
5865      interactivity: {
5866        clientNavigation: true
5867      }
5868    },
5869    editorStyle: "wp-block-buttons-editor",
5870    style: "wp-block-buttons"
5871  };
5872  
5873  const {
5874    name: buttons_name
5875  } = buttons_metadata;
5876  
5877  const buttons_settings = {
5878    icon: library_buttons,
5879    example: {
5880      attributes: {
5881        layout: {
5882          type: 'flex',
5883          justifyContent: 'center'
5884        }
5885      },
5886      innerBlocks: [{
5887        name: 'core/button',
5888        attributes: {
5889          text: (0,external_wp_i18n_namespaceObject.__)('Find out more')
5890        }
5891      }, {
5892        name: 'core/button',
5893        attributes: {
5894          text: (0,external_wp_i18n_namespaceObject.__)('Contact us')
5895        }
5896      }]
5897    },
5898    deprecated: buttons_deprecated,
5899    transforms: buttons_transforms,
5900    edit: buttons_edit,
5901    save: buttons_save_save
5902  };
5903  const buttons_init = () => initBlock({
5904    name: buttons_name,
5905    metadata: buttons_metadata,
5906    settings: buttons_settings
5907  });
5908  
5909  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/calendar.js
5910  /**
5911   * WordPress dependencies
5912   */
5913  
5914  
5915  const calendar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
5916    viewBox: "0 0 24 24",
5917    xmlns: "http://www.w3.org/2000/svg",
5918    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
5919      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"
5920    })
5921  });
5922  /* harmony default export */ const library_calendar = (calendar);
5923  
5924  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/edit.js
5925  /**
5926   * External dependencies
5927   */
5928  
5929  
5930  /**
5931   * WordPress dependencies
5932   */
5933  
5934  
5935  
5936  
5937  
5938  
5939  
5940  
5941  /**
5942   * Returns the year and month of a specified date.
5943   *
5944   * @see `WP_REST_Posts_Controller::prepare_date_response()`.
5945   *
5946   * @param {string} date Date in `ISO8601/RFC3339` format.
5947   * @return {Object} Year and date of the specified date.
5948   */
5949  
5950  const getYearMonth = memize(date => {
5951    if (!date) {
5952      return {};
5953    }
5954    const dateObj = new Date(date);
5955    return {
5956      year: dateObj.getFullYear(),
5957      month: dateObj.getMonth() + 1
5958    };
5959  });
5960  function CalendarEdit({
5961    attributes
5962  }) {
5963    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
5964    const {
5965      date,
5966      hasPosts,
5967      hasPostsResolved
5968    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
5969      const {
5970        getEntityRecords,
5971        hasFinishedResolution
5972      } = select(external_wp_coreData_namespaceObject.store);
5973      const singlePublishedPostQuery = {
5974        status: 'publish',
5975        per_page: 1
5976      };
5977      const posts = getEntityRecords('postType', 'post', singlePublishedPostQuery);
5978      const postsResolved = hasFinishedResolution('getEntityRecords', ['postType', 'post', singlePublishedPostQuery]);
5979      let _date;
5980  
5981      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
5982      // Blocks can be loaded into a *non-post* block editor.
5983      // eslint-disable-next-line @wordpress/data-no-store-string-literals
5984      const editorSelectors = select('core/editor');
5985      if (editorSelectors) {
5986        const postType = editorSelectors.getEditedPostAttribute('type');
5987        // Dates are used to overwrite year and month used on the calendar.
5988        // This overwrite should only happen for 'post' post types.
5989        // For other post types the calendar always displays the current month.
5990        if (postType === 'post') {
5991          _date = editorSelectors.getEditedPostAttribute('date');
5992        }
5993      }
5994      return {
5995        date: _date,
5996        hasPostsResolved: postsResolved,
5997        hasPosts: postsResolved && posts?.length === 1
5998      };
5999    }, []);
6000    if (!hasPosts) {
6001      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6002        ...blockProps,
6003        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
6004          icon: library_calendar,
6005          label: (0,external_wp_i18n_namespaceObject.__)('Calendar'),
6006          children: !hasPostsResolved ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : (0,external_wp_i18n_namespaceObject.__)('No published posts found.')
6007        })
6008      });
6009    }
6010    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6011      ...blockProps,
6012      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
6013        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
6014          block: "core/calendar",
6015          attributes: {
6016            ...attributes,
6017            ...getYearMonth(date)
6018          }
6019        })
6020      })
6021    });
6022  }
6023  
6024  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/transforms.js
6025  /**
6026   * WordPress dependencies
6027   */
6028  
6029  const calendar_transforms_transforms = {
6030    from: [{
6031      type: 'block',
6032      blocks: ['core/archives'],
6033      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/calendar')
6034    }],
6035    to: [{
6036      type: 'block',
6037      blocks: ['core/archives'],
6038      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/archives')
6039    }]
6040  };
6041  /* harmony default export */ const calendar_transforms = (calendar_transforms_transforms);
6042  
6043  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/index.js
6044  /**
6045   * WordPress dependencies
6046   */
6047  
6048  
6049  /**
6050   * Internal dependencies
6051   */
6052  
6053  const calendar_metadata = {
6054    $schema: "https://schemas.wp.org/trunk/block.json",
6055    apiVersion: 3,
6056    name: "core/calendar",
6057    title: "Calendar",
6058    category: "widgets",
6059    description: "A calendar of your site\u2019s posts.",
6060    keywords: ["posts", "archive"],
6061    textdomain: "default",
6062    attributes: {
6063      month: {
6064        type: "integer"
6065      },
6066      year: {
6067        type: "integer"
6068      }
6069    },
6070    supports: {
6071      align: true,
6072      color: {
6073        link: true,
6074        __experimentalSkipSerialization: ["text", "background"],
6075        __experimentalDefaultControls: {
6076          background: true,
6077          text: true
6078        },
6079        __experimentalSelector: "table, th"
6080      },
6081      typography: {
6082        fontSize: true,
6083        lineHeight: true,
6084        __experimentalFontFamily: true,
6085        __experimentalFontWeight: true,
6086        __experimentalFontStyle: true,
6087        __experimentalTextTransform: true,
6088        __experimentalLetterSpacing: true,
6089        __experimentalDefaultControls: {
6090          fontSize: true
6091        }
6092      },
6093      interactivity: {
6094        clientNavigation: true
6095      }
6096    },
6097    style: "wp-block-calendar"
6098  };
6099  
6100  
6101  const {
6102    name: calendar_name
6103  } = calendar_metadata;
6104  
6105  const calendar_settings = {
6106    icon: library_calendar,
6107    example: {},
6108    edit: CalendarEdit,
6109    transforms: calendar_transforms
6110  };
6111  const calendar_init = () => initBlock({
6112    name: calendar_name,
6113    metadata: calendar_metadata,
6114    settings: calendar_settings
6115  });
6116  
6117  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js
6118  /**
6119   * WordPress dependencies
6120   */
6121  
6122  
6123  const category = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6124    viewBox: "0 0 24 24",
6125    xmlns: "http://www.w3.org/2000/svg",
6126    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6127      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",
6128      fillRule: "evenodd",
6129      clipRule: "evenodd"
6130    })
6131  });
6132  /* harmony default export */ const library_category = (category);
6133  
6134  ;// CONCATENATED MODULE: external ["wp","htmlEntities"]
6135  const external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
6136  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin.js
6137  /**
6138   * WordPress dependencies
6139   */
6140  
6141  
6142  const pin = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6143    xmlns: "http://www.w3.org/2000/svg",
6144    viewBox: "0 0 24 24",
6145    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6146      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"
6147    })
6148  });
6149  /* harmony default export */ const library_pin = (pin);
6150  
6151  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/edit.js
6152  /**
6153   * External dependencies
6154   */
6155  
6156  
6157  /**
6158   * WordPress dependencies
6159   */
6160  
6161  
6162  
6163  
6164  
6165  
6166  
6167  
6168  
6169  
6170  function CategoriesEdit({
6171    attributes: {
6172      displayAsDropdown,
6173      showHierarchy,
6174      showPostCounts,
6175      showOnlyTopLevel,
6176      showEmpty,
6177      label,
6178      showLabel,
6179      taxonomy: taxonomySlug
6180    },
6181    setAttributes,
6182    className
6183  }) {
6184    const selectId = (0,external_wp_compose_namespaceObject.useInstanceId)(CategoriesEdit, 'blocks-category-select');
6185    const {
6186      records: allTaxonomies,
6187      isResolvingTaxonomies
6188    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'taxonomy');
6189    const taxonomies = allTaxonomies?.filter(t => t.visibility.public);
6190    const taxonomy = taxonomies?.find(t => t.slug === taxonomySlug);
6191    const isHierarchicalTaxonomy = !isResolvingTaxonomies && taxonomy?.hierarchical;
6192    const query = {
6193      per_page: -1,
6194      hide_empty: !showEmpty,
6195      context: 'view'
6196    };
6197    if (isHierarchicalTaxonomy && showOnlyTopLevel) {
6198      query.parent = 0;
6199    }
6200    const {
6201      records: categories,
6202      isResolving
6203    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('taxonomy', taxonomySlug, query);
6204    const getCategoriesList = parentId => {
6205      if (!categories?.length) {
6206        return [];
6207      }
6208      if (parentId === null) {
6209        return categories;
6210      }
6211      return categories.filter(({
6212        parent
6213      }) => parent === parentId);
6214    };
6215    const toggleAttribute = attributeName => newValue => setAttributes({
6216      [attributeName]: newValue
6217    });
6218    const renderCategoryName = name => !name ? (0,external_wp_i18n_namespaceObject.__)('(Untitled)') : (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(name).trim();
6219    const renderCategoryList = () => {
6220      const parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;
6221      const categoriesList = getCategoriesList(parentId);
6222      return categoriesList.map(category => renderCategoryListItem(category));
6223    };
6224    const renderCategoryListItem = category => {
6225      const childCategories = getCategoriesList(category.id);
6226      const {
6227        id,
6228        link,
6229        count,
6230        name
6231      } = category;
6232      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
6233        className: `cat-item cat-item-$id}`,
6234        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
6235          href: link,
6236          target: "_blank",
6237          rel: "noreferrer noopener",
6238          children: renderCategoryName(name)
6239        }), showPostCounts && ` ($count})`, isHierarchicalTaxonomy && showHierarchy && !!childCategories.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
6240          className: "children",
6241          children: childCategories.map(childCategory => renderCategoryListItem(childCategory))
6242        })]
6243      }, id);
6244    };
6245    const renderCategoryDropdown = () => {
6246      const parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;
6247      const categoriesList = getCategoriesList(parentId);
6248      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
6249        children: [showLabel ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
6250          className: "wp-block-categories__label",
6251          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
6252          placeholder: taxonomy.name,
6253          withoutInteractiveFormatting: true,
6254          value: label,
6255          onChange: html => setAttributes({
6256            label: html
6257          })
6258        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
6259          as: "label",
6260          htmlFor: selectId,
6261          children: label ? label : taxonomy.name
6262        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("select", {
6263          id: selectId,
6264          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("option", {
6265            children: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: taxonomy's singular name */
6266            (0,external_wp_i18n_namespaceObject.__)('Select %s'), taxonomy.labels.singular_name)
6267          }), categoriesList.map(category => renderCategoryDropdownItem(category, 0))]
6268        })]
6269      });
6270    };
6271    const renderCategoryDropdownItem = (category, level) => {
6272      const {
6273        id,
6274        count,
6275        name
6276      } = category;
6277      const childCategories = getCategoriesList(id);
6278      return [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("option", {
6279        className: `level-$level}`,
6280        children: [Array.from({
6281          length: level * 3
6282        }).map(() => '\xa0'), renderCategoryName(name), showPostCounts && ` ($count})`]
6283      }, id), isHierarchicalTaxonomy && showHierarchy && !!childCategories.length && childCategories.map(childCategory => renderCategoryDropdownItem(childCategory, level + 1))];
6284    };
6285    const TagName = !!categories?.length && !displayAsDropdown && !isResolving ? 'ul' : 'div';
6286    const classes = dist_clsx(className, {
6287      'wp-block-categories-list': !!categories?.length && !displayAsDropdown && !isResolving,
6288      'wp-block-categories-dropdown': !!categories?.length && displayAsDropdown && !isResolving
6289    });
6290    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
6291      className: classes
6292    });
6293    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
6294      ...blockProps,
6295      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
6296        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
6297          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
6298          children: [Array.isArray(taxonomies) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
6299            __nextHasNoMarginBottom: true,
6300            __next40pxDefaultSize: true,
6301            label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
6302            options: taxonomies.map(t => ({
6303              label: t.name,
6304              value: t.slug
6305            })),
6306            value: taxonomySlug,
6307            onChange: selectedTaxonomy => setAttributes({
6308              taxonomy: selectedTaxonomy
6309            })
6310          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6311            __nextHasNoMarginBottom: true,
6312            label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
6313            checked: displayAsDropdown,
6314            onChange: toggleAttribute('displayAsDropdown')
6315          }), displayAsDropdown && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6316            __nextHasNoMarginBottom: true,
6317            className: "wp-block-categories__indentation",
6318            label: (0,external_wp_i18n_namespaceObject.__)('Show label'),
6319            checked: showLabel,
6320            onChange: toggleAttribute('showLabel')
6321          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6322            __nextHasNoMarginBottom: true,
6323            label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
6324            checked: showPostCounts,
6325            onChange: toggleAttribute('showPostCounts')
6326          }), isHierarchicalTaxonomy && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6327            __nextHasNoMarginBottom: true,
6328            label: (0,external_wp_i18n_namespaceObject.__)('Show only top level terms'),
6329            checked: showOnlyTopLevel,
6330            onChange: toggleAttribute('showOnlyTopLevel')
6331          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6332            __nextHasNoMarginBottom: true,
6333            label: (0,external_wp_i18n_namespaceObject.__)('Show empty terms'),
6334            checked: showEmpty,
6335            onChange: toggleAttribute('showEmpty')
6336          }), isHierarchicalTaxonomy && !showOnlyTopLevel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6337            __nextHasNoMarginBottom: true,
6338            label: (0,external_wp_i18n_namespaceObject.__)('Show hierarchy'),
6339            checked: showHierarchy,
6340            onChange: toggleAttribute('showHierarchy')
6341          })]
6342        })
6343      }), isResolving && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
6344        icon: library_pin,
6345        label: (0,external_wp_i18n_namespaceObject.__)('Terms'),
6346        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
6347      }), !isResolving && categories?.length === 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
6348        children: taxonomy.labels.no_terms
6349      }), !isResolving && categories?.length > 0 && (displayAsDropdown ? renderCategoryDropdown() : renderCategoryList())]
6350    });
6351  }
6352  
6353  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/variations.js
6354  /**
6355   * WordPress dependencies
6356   */
6357  
6358  
6359  const variations = [{
6360    name: 'terms',
6361    title: (0,external_wp_i18n_namespaceObject.__)('Terms List'),
6362    icon: library_category,
6363    attributes: {
6364      // We need to set an attribute here that will be set when inserting the block.
6365      // We cannot leave this empty, as that would be interpreted as the default value,
6366      // which is `category` -- for which we're defining a distinct variation below,
6367      // for backwards compatibility reasons.
6368      // The logical fallback is thus the only other built-in and public taxonomy: Tags.
6369      taxonomy: 'post_tag'
6370    },
6371    isActive: blockAttributes =>
6372    // This variation is used for any taxonomy other than `category`.
6373    blockAttributes.taxonomy !== 'category'
6374  }, {
6375    name: 'categories',
6376    title: (0,external_wp_i18n_namespaceObject.__)('Categories List'),
6377    description: (0,external_wp_i18n_namespaceObject.__)('Display a list of all categories.'),
6378    icon: library_category,
6379    attributes: {
6380      taxonomy: 'category'
6381    },
6382    isActive: ['taxonomy'],
6383    // The following is needed to prevent "Terms List" from showing up twice in the inserter
6384    // (once for the block, once for the variation). Fortunately, it does not collide with
6385    // `categories` being the default value of the `taxonomy` attribute.
6386    isDefault: true
6387  }];
6388  /* harmony default export */ const categories_variations = (variations);
6389  
6390  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/index.js
6391  /**
6392   * WordPress dependencies
6393   */
6394  
6395  
6396  /**
6397   * Internal dependencies
6398   */
6399  
6400  const categories_metadata = {
6401    $schema: "https://schemas.wp.org/trunk/block.json",
6402    apiVersion: 3,
6403    name: "core/categories",
6404    title: "Terms List",
6405    category: "widgets",
6406    description: "Display a list of all terms of a given taxonomy.",
6407    keywords: ["categories"],
6408    textdomain: "default",
6409    attributes: {
6410      taxonomy: {
6411        type: "string",
6412        "default": "category"
6413      },
6414      displayAsDropdown: {
6415        type: "boolean",
6416        "default": false
6417      },
6418      showHierarchy: {
6419        type: "boolean",
6420        "default": false
6421      },
6422      showPostCounts: {
6423        type: "boolean",
6424        "default": false
6425      },
6426      showOnlyTopLevel: {
6427        type: "boolean",
6428        "default": false
6429      },
6430      showEmpty: {
6431        type: "boolean",
6432        "default": false
6433      },
6434      label: {
6435        type: "string",
6436        role: "content"
6437      },
6438      showLabel: {
6439        type: "boolean",
6440        "default": true
6441      }
6442    },
6443    usesContext: ["enhancedPagination"],
6444    supports: {
6445      align: true,
6446      html: false,
6447      spacing: {
6448        margin: true,
6449        padding: true,
6450        __experimentalDefaultControls: {
6451          margin: false,
6452          padding: false
6453        }
6454      },
6455      typography: {
6456        fontSize: true,
6457        lineHeight: true,
6458        __experimentalFontFamily: true,
6459        __experimentalFontWeight: true,
6460        __experimentalFontStyle: true,
6461        __experimentalTextTransform: true,
6462        __experimentalTextDecoration: true,
6463        __experimentalLetterSpacing: true,
6464        __experimentalDefaultControls: {
6465          fontSize: true
6466        }
6467      },
6468      interactivity: {
6469        clientNavigation: true
6470      },
6471      __experimentalBorder: {
6472        radius: true,
6473        color: true,
6474        width: true,
6475        style: true,
6476        __experimentalDefaultControls: {
6477          radius: true,
6478          color: true,
6479          width: true,
6480          style: true
6481        }
6482      }
6483    },
6484    editorStyle: "wp-block-categories-editor",
6485    style: "wp-block-categories"
6486  };
6487  
6488  
6489  const {
6490    name: categories_name
6491  } = categories_metadata;
6492  
6493  const categories_settings = {
6494    icon: library_category,
6495    example: {},
6496    edit: CategoriesEdit,
6497    variations: categories_variations
6498  };
6499  const categories_init = () => initBlock({
6500    name: categories_name,
6501    metadata: categories_metadata,
6502    settings: categories_settings
6503  });
6504  
6505  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/classic.js
6506  /**
6507   * WordPress dependencies
6508   */
6509  
6510  
6511  const classic = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6512    viewBox: "0 0 24 24",
6513    xmlns: "http://www.w3.org/2000/svg",
6514    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6515      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"
6516    })
6517  });
6518  /* harmony default export */ const library_classic = (classic);
6519  
6520  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/convert-to-blocks-button.js
6521  /**
6522   * WordPress dependencies
6523   */
6524  
6525  
6526  
6527  
6528  
6529  
6530  const ConvertToBlocksButton = ({
6531    clientId
6532  }) => {
6533    const {
6534      replaceBlocks
6535    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
6536    const block = (0,external_wp_data_namespaceObject.useSelect)(select => {
6537      return select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId);
6538    }, [clientId]);
6539    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
6540      onClick: () => replaceBlocks(block.clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({
6541        HTML: (0,external_wp_blocks_namespaceObject.serialize)(block)
6542      })),
6543      children: (0,external_wp_i18n_namespaceObject.__)('Convert to blocks')
6544    });
6545  };
6546  /* harmony default export */ const convert_to_blocks_button = (ConvertToBlocksButton);
6547  
6548  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/fullscreen.js
6549  /**
6550   * WordPress dependencies
6551   */
6552  
6553  
6554  const fullscreen = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6555    xmlns: "http://www.w3.org/2000/svg",
6556    viewBox: "0 0 24 24",
6557    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6558      d: "M6 4a2 2 0 0 0-2 2v3h1.5V6a.5.5 0 0 1 .5-.5h3V4H6Zm3 14.5H6a.5.5 0 0 1-.5-.5v-3H4v3a2 2 0 0 0 2 2h3v-1.5Zm6 1.5v-1.5h3a.5.5 0 0 0 .5-.5v-3H20v3a2 2 0 0 1-2 2h-3Zm3-16a2 2 0 0 1 2 2v3h-1.5V6a.5.5 0 0 0-.5-.5h-3V4h3Z"
6559    })
6560  });
6561  /* harmony default export */ const library_fullscreen = (fullscreen);
6562  
6563  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/modal.js
6564  /**
6565   * WordPress dependencies
6566   */
6567  
6568  
6569  
6570  
6571  
6572  
6573  
6574  
6575  
6576  
6577  function ModalAuxiliaryActions({
6578    onClick,
6579    isModalFullScreen
6580  }) {
6581    // 'small' to match the rules in editor.scss.
6582    const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
6583    if (isMobileViewport) {
6584      return null;
6585    }
6586    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
6587      size: "small",
6588      onClick: onClick,
6589      icon: library_fullscreen,
6590      isPressed: isModalFullScreen,
6591      label: isModalFullScreen ? (0,external_wp_i18n_namespaceObject.__)('Exit fullscreen') : (0,external_wp_i18n_namespaceObject.__)('Enter fullscreen')
6592    });
6593  }
6594  function ClassicEdit(props) {
6595    const styles = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().styles);
6596    (0,external_wp_element_namespaceObject.useEffect)(() => {
6597      const {
6598        baseURL,
6599        suffix,
6600        settings
6601      } = window.wpEditorL10n.tinymce;
6602      window.tinymce.EditorManager.overrideDefaults({
6603        base_url: baseURL,
6604        suffix
6605      });
6606      window.wp.oldEditor.initialize(props.id, {
6607        tinymce: {
6608          ...settings,
6609          setup(editor) {
6610            editor.on('init', () => {
6611              const doc = editor.getDoc();
6612              styles.forEach(({
6613                css
6614              }) => {
6615                const styleEl = doc.createElement('style');
6616                styleEl.innerHTML = css;
6617                doc.head.appendChild(styleEl);
6618              });
6619            });
6620          }
6621        }
6622      });
6623      return () => {
6624        window.wp.oldEditor.remove(props.id);
6625      };
6626    }, []);
6627    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("textarea", {
6628      ...props
6629    });
6630  }
6631  function ModalEdit(props) {
6632    const {
6633      clientId,
6634      attributes: {
6635        content
6636      },
6637      setAttributes,
6638      onReplace
6639    } = props;
6640    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
6641    const [isModalFullScreen, setIsModalFullScreen] = (0,external_wp_element_namespaceObject.useState)(false);
6642    const id = `editor-$clientId}`;
6643    const onClose = () => content ? setOpen(false) : onReplace([]);
6644    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
6645      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
6646        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
6647          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
6648            onClick: () => setOpen(true),
6649            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
6650          })
6651        })
6652      }), content && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
6653        children: content
6654      }), (isOpen || !content) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
6655        title: (0,external_wp_i18n_namespaceObject.__)('Classic Editor'),
6656        onRequestClose: onClose,
6657        shouldCloseOnClickOutside: false,
6658        overlayClassName: "block-editor-freeform-modal",
6659        isFullScreen: isModalFullScreen,
6660        className: "block-editor-freeform-modal__content",
6661        headerActions: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ModalAuxiliaryActions, {
6662          onClick: () => setIsModalFullScreen(!isModalFullScreen),
6663          isModalFullScreen: isModalFullScreen
6664        }),
6665        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ClassicEdit, {
6666          id: id,
6667          defaultValue: content
6668        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
6669          className: "block-editor-freeform-modal__actions",
6670          justify: "flex-end",
6671          expanded: false,
6672          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
6673            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
6674              __next40pxDefaultSize: true,
6675              variant: "tertiary",
6676              onClick: onClose,
6677              children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
6678            })
6679          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
6680            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
6681              __next40pxDefaultSize: true,
6682              variant: "primary",
6683              onClick: () => {
6684                setAttributes({
6685                  content: window.wp.oldEditor.getContent(id)
6686                });
6687                setOpen(false);
6688              },
6689              children: (0,external_wp_i18n_namespaceObject.__)('Save')
6690            })
6691          })]
6692        })]
6693      })]
6694    });
6695  }
6696  
6697  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/edit.js
6698  /**
6699   * WordPress dependencies
6700   */
6701  
6702  
6703  
6704  
6705  
6706  
6707  
6708  
6709  /**
6710   * Internal dependencies
6711   */
6712  
6713  
6714  
6715  
6716  
6717  const {
6718    wp
6719  } = window;
6720  function isTmceEmpty(editor) {
6721    // When tinyMce is empty the content seems to be:
6722    // <p><br data-mce-bogus="1"></p>
6723    // avoid expensive checks for large documents
6724    const body = editor.getBody();
6725    if (body.childNodes.length > 1) {
6726      return false;
6727    } else if (body.childNodes.length === 0) {
6728      return true;
6729    }
6730    if (body.childNodes[0].childNodes.length > 1) {
6731      return false;
6732    }
6733    return /^\n?$/.test(body.innerText || body.textContent);
6734  }
6735  function FreeformEdit(props) {
6736    const {
6737      clientId
6738    } = props;
6739    const canRemove = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).canRemoveBlock(clientId), [clientId]);
6740    const [isIframed, setIsIframed] = (0,external_wp_element_namespaceObject.useState)(false);
6741    const ref = (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
6742      setIsIframed(element.ownerDocument !== document);
6743    }, []);
6744    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
6745      children: [canRemove && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
6746        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
6747          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(convert_to_blocks_button, {
6748            clientId: clientId
6749          })
6750        })
6751      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6752        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
6753          ref
6754        }),
6755        children: isIframed ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ModalEdit, {
6756          ...props
6757        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ClassicEdit, {
6758          ...props
6759        })
6760      })]
6761    });
6762  }
6763  function edit_ClassicEdit({
6764    clientId,
6765    attributes: {
6766      content
6767    },
6768    setAttributes,
6769    onReplace
6770  }) {
6771    const {
6772      getMultiSelectedBlockClientIds
6773    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
6774    const didMountRef = (0,external_wp_element_namespaceObject.useRef)(false);
6775    (0,external_wp_element_namespaceObject.useEffect)(() => {
6776      if (!didMountRef.current) {
6777        return;
6778      }
6779      const editor = window.tinymce.get(`editor-$clientId}`);
6780      if (!editor) {
6781        return;
6782      }
6783      const currentContent = editor.getContent();
6784      if (currentContent !== content) {
6785        editor.setContent(content || '');
6786      }
6787    }, [clientId, content]);
6788    (0,external_wp_element_namespaceObject.useEffect)(() => {
6789      const {
6790        baseURL,
6791        suffix
6792      } = window.wpEditorL10n.tinymce;
6793      didMountRef.current = true;
6794      window.tinymce.EditorManager.overrideDefaults({
6795        base_url: baseURL,
6796        suffix
6797      });
6798      function onSetup(editor) {
6799        let bookmark;
6800        if (content) {
6801          editor.on('loadContent', () => editor.setContent(content));
6802        }
6803        editor.on('blur', () => {
6804          bookmark = editor.selection.getBookmark(2, true);
6805          // 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.
6806          // This causes a scroll to the top of editor content on return from some content updating dialogs so tracking
6807          // scroll position until this is fixed in core.
6808          const scrollContainer = document.querySelector('.interface-interface-skeleton__content');
6809          const scrollPosition = scrollContainer.scrollTop;
6810  
6811          // Only update attributes if we aren't multi-selecting blocks.
6812          // Updating during multi-selection can overwrite attributes of other blocks.
6813          if (!getMultiSelectedBlockClientIds()?.length) {
6814            setAttributes({
6815              content: editor.getContent()
6816            });
6817          }
6818          editor.once('focus', () => {
6819            if (bookmark) {
6820              editor.selection.moveToBookmark(bookmark);
6821              if (scrollContainer.scrollTop !== scrollPosition) {
6822                scrollContainer.scrollTop = scrollPosition;
6823              }
6824            }
6825          });
6826          return false;
6827        });
6828        editor.on('mousedown touchstart', () => {
6829          bookmark = null;
6830        });
6831        const debouncedOnChange = (0,external_wp_compose_namespaceObject.debounce)(() => {
6832          const value = editor.getContent();
6833          if (value !== editor._lastChange) {
6834            editor._lastChange = value;
6835            setAttributes({
6836              content: value
6837            });
6838          }
6839        }, 250);
6840        editor.on('Paste Change input Undo Redo', debouncedOnChange);
6841  
6842        // We need to cancel the debounce call because when we remove
6843        // the editor (onUnmount) this callback is executed in
6844        // another tick. This results in setting the content to empty.
6845        editor.on('remove', debouncedOnChange.cancel);
6846        editor.on('keydown', event => {
6847          if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z')) {
6848            // Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.
6849            event.stopPropagation();
6850          }
6851          if ((event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) && isTmceEmpty(editor)) {
6852            // Delete the block.
6853            onReplace([]);
6854            event.preventDefault();
6855            event.stopImmediatePropagation();
6856          }
6857          const {
6858            altKey
6859          } = event;
6860          /*
6861           * Prevent Mousetrap from kicking in: TinyMCE already uses its own
6862           * `alt+f10` shortcut to focus its toolbar.
6863           */
6864          if (altKey && event.keyCode === external_wp_keycodes_namespaceObject.F10) {
6865            event.stopPropagation();
6866          }
6867        });
6868        editor.on('init', () => {
6869          const rootNode = editor.getBody();
6870  
6871          // Create the toolbar by refocussing the editor.
6872          if (rootNode.ownerDocument.activeElement === rootNode) {
6873            rootNode.blur();
6874            editor.focus();
6875          }
6876        });
6877      }
6878      function initialize() {
6879        const {
6880          settings
6881        } = window.wpEditorL10n.tinymce;
6882        wp.oldEditor.initialize(`editor-$clientId}`, {
6883          tinymce: {
6884            ...settings,
6885            inline: true,
6886            content_css: false,
6887            fixed_toolbar_container: `#toolbar-$clientId}`,
6888            setup: onSetup
6889          }
6890        });
6891      }
6892      function onReadyStateChange() {
6893        if (document.readyState === 'complete') {
6894          initialize();
6895        }
6896      }
6897      if (document.readyState === 'complete') {
6898        initialize();
6899      } else {
6900        document.addEventListener('readystatechange', onReadyStateChange);
6901      }
6902      return () => {
6903        document.removeEventListener('readystatechange', onReadyStateChange);
6904        wp.oldEditor.remove(`editor-$clientId}`);
6905        didMountRef.current = false;
6906      };
6907    }, []);
6908    function focus() {
6909      const editor = window.tinymce.get(`editor-$clientId}`);
6910      if (editor) {
6911        editor.focus();
6912      }
6913    }
6914    function onToolbarKeyDown(event) {
6915      // Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.
6916      event.stopPropagation();
6917      // Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.
6918      event.nativeEvent.stopImmediatePropagation();
6919    }
6920  
6921    // Disable reasons:
6922    //
6923    // jsx-a11y/no-static-element-interactions
6924    //  - the toolbar itself is non-interactive, but must capture events
6925    //    from the KeyboardShortcuts component to stop their propagation.
6926  
6927    /* eslint-disable jsx-a11y/no-static-element-interactions */
6928    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
6929      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6930        id: `toolbar-$clientId}`,
6931        className: "block-library-classic__toolbar",
6932        onClick: focus,
6933        "data-placeholder": (0,external_wp_i18n_namespaceObject.__)('Classic'),
6934        onKeyDown: onToolbarKeyDown
6935      }, "toolbar"), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6936        id: `editor-$clientId}`,
6937        className: "wp-block-freeform block-library-rich-text__tinymce"
6938      }, "editor")]
6939    });
6940    /* eslint-enable jsx-a11y/no-static-element-interactions */
6941  }
6942  
6943  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/save.js
6944  /**
6945   * WordPress dependencies
6946   */
6947  
6948  
6949  function freeform_save_save({
6950    attributes
6951  }) {
6952    const {
6953      content
6954    } = attributes;
6955    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
6956      children: content
6957    });
6958  }
6959  
6960  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/index.js
6961  /**
6962   * WordPress dependencies
6963   */
6964  
6965  
6966  /**
6967   * Internal dependencies
6968   */
6969  
6970  
6971  const freeform_metadata = {
6972    $schema: "https://schemas.wp.org/trunk/block.json",
6973    apiVersion: 3,
6974    name: "core/freeform",
6975    title: "Classic",
6976    category: "text",
6977    description: "Use the classic WordPress editor.",
6978    textdomain: "default",
6979    attributes: {
6980      content: {
6981        type: "string",
6982        source: "raw"
6983      }
6984    },
6985    supports: {
6986      className: false,
6987      customClassName: false,
6988      reusable: false
6989    },
6990    editorStyle: "wp-block-freeform-editor"
6991  };
6992  
6993  const {
6994    name: freeform_name
6995  } = freeform_metadata;
6996  
6997  const freeform_settings = {
6998    icon: library_classic,
6999    edit: FreeformEdit,
7000    save: freeform_save_save
7001  };
7002  const freeform_init = () => initBlock({
7003    name: freeform_name,
7004    metadata: freeform_metadata,
7005    settings: freeform_settings
7006  });
7007  
7008  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js
7009  /**
7010   * WordPress dependencies
7011   */
7012  
7013  
7014  const code = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
7015    viewBox: "0 0 24 24",
7016    xmlns: "http://www.w3.org/2000/svg",
7017    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
7018      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"
7019    })
7020  });
7021  /* harmony default export */ const library_code = (code);
7022  
7023  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/edit.js
7024  /**
7025   * WordPress dependencies
7026   */
7027  
7028  
7029  
7030  
7031  function CodeEdit({
7032    attributes,
7033    setAttributes,
7034    onRemove,
7035    insertBlocksAfter,
7036    mergeBlocks
7037  }) {
7038    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
7039    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
7040      ...blockProps,
7041      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
7042        tagName: "code",
7043        identifier: "content",
7044        value: attributes.content,
7045        onChange: content => setAttributes({
7046          content
7047        }),
7048        onRemove: onRemove,
7049        onMerge: mergeBlocks,
7050        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write code…'),
7051        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Code'),
7052        preserveWhiteSpace: true,
7053        __unstablePastePlainText: true,
7054        __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
7055      })
7056    });
7057  }
7058  
7059  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/utils.js
7060  /**
7061   * WordPress dependencies
7062   */
7063  
7064  
7065  /**
7066   * Escapes ampersands, shortcodes, and links.
7067   *
7068   * @param {string} content The content of a code block.
7069   * @return {string} The given content with some characters escaped.
7070   */
7071  function utils_escape(content) {
7072    return (0,external_wp_compose_namespaceObject.pipe)(escapeOpeningSquareBrackets, escapeProtocolInIsolatedUrls)(content || '');
7073  }
7074  
7075  /**
7076   * Returns the given content with all opening shortcode characters converted
7077   * into their HTML entity counterpart (i.e. [ => &#91;). For instance, a
7078   * shortcode like [embed] becomes &#91;embed]
7079   *
7080   * This function replicates the escaping of HTML tags, where a tag like
7081   * <strong> becomes &lt;strong>.
7082   *
7083   * @param {string} content The content of a code block.
7084   * @return {string} The given content with its opening shortcode characters
7085   *                  converted into their HTML entity counterpart
7086   *                  (i.e. [ => &#91;)
7087   */
7088  function escapeOpeningSquareBrackets(content) {
7089    return content.replace(/\[/g, '&#91;');
7090  }
7091  
7092  /**
7093   * Converts the first two forward slashes of any isolated URL into their HTML
7094   * counterparts (i.e. // => &#47;&#47;). For instance, https://youtube.com/watch?x
7095   * becomes https:&#47;&#47;youtube.com/watch?x.
7096   *
7097   * An isolated URL is a URL that sits in its own line, surrounded only by spacing
7098   * characters.
7099   *
7100   * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403
7101   *
7102   * @param {string} content The content of a code block.
7103   * @return {string} The given content with its ampersands converted into
7104   *                  their HTML entity counterpart (i.e. & => &amp;)
7105   */
7106  function escapeProtocolInIsolatedUrls(content) {
7107    return content.replace(/^(\s*https?:)\/\/([^\s<>"]+\s*)$/m, '$1&#47;&#47;$2');
7108  }
7109  
7110  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/save.js
7111  /**
7112   * WordPress dependencies
7113   */
7114  
7115  
7116  /**
7117   * Internal dependencies
7118   */
7119  
7120  
7121  function code_save_save({
7122    attributes
7123  }) {
7124    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
7125      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
7126      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
7127        tagName: "code"
7128        // To do: `escape` encodes characters in shortcodes and URLs to
7129        // prevent embedding in PHP. Ideally checks for the code block,
7130        // or pre/code tags, should be made on the PHP side?
7131        ,
7132        value: utils_escape(typeof attributes.content === 'string' ? attributes.content : attributes.content.toHTMLString({
7133          preserveWhiteSpace: true
7134        }))
7135      })
7136    });
7137  }
7138  
7139  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/transforms.js
7140  /**
7141   * WordPress dependencies
7142   */
7143  
7144  
7145  
7146  /**
7147   * Internal dependencies
7148   */
7149  
7150  const code_transforms_transforms = {
7151    from: [{
7152      type: 'enter',
7153      regExp: /^```$/,
7154      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/code')
7155    }, {
7156      type: 'block',
7157      blocks: ['core/paragraph'],
7158      transform: ({
7159        content,
7160        metadata
7161      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', {
7162        content,
7163        metadata: getTransformedMetadata(metadata, 'core/code')
7164      })
7165    }, {
7166      type: 'block',
7167      blocks: ['core/html'],
7168      transform: ({
7169        content: text,
7170        metadata
7171      }) => {
7172        return (0,external_wp_blocks_namespaceObject.createBlock)('core/code', {
7173          // The HTML is plain text (with plain line breaks), so
7174          // convert it to rich text.
7175          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
7176            value: (0,external_wp_richText_namespaceObject.create)({
7177              text
7178            })
7179          }),
7180          metadata: getTransformedMetadata(metadata, 'core/code')
7181        });
7182      }
7183    }, {
7184      type: 'raw',
7185      isMatch: node => node.nodeName === 'PRE' && node.children.length === 1 && node.firstChild.nodeName === 'CODE',
7186      schema: {
7187        pre: {
7188          children: {
7189            code: {
7190              children: {
7191                '#text': {}
7192              }
7193            }
7194          }
7195        }
7196      }
7197    }],
7198    to: [{
7199      type: 'block',
7200      blocks: ['core/paragraph'],
7201      transform: ({
7202        content,
7203        metadata
7204      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
7205        content,
7206        metadata: getTransformedMetadata(metadata, 'core/paragraph')
7207      })
7208    }]
7209  };
7210  /* harmony default export */ const code_transforms = (code_transforms_transforms);
7211  
7212  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/index.js
7213  /**
7214   * WordPress dependencies
7215   */
7216  
7217  
7218  
7219  /**
7220   * Internal dependencies
7221   */
7222  
7223  
7224  const code_metadata = {
7225    $schema: "https://schemas.wp.org/trunk/block.json",
7226    apiVersion: 3,
7227    name: "core/code",
7228    title: "Code",
7229    category: "text",
7230    description: "Display code snippets that respect your spacing and tabs.",
7231    textdomain: "default",
7232    attributes: {
7233      content: {
7234        type: "rich-text",
7235        source: "rich-text",
7236        selector: "code",
7237        __unstablePreserveWhiteSpace: true
7238      }
7239    },
7240    supports: {
7241      align: ["wide"],
7242      anchor: true,
7243      typography: {
7244        fontSize: true,
7245        lineHeight: true,
7246        __experimentalFontFamily: true,
7247        __experimentalFontWeight: true,
7248        __experimentalFontStyle: true,
7249        __experimentalTextTransform: true,
7250        __experimentalTextDecoration: true,
7251        __experimentalLetterSpacing: true,
7252        __experimentalDefaultControls: {
7253          fontSize: true
7254        }
7255      },
7256      spacing: {
7257        margin: ["top", "bottom"],
7258        padding: true,
7259        __experimentalDefaultControls: {
7260          margin: false,
7261          padding: false
7262        }
7263      },
7264      __experimentalBorder: {
7265        radius: true,
7266        color: true,
7267        width: true,
7268        style: true,
7269        __experimentalDefaultControls: {
7270          width: true,
7271          color: true
7272        }
7273      },
7274      color: {
7275        text: true,
7276        background: true,
7277        gradients: true,
7278        __experimentalDefaultControls: {
7279          background: true,
7280          text: true
7281        }
7282      },
7283      interactivity: {
7284        clientNavigation: true
7285      }
7286    },
7287    style: "wp-block-code"
7288  };
7289  
7290  
7291  const {
7292    name: code_name
7293  } = code_metadata;
7294  
7295  const code_settings = {
7296    icon: library_code,
7297    example: {
7298      attributes: {
7299        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
7300        // translators: Preserve \n markers for line breaks
7301        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 );')
7302        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
7303      }
7304    },
7305    merge(attributes, attributesToMerge) {
7306      return {
7307        content: attributes.content + '\n\n' + attributesToMerge.content
7308      };
7309    },
7310    transforms: code_transforms,
7311    edit: CodeEdit,
7312    save: code_save_save
7313  };
7314  const code_init = () => initBlock({
7315    name: code_name,
7316    metadata: code_metadata,
7317    settings: code_settings
7318  });
7319  
7320  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/column.js
7321  /**
7322   * WordPress dependencies
7323   */
7324  
7325  
7326  const column = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
7327    xmlns: "http://www.w3.org/2000/svg",
7328    viewBox: "0 0 24 24",
7329    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
7330      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"
7331    })
7332  });
7333  /* harmony default export */ const library_column = (column);
7334  
7335  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/deprecated.js
7336  /**
7337   * External dependencies
7338   */
7339  
7340  
7341  /**
7342   * WordPress dependencies
7343   */
7344  
7345  
7346  const column_deprecated_deprecated = [{
7347    attributes: {
7348      verticalAlignment: {
7349        type: 'string'
7350      },
7351      width: {
7352        type: 'number',
7353        min: 0,
7354        max: 100
7355      }
7356    },
7357    isEligible({
7358      width
7359    }) {
7360      return isFinite(width);
7361    },
7362    migrate(attributes) {
7363      return {
7364        ...attributes,
7365        width: `$attributes.width}%`
7366      };
7367    },
7368    save({
7369      attributes
7370    }) {
7371      const {
7372        verticalAlignment,
7373        width
7374      } = attributes;
7375      const wrapperClasses = dist_clsx({
7376        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7377      });
7378      const style = {
7379        flexBasis: width + '%'
7380      };
7381      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7382        className: wrapperClasses,
7383        style: style,
7384        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
7385      });
7386    }
7387  }];
7388  /* harmony default export */ const column_deprecated = (column_deprecated_deprecated);
7389  
7390  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/edit.js
7391  /**
7392   * External dependencies
7393   */
7394  
7395  
7396  /**
7397   * WordPress dependencies
7398   */
7399  
7400  
7401  
7402  
7403  
7404  
7405  
7406  function ColumnInspectorControls({
7407    width,
7408    setAttributes
7409  }) {
7410    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
7411    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
7412      availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw']
7413    });
7414    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
7415      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
7416      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
7417        label: (0,external_wp_i18n_namespaceObject.__)('Width'),
7418        __unstableInputWidth: "calc(50% - 8px)",
7419        __next40pxDefaultSize: true,
7420        value: width || '',
7421        onChange: nextWidth => {
7422          nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
7423          setAttributes({
7424            width: nextWidth
7425          });
7426        },
7427        units: units
7428      })
7429    });
7430  }
7431  function ColumnEdit({
7432    attributes: {
7433      verticalAlignment,
7434      width,
7435      templateLock,
7436      allowedBlocks
7437    },
7438    setAttributes,
7439    clientId
7440  }) {
7441    const classes = dist_clsx('block-core-columns', {
7442      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7443    });
7444    const {
7445      columnsIds,
7446      hasChildBlocks,
7447      rootClientId
7448    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
7449      const {
7450        getBlockOrder,
7451        getBlockRootClientId
7452      } = select(external_wp_blockEditor_namespaceObject.store);
7453      const rootId = getBlockRootClientId(clientId);
7454      return {
7455        hasChildBlocks: getBlockOrder(clientId).length > 0,
7456        rootClientId: rootId,
7457        columnsIds: getBlockOrder(rootId)
7458      };
7459    }, [clientId]);
7460    const {
7461      updateBlockAttributes
7462    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
7463    const updateAlignment = value => {
7464      // Update own alignment.
7465      setAttributes({
7466        verticalAlignment: value
7467      });
7468      // Reset parent Columns block.
7469      updateBlockAttributes(rootClientId, {
7470        verticalAlignment: null
7471      });
7472    };
7473    const widthWithUnit = Number.isFinite(width) ? width + '%' : width;
7474    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
7475      className: classes,
7476      style: widthWithUnit ? {
7477        flexBasis: widthWithUnit
7478      } : undefined
7479    });
7480    const columnsCount = columnsIds.length;
7481    const currentColumnPosition = columnsIds.indexOf(clientId) + 1;
7482    const label = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Block label (i.e. "Block: Column"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */
7483    (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$d of %3$d)'), blockProps['aria-label'], currentColumnPosition, columnsCount);
7484    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
7485      ...blockProps,
7486      'aria-label': label
7487    }, {
7488      templateLock,
7489      allowedBlocks,
7490      renderAppender: hasChildBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
7491    });
7492    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
7493      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
7494        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, {
7495          onChange: updateAlignment,
7496          value: verticalAlignment,
7497          controls: ['top', 'center', 'bottom', 'stretch']
7498        })
7499      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
7500        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ColumnInspectorControls, {
7501          width: width,
7502          setAttributes: setAttributes
7503        })
7504      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7505        ...innerBlocksProps
7506      })]
7507    });
7508  }
7509  /* harmony default export */ const column_edit = (ColumnEdit);
7510  
7511  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/save.js
7512  /**
7513   * External dependencies
7514   */
7515  
7516  
7517  /**
7518   * WordPress dependencies
7519   */
7520  
7521  
7522  function column_save_save({
7523    attributes
7524  }) {
7525    const {
7526      verticalAlignment,
7527      width
7528    } = attributes;
7529    const wrapperClasses = dist_clsx({
7530      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7531    });
7532    let style;
7533    if (width && /\d/.test(width)) {
7534      // Numbers are handled for backward compatibility as they can be still provided with templates.
7535      let flexBasis = Number.isFinite(width) ? width + '%' : width;
7536      // In some cases we need to round the width to a shorter float.
7537      if (!Number.isFinite(width) && width?.endsWith('%')) {
7538        const multiplier = 1000000000000;
7539        // Shrink the number back to a reasonable float.
7540        flexBasis = Math.round(Number.parseFloat(width) * multiplier) / multiplier + '%';
7541      }
7542      style = {
7543        flexBasis
7544      };
7545    }
7546    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
7547      className: wrapperClasses,
7548      style
7549    });
7550    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
7551    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7552      ...innerBlocksProps
7553    });
7554  }
7555  
7556  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/index.js
7557  /**
7558   * WordPress dependencies
7559   */
7560  
7561  
7562  /**
7563   * Internal dependencies
7564   */
7565  
7566  
7567  
7568  const column_metadata = {
7569    $schema: "https://schemas.wp.org/trunk/block.json",
7570    apiVersion: 3,
7571    name: "core/column",
7572    title: "Column",
7573    category: "design",
7574    parent: ["core/columns"],
7575    description: "A single column within a columns block.",
7576    textdomain: "default",
7577    attributes: {
7578      verticalAlignment: {
7579        type: "string"
7580      },
7581      width: {
7582        type: "string"
7583      },
7584      allowedBlocks: {
7585        type: "array"
7586      },
7587      templateLock: {
7588        type: ["string", "boolean"],
7589        "enum": ["all", "insert", "contentOnly", false]
7590      }
7591    },
7592    supports: {
7593      __experimentalOnEnter: true,
7594      anchor: true,
7595      reusable: false,
7596      html: false,
7597      color: {
7598        gradients: true,
7599        heading: true,
7600        button: true,
7601        link: true,
7602        __experimentalDefaultControls: {
7603          background: true,
7604          text: true
7605        }
7606      },
7607      shadow: true,
7608      spacing: {
7609        blockGap: true,
7610        padding: true,
7611        __experimentalDefaultControls: {
7612          padding: true,
7613          blockGap: true
7614        }
7615      },
7616      __experimentalBorder: {
7617        color: true,
7618        radius: true,
7619        style: true,
7620        width: true,
7621        __experimentalDefaultControls: {
7622          color: true,
7623          radius: true,
7624          style: true,
7625          width: true
7626        }
7627      },
7628      typography: {
7629        fontSize: true,
7630        lineHeight: true,
7631        __experimentalFontFamily: true,
7632        __experimentalFontWeight: true,
7633        __experimentalFontStyle: true,
7634        __experimentalTextTransform: true,
7635        __experimentalTextDecoration: true,
7636        __experimentalLetterSpacing: true,
7637        __experimentalDefaultControls: {
7638          fontSize: true
7639        }
7640      },
7641      layout: true,
7642      interactivity: {
7643        clientNavigation: true
7644      }
7645    }
7646  };
7647  
7648  const {
7649    name: column_name
7650  } = column_metadata;
7651  
7652  const column_settings = {
7653    icon: library_column,
7654    edit: column_edit,
7655    save: column_save_save,
7656    deprecated: column_deprecated
7657  };
7658  const column_init = () => initBlock({
7659    name: column_name,
7660    metadata: column_metadata,
7661    settings: column_settings
7662  });
7663  
7664  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/columns.js
7665  /**
7666   * WordPress dependencies
7667   */
7668  
7669  
7670  const columns = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
7671    viewBox: "0 0 24 24",
7672    xmlns: "http://www.w3.org/2000/svg",
7673    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
7674      fillRule: "evenodd",
7675      clipRule: "evenodd",
7676      d: "M15 7.5h-5v10h5v-10Zm1.5 0v10H19a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5h-2.5ZM6 7.5h2.5v10H6a.5.5 0 0 1-.5-.5V8a.5.5 0 0 1 .5-.5ZM6 6h13a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2Z"
7677    })
7678  });
7679  /* harmony default export */ const library_columns = (columns);
7680  
7681  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/deprecated.js
7682  /**
7683   * External dependencies
7684   */
7685  
7686  
7687  /**
7688   * WordPress dependencies
7689   */
7690  
7691  
7692  
7693  /**
7694   * Given an HTML string for a deprecated columns inner block, returns the
7695   * column index to which the migrated inner block should be assigned. Returns
7696   * undefined if the inner block was not assigned to a column.
7697   *
7698   * @param {string} originalContent Deprecated Columns inner block HTML.
7699   *
7700   * @return {number | undefined} Column to which inner block is to be assigned.
7701   */
7702  
7703  function getDeprecatedLayoutColumn(originalContent) {
7704    let {
7705      doc
7706    } = getDeprecatedLayoutColumn;
7707    if (!doc) {
7708      doc = document.implementation.createHTMLDocument('');
7709      getDeprecatedLayoutColumn.doc = doc;
7710    }
7711    let columnMatch;
7712    doc.body.innerHTML = originalContent;
7713    for (const classListItem of doc.body.firstChild.classList) {
7714      if (columnMatch = classListItem.match(/^layout-column-(\d+)$/)) {
7715        return Number(columnMatch[1]) - 1;
7716      }
7717    }
7718  }
7719  const migrateCustomColors = attributes => {
7720    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
7721      return attributes;
7722    }
7723    const style = {
7724      color: {}
7725    };
7726    if (attributes.customTextColor) {
7727      style.color.text = attributes.customTextColor;
7728    }
7729    if (attributes.customBackgroundColor) {
7730      style.color.background = attributes.customBackgroundColor;
7731    }
7732    const {
7733      customTextColor,
7734      customBackgroundColor,
7735      ...restAttributes
7736    } = attributes;
7737    return {
7738      ...restAttributes,
7739      style,
7740      isStackedOnMobile: true
7741    };
7742  };
7743  /* harmony default export */ const columns_deprecated = ([{
7744    attributes: {
7745      verticalAlignment: {
7746        type: 'string'
7747      },
7748      backgroundColor: {
7749        type: 'string'
7750      },
7751      customBackgroundColor: {
7752        type: 'string'
7753      },
7754      customTextColor: {
7755        type: 'string'
7756      },
7757      textColor: {
7758        type: 'string'
7759      }
7760    },
7761    migrate: migrateCustomColors,
7762    save({
7763      attributes
7764    }) {
7765      const {
7766        verticalAlignment,
7767        backgroundColor,
7768        customBackgroundColor,
7769        textColor,
7770        customTextColor
7771      } = attributes;
7772      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
7773      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
7774      const className = dist_clsx({
7775        'has-background': backgroundColor || customBackgroundColor,
7776        'has-text-color': textColor || customTextColor,
7777        [backgroundClass]: backgroundClass,
7778        [textClass]: textClass,
7779        [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7780      });
7781      const style = {
7782        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
7783        color: textClass ? undefined : customTextColor
7784      };
7785      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7786        className: className ? className : undefined,
7787        style: style,
7788        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
7789      });
7790    }
7791  }, {
7792    attributes: {
7793      columns: {
7794        type: 'number',
7795        default: 2
7796      }
7797    },
7798    isEligible(attributes, innerBlocks) {
7799      // Since isEligible is called on every valid instance of the
7800      // Columns block and a deprecation is the unlikely case due to
7801      // its subsequent migration, optimize for the `false` condition
7802      // by performing a naive, inaccurate pass at inner blocks.
7803      const isFastPassEligible = innerBlocks.some(innerBlock => /layout-column-\d+/.test(innerBlock.originalContent));
7804      if (!isFastPassEligible) {
7805        return false;
7806      }
7807  
7808      // Only if the fast pass is considered eligible is the more
7809      // accurate, durable, slower condition performed.
7810      return innerBlocks.some(innerBlock => getDeprecatedLayoutColumn(innerBlock.originalContent) !== undefined);
7811    },
7812    migrate(attributes, innerBlocks) {
7813      const columns = innerBlocks.reduce((accumulator, innerBlock) => {
7814        const {
7815          originalContent
7816        } = innerBlock;
7817        let columnIndex = getDeprecatedLayoutColumn(originalContent);
7818        if (columnIndex === undefined) {
7819          columnIndex = 0;
7820        }
7821        if (!accumulator[columnIndex]) {
7822          accumulator[columnIndex] = [];
7823        }
7824        accumulator[columnIndex].push(innerBlock);
7825        return accumulator;
7826      }, []);
7827      const migratedInnerBlocks = columns.map(columnBlocks => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, columnBlocks));
7828      const {
7829        columns: ignoredColumns,
7830        ...restAttributes
7831      } = attributes;
7832      return [{
7833        ...restAttributes,
7834        isStackedOnMobile: true
7835      }, migratedInnerBlocks];
7836    },
7837    save({
7838      attributes
7839    }) {
7840      const {
7841        columns
7842      } = attributes;
7843      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7844        className: `has-$columns}-columns`,
7845        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
7846      });
7847    }
7848  }, {
7849    attributes: {
7850      columns: {
7851        type: 'number',
7852        default: 2
7853      }
7854    },
7855    migrate(attributes, innerBlocks) {
7856      const {
7857        columns,
7858        ...restAttributes
7859      } = attributes;
7860      attributes = {
7861        ...restAttributes,
7862        isStackedOnMobile: true
7863      };
7864      return [attributes, innerBlocks];
7865    },
7866    save({
7867      attributes
7868    }) {
7869      const {
7870        verticalAlignment,
7871        columns
7872      } = attributes;
7873      const wrapperClasses = dist_clsx(`has-$columns}-columns`, {
7874        [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7875      });
7876      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7877        className: wrapperClasses,
7878        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
7879      });
7880    }
7881  }]);
7882  
7883  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/utils.js
7884  /**
7885   * Returns a column width attribute value rounded to standard precision.
7886   * Returns `undefined` if the value is not a valid finite number.
7887   *
7888   * @param {?number} value Raw value.
7889   *
7890   * @return {number} Value rounded to standard precision.
7891   */
7892  const toWidthPrecision = value => {
7893    const unitlessValue = parseFloat(value);
7894    return Number.isFinite(unitlessValue) ? parseFloat(unitlessValue.toFixed(2)) : undefined;
7895  };
7896  /**
7897   * Returns an effective width for a given block. An effective width is equal to
7898   * its attribute value if set, or a computed value assuming equal distribution.
7899   *
7900   * @param {WPBlock} block           Block object.
7901   * @param {number}  totalBlockCount Total number of blocks in Columns.
7902   *
7903   * @return {number} Effective column width.
7904   */
7905  function getEffectiveColumnWidth(block, totalBlockCount) {
7906    const {
7907      width = 100 / totalBlockCount
7908    } = block.attributes;
7909    return toWidthPrecision(width);
7910  }
7911  
7912  /**
7913   * Returns the total width occupied by the given set of column blocks.
7914   *
7915   * @param {WPBlock[]} blocks          Block objects.
7916   * @param {?number}   totalBlockCount Total number of blocks in Columns.
7917   *                                    Defaults to number of blocks passed.
7918   *
7919   * @return {number} Total width occupied by blocks.
7920   */
7921  function getTotalColumnsWidth(blocks, totalBlockCount = blocks.length) {
7922    return blocks.reduce((sum, block) => sum + getEffectiveColumnWidth(block, totalBlockCount), 0);
7923  }
7924  
7925  /**
7926   * Returns an object of `clientId` → `width` of effective column widths.
7927   *
7928   * @param {WPBlock[]} blocks          Block objects.
7929   * @param {?number}   totalBlockCount Total number of blocks in Columns.
7930   *                                    Defaults to number of blocks passed.
7931   *
7932   * @return {Object<string,number>} Column widths.
7933   */
7934  function getColumnWidths(blocks, totalBlockCount = blocks.length) {
7935    return blocks.reduce((accumulator, block) => {
7936      const width = getEffectiveColumnWidth(block, totalBlockCount);
7937      return Object.assign(accumulator, {
7938        [block.clientId]: width
7939      });
7940    }, {});
7941  }
7942  
7943  /**
7944   * Returns an object of `clientId` → `width` of column widths as redistributed
7945   * proportional to their current widths, constrained or expanded to fit within
7946   * the given available width.
7947   *
7948   * @param {WPBlock[]} blocks          Block objects.
7949   * @param {number}    availableWidth  Maximum width to fit within.
7950   * @param {?number}   totalBlockCount Total number of blocks in Columns.
7951   *                                    Defaults to number of blocks passed.
7952   *
7953   * @return {Object<string,number>} Redistributed column widths.
7954   */
7955  function getRedistributedColumnWidths(blocks, availableWidth, totalBlockCount = blocks.length) {
7956    const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);
7957    return Object.fromEntries(Object.entries(getColumnWidths(blocks, totalBlockCount)).map(([clientId, width]) => {
7958      const newWidth = availableWidth * width / totalWidth;
7959      return [clientId, toWidthPrecision(newWidth)];
7960    }));
7961  }
7962  
7963  /**
7964   * Returns true if column blocks within the provided set are assigned with
7965   * explicit widths, or false otherwise.
7966   *
7967   * @param {WPBlock[]} blocks Block objects.
7968   *
7969   * @return {boolean} Whether columns have explicit widths.
7970   */
7971  function hasExplicitPercentColumnWidths(blocks) {
7972    return blocks.every(block => {
7973      const blockWidth = block.attributes.width;
7974      return Number.isFinite(blockWidth?.endsWith?.('%') ? parseFloat(blockWidth) : blockWidth);
7975    });
7976  }
7977  
7978  /**
7979   * Returns a copy of the given set of blocks with new widths assigned from the
7980   * provided object of redistributed column widths.
7981   *
7982   * @param {WPBlock[]}             blocks Block objects.
7983   * @param {Object<string,number>} widths Redistributed column widths.
7984   *
7985   * @return {WPBlock[]} blocks Mapped block objects.
7986   */
7987  function getMappedColumnWidths(blocks, widths) {
7988    return blocks.map(block => ({
7989      ...block,
7990      attributes: {
7991        ...block.attributes,
7992        width: `$widths[block.clientId]}%`
7993      }
7994    }));
7995  }
7996  
7997  /**
7998   * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.
7999   *
8000   * @param {WPBlock[]} blocks      Block objects.
8001   * @param {?boolean}  withParsing Whether value has to be parsed.
8002   *
8003   * @return {Array<number,string>} Column widths.
8004   */
8005  function getWidths(blocks, withParsing = true) {
8006    return blocks.map(innerColumn => {
8007      const innerColumnWidth = innerColumn.attributes.width || 100 / blocks.length;
8008      return withParsing ? parseFloat(innerColumnWidth) : innerColumnWidth;
8009    });
8010  }
8011  
8012  /**
8013   * Returns a column width with unit.
8014   *
8015   * @param {string} width Column width.
8016   * @param {string} unit  Column width unit.
8017   *
8018   * @return {string} Column width with unit.
8019   */
8020  function getWidthWithUnit(width, unit) {
8021    width = 0 > parseFloat(width) ? '0' : width;
8022    if (isPercentageUnit(unit)) {
8023      width = Math.min(width, 100);
8024    }
8025    return `$width}$unit}`;
8026  }
8027  
8028  /**
8029   * Returns a boolean whether passed unit is percentage
8030   *
8031   * @param {string} unit Column width unit.
8032   *
8033   * @return {boolean}     Whether unit is '%'.
8034   */
8035  function isPercentageUnit(unit) {
8036    return unit === '%';
8037  }
8038  
8039  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/edit.js
8040  /**
8041   * External dependencies
8042   */
8043  
8044  
8045  /**
8046   * WordPress dependencies
8047   */
8048  
8049  
8050  
8051  
8052  
8053  
8054  /**
8055   * Internal dependencies
8056   */
8057  
8058  
8059  
8060  
8061  const edit_DEFAULT_BLOCK = {
8062    name: 'core/column'
8063  };
8064  function edit_ColumnInspectorControls({
8065    clientId,
8066    setAttributes,
8067    isStackedOnMobile
8068  }) {
8069    const {
8070      count,
8071      canInsertColumnBlock,
8072      minCount
8073    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8074      const {
8075        canInsertBlockType,
8076        canRemoveBlock,
8077        getBlocks,
8078        getBlockCount
8079      } = select(external_wp_blockEditor_namespaceObject.store);
8080      const innerBlocks = getBlocks(clientId);
8081  
8082      // Get the indexes of columns for which removal is prevented.
8083      // The highest index will be used to determine the minimum column count.
8084      const preventRemovalBlockIndexes = innerBlocks.reduce((acc, block, index) => {
8085        if (!canRemoveBlock(block.clientId)) {
8086          acc.push(index);
8087        }
8088        return acc;
8089      }, []);
8090      return {
8091        count: getBlockCount(clientId),
8092        canInsertColumnBlock: canInsertBlockType('core/column', clientId),
8093        minCount: Math.max(...preventRemovalBlockIndexes) + 1
8094      };
8095    }, [clientId]);
8096    const {
8097      getBlocks
8098    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
8099    const {
8100      replaceInnerBlocks
8101    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
8102  
8103    /**
8104     * Updates the column count, including necessary revisions to child Column
8105     * blocks to grant required or redistribute available space.
8106     *
8107     * @param {number} previousColumns Previous column count.
8108     * @param {number} newColumns      New column count.
8109     */
8110    function updateColumns(previousColumns, newColumns) {
8111      let innerBlocks = getBlocks(clientId);
8112      const hasExplicitWidths = hasExplicitPercentColumnWidths(innerBlocks);
8113  
8114      // Redistribute available width for existing inner blocks.
8115      const isAddingColumn = newColumns > previousColumns;
8116      if (isAddingColumn && hasExplicitWidths) {
8117        // If adding a new column, assign width to the new column equal to
8118        // as if it were `1 / columns` of the total available space.
8119        const newColumnWidth = toWidthPrecision(100 / newColumns);
8120        const newlyAddedColumns = newColumns - previousColumns;
8121  
8122        // Redistribute in consideration of pending block insertion as
8123        // constraining the available working width.
8124        const widths = getRedistributedColumnWidths(innerBlocks, 100 - newColumnWidth * newlyAddedColumns);
8125        innerBlocks = [...getMappedColumnWidths(innerBlocks, widths), ...Array.from({
8126          length: newlyAddedColumns
8127        }).map(() => {
8128          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {
8129            width: `$newColumnWidth}%`
8130          });
8131        })];
8132      } else if (isAddingColumn) {
8133        innerBlocks = [...innerBlocks, ...Array.from({
8134          length: newColumns - previousColumns
8135        }).map(() => {
8136          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column');
8137        })];
8138      } else if (newColumns < previousColumns) {
8139        // The removed column will be the last of the inner blocks.
8140        innerBlocks = innerBlocks.slice(0, -(previousColumns - newColumns));
8141        if (hasExplicitWidths) {
8142          // Redistribute as if block is already removed.
8143          const widths = getRedistributedColumnWidths(innerBlocks, 100);
8144          innerBlocks = getMappedColumnWidths(innerBlocks, widths);
8145        }
8146      }
8147      replaceInnerBlocks(clientId, innerBlocks);
8148    }
8149    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
8150      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
8151      children: [canInsertColumnBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
8152        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
8153          __nextHasNoMarginBottom: true,
8154          __next40pxDefaultSize: true,
8155          label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
8156          value: count,
8157          onChange: value => updateColumns(count, Math.max(minCount, value)),
8158          min: Math.max(1, minCount),
8159          max: Math.max(6, count)
8160        }), count > 6 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
8161          status: "warning",
8162          isDismissible: false,
8163          children: (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')
8164        })]
8165      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
8166        __nextHasNoMarginBottom: true,
8167        label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
8168        checked: isStackedOnMobile,
8169        onChange: () => setAttributes({
8170          isStackedOnMobile: !isStackedOnMobile
8171        })
8172      })]
8173    });
8174  }
8175  function ColumnsEditContainer({
8176    attributes,
8177    setAttributes,
8178    clientId
8179  }) {
8180    const {
8181      isStackedOnMobile,
8182      verticalAlignment,
8183      templateLock
8184    } = attributes;
8185    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
8186    const {
8187      getBlockOrder
8188    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
8189    const {
8190      updateBlockAttributes
8191    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
8192    const classes = dist_clsx({
8193      [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
8194      [`is-not-stacked-on-mobile`]: !isStackedOnMobile
8195    });
8196    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
8197      className: classes
8198    });
8199    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
8200      defaultBlock: edit_DEFAULT_BLOCK,
8201      directInsert: true,
8202      orientation: 'horizontal',
8203      renderAppender: false,
8204      templateLock
8205    });
8206  
8207    /**
8208     * Update all child Column blocks with a new vertical alignment setting
8209     * based on whatever alignment is passed in. This allows change to parent
8210     * to overide anything set on a individual column basis.
8211     *
8212     * @param {string} newVerticalAlignment The vertical alignment setting.
8213     */
8214    function updateAlignment(newVerticalAlignment) {
8215      const innerBlockClientIds = getBlockOrder(clientId);
8216  
8217      // Update own and child Column block vertical alignments.
8218      // This is a single action; the batching prevents creating multiple history records.
8219      registry.batch(() => {
8220        setAttributes({
8221          verticalAlignment: newVerticalAlignment
8222        });
8223        updateBlockAttributes(innerBlockClientIds, {
8224          verticalAlignment: newVerticalAlignment
8225        });
8226      });
8227    }
8228    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
8229      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
8230        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, {
8231          onChange: updateAlignment,
8232          value: verticalAlignment
8233        })
8234      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
8235        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ColumnInspectorControls, {
8236          clientId: clientId,
8237          setAttributes: setAttributes,
8238          isStackedOnMobile: isStackedOnMobile
8239        })
8240      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8241        ...innerBlocksProps
8242      })]
8243    });
8244  }
8245  function Placeholder({
8246    clientId,
8247    name,
8248    setAttributes
8249  }) {
8250    const {
8251      blockType,
8252      defaultVariation,
8253      variations
8254    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8255      const {
8256        getBlockVariations,
8257        getBlockType,
8258        getDefaultBlockVariation
8259      } = select(external_wp_blocks_namespaceObject.store);
8260      return {
8261        blockType: getBlockType(name),
8262        defaultVariation: getDefaultBlockVariation(name, 'block'),
8263        variations: getBlockVariations(name, 'block')
8264      };
8265    }, [name]);
8266    const {
8267      replaceInnerBlocks
8268    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
8269    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
8270    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8271      ...blockProps,
8272      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
8273        icon: blockType?.icon?.src,
8274        label: blockType?.title,
8275        variations: variations,
8276        instructions: (0,external_wp_i18n_namespaceObject.__)('Divide into columns. Select a layout:'),
8277        onSelect: (nextVariation = defaultVariation) => {
8278          if (nextVariation.attributes) {
8279            setAttributes(nextVariation.attributes);
8280          }
8281          if (nextVariation.innerBlocks) {
8282            replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), true);
8283          }
8284        },
8285        allowSkip: true
8286      })
8287    });
8288  }
8289  const ColumnsEdit = props => {
8290    const {
8291      clientId
8292    } = props;
8293    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length > 0, [clientId]);
8294    const Component = hasInnerBlocks ? ColumnsEditContainer : Placeholder;
8295    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
8296      ...props
8297    });
8298  };
8299  /* harmony default export */ const columns_edit = (ColumnsEdit);
8300  
8301  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/save.js
8302  /**
8303   * External dependencies
8304   */
8305  
8306  
8307  /**
8308   * WordPress dependencies
8309   */
8310  
8311  
8312  function columns_save_save({
8313    attributes
8314  }) {
8315    const {
8316      isStackedOnMobile,
8317      verticalAlignment
8318    } = attributes;
8319    const className = dist_clsx({
8320      [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
8321      [`is-not-stacked-on-mobile`]: !isStackedOnMobile
8322    });
8323    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
8324      className
8325    });
8326    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
8327    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8328      ...innerBlocksProps
8329    });
8330  }
8331  
8332  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/variations.js
8333  /**
8334   * WordPress dependencies
8335   */
8336  
8337  
8338  
8339  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
8340  
8341  /**
8342   * Template option choices for predefined columns layouts.
8343   *
8344   * @type {WPBlockVariation[]}
8345   */
8346  
8347  const variations_variations = [{
8348    name: 'one-column-full',
8349    title: (0,external_wp_i18n_namespaceObject.__)('100'),
8350    description: (0,external_wp_i18n_namespaceObject.__)('One column'),
8351    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8352      xmlns: "http://www.w3.org/2000/svg",
8353      width: "48",
8354      height: "48",
8355      viewBox: "0 0 48 48",
8356      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8357        d: "M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z"
8358      })
8359    }),
8360    innerBlocks: [['core/column']],
8361    scope: ['block']
8362  }, {
8363    name: 'two-columns-equal',
8364    title: (0,external_wp_i18n_namespaceObject.__)('50 / 50'),
8365    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; equal split'),
8366    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8367      xmlns: "http://www.w3.org/2000/svg",
8368      width: "48",
8369      height: "48",
8370      viewBox: "0 0 48 48",
8371      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8372        d: "M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z"
8373      })
8374    }),
8375    isDefault: true,
8376    innerBlocks: [['core/column'], ['core/column']],
8377    scope: ['block']
8378  }, {
8379    name: 'two-columns-one-third-two-thirds',
8380    title: (0,external_wp_i18n_namespaceObject.__)('33 / 66'),
8381    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; one-third, two-thirds split'),
8382    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8383      xmlns: "http://www.w3.org/2000/svg",
8384      width: "48",
8385      height: "48",
8386      viewBox: "0 0 48 48",
8387      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8388        d: "M0 10a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm17 0a2 2 0 0 1 2-2h27a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H19a2 2 0 0 1-2-2V10Z"
8389      })
8390    }),
8391    innerBlocks: [['core/column', {
8392      width: '33.33%'
8393    }], ['core/column', {
8394      width: '66.66%'
8395    }]],
8396    scope: ['block']
8397  }, {
8398    name: 'two-columns-two-thirds-one-third',
8399    title: (0,external_wp_i18n_namespaceObject.__)('66 / 33'),
8400    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; two-thirds, one-third split'),
8401    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8402      xmlns: "http://www.w3.org/2000/svg",
8403      width: "48",
8404      height: "48",
8405      viewBox: "0 0 48 48",
8406      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8407        d: "M0 10a2 2 0 0 1 2-2h27a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm33 0a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H35a2 2 0 0 1-2-2V10Z"
8408      })
8409    }),
8410    innerBlocks: [['core/column', {
8411      width: '66.66%'
8412    }], ['core/column', {
8413      width: '33.33%'
8414    }]],
8415    scope: ['block']
8416  }, {
8417    name: 'three-columns-equal',
8418    title: (0,external_wp_i18n_namespaceObject.__)('33 / 33 / 33'),
8419    description: (0,external_wp_i18n_namespaceObject.__)('Three columns; equal split'),
8420    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8421      xmlns: "http://www.w3.org/2000/svg",
8422      width: "48",
8423      height: "48",
8424      viewBox: "0 0 48 48",
8425      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8426        d: "M0 10a2 2 0 0 1 2-2h10.531c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H2a2 2 0 0 1-2-2V10Zm16.5 0c0-1.105.864-2 1.969-2H29.53c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H18.47c-1.105 0-1.969-.895-1.969-2V10Zm17 0c0-1.105.864-2 1.969-2H46a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H35.469c-1.105 0-1.969-.895-1.969-2V10Z"
8427      })
8428    }),
8429    innerBlocks: [['core/column'], ['core/column'], ['core/column']],
8430    scope: ['block']
8431  }, {
8432    name: 'three-columns-wider-center',
8433    title: (0,external_wp_i18n_namespaceObject.__)('25 / 50 / 25'),
8434    description: (0,external_wp_i18n_namespaceObject.__)('Three columns; wide center column'),
8435    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8436      xmlns: "http://www.w3.org/2000/svg",
8437      width: "48",
8438      height: "48",
8439      viewBox: "0 0 48 48",
8440      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8441        d: "M0 10a2 2 0 0 1 2-2h7.531c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H2a2 2 0 0 1-2-2V10Zm13.5 0c0-1.105.864-2 1.969-2H32.53c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H15.47c-1.105 0-1.969-.895-1.969-2V10Zm23 0c0-1.105.864-2 1.969-2H46a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2h-7.531c-1.105 0-1.969-.895-1.969-2V10Z"
8442      })
8443    }),
8444    innerBlocks: [['core/column', {
8445      width: '25%'
8446    }], ['core/column', {
8447      width: '50%'
8448    }], ['core/column', {
8449      width: '25%'
8450    }]],
8451    scope: ['block']
8452  }];
8453  /* harmony default export */ const columns_variations = (variations_variations);
8454  
8455  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/transforms.js
8456  /**
8457   * WordPress dependencies
8458   */
8459  
8460  const MAXIMUM_SELECTED_BLOCKS = 6;
8461  const columns_transforms_transforms = {
8462    from: [{
8463      type: 'block',
8464      isMultiBlock: true,
8465      blocks: ['*'],
8466      __experimentalConvert: blocks => {
8467        const columnWidth = +(100 / blocks.length).toFixed(2);
8468        const innerBlocksTemplate = blocks.map(({
8469          name,
8470          attributes,
8471          innerBlocks
8472        }) => ['core/column', {
8473          width: `$columnWidth}%`
8474        }, [[name, {
8475          ...attributes
8476        }, innerBlocks]]]);
8477        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {}, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
8478      },
8479      isMatch: ({
8480        length: selectedBlocksLength
8481      }, blocks) => {
8482        // If a user is trying to transform a single Columns block, skip
8483        // the transformation. Enabling this functiontionality creates
8484        // nested Columns blocks resulting in an unintuitive user experience.
8485        // Multiple Columns blocks can still be transformed.
8486        if (blocks.length === 1 && blocks[0].name === 'core/columns') {
8487          return false;
8488        }
8489        return selectedBlocksLength && selectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS;
8490      }
8491    }, {
8492      type: 'block',
8493      blocks: ['core/media-text'],
8494      priority: 1,
8495      transform: (attributes, innerBlocks) => {
8496        const {
8497          align,
8498          backgroundColor,
8499          textColor,
8500          style,
8501          mediaAlt: alt,
8502          mediaId: id,
8503          mediaPosition,
8504          mediaSizeSlug: sizeSlug,
8505          mediaType,
8506          mediaUrl: url,
8507          mediaWidth,
8508          verticalAlignment
8509        } = attributes;
8510        let media;
8511        if (mediaType === 'image' || !mediaType) {
8512          const imageAttrs = {
8513            id,
8514            alt,
8515            url,
8516            sizeSlug
8517          };
8518          const linkAttrs = {
8519            href: attributes.href,
8520            linkClass: attributes.linkClass,
8521            linkDestination: attributes.linkDestination,
8522            linkTarget: attributes.linkTarget,
8523            rel: attributes.rel
8524          };
8525          media = ['core/image', {
8526            ...imageAttrs,
8527            ...linkAttrs
8528          }];
8529        } else {
8530          media = ['core/video', {
8531            id,
8532            src: url
8533          }];
8534        }
8535        const innerBlocksTemplate = [['core/column', {
8536          width: `$mediaWidth}%`
8537        }, [media]], ['core/column', {
8538          width: `$100 - mediaWidth}%`
8539        }, innerBlocks]];
8540        if (mediaPosition === 'right') {
8541          innerBlocksTemplate.reverse();
8542        }
8543        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
8544          align,
8545          backgroundColor,
8546          textColor,
8547          style,
8548          verticalAlignment
8549        }, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
8550      }
8551    }],
8552    ungroup: (attributes, innerBlocks) => innerBlocks.flatMap(innerBlock => innerBlock.innerBlocks)
8553  };
8554  /* harmony default export */ const columns_transforms = (columns_transforms_transforms);
8555  
8556  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/index.js
8557  /**
8558   * WordPress dependencies
8559   */
8560  
8561  
8562  
8563  /**
8564   * Internal dependencies
8565   */
8566  
8567  
8568  
8569  const columns_metadata = {
8570    $schema: "https://schemas.wp.org/trunk/block.json",
8571    apiVersion: 3,
8572    name: "core/columns",
8573    title: "Columns",
8574    category: "design",
8575    allowedBlocks: ["core/column"],
8576    description: "Display content in multiple columns, with blocks added to each column.",
8577    textdomain: "default",
8578    attributes: {
8579      verticalAlignment: {
8580        type: "string"
8581      },
8582      isStackedOnMobile: {
8583        type: "boolean",
8584        "default": true
8585      },
8586      templateLock: {
8587        type: ["string", "boolean"],
8588        "enum": ["all", "insert", "contentOnly", false]
8589      }
8590    },
8591    supports: {
8592      anchor: true,
8593      align: ["wide", "full"],
8594      html: false,
8595      color: {
8596        gradients: true,
8597        link: true,
8598        heading: true,
8599        button: true,
8600        __experimentalDefaultControls: {
8601          background: true,
8602          text: true
8603        }
8604      },
8605      spacing: {
8606        blockGap: {
8607          __experimentalDefault: "2em",
8608          sides: ["horizontal", "vertical"]
8609        },
8610        margin: ["top", "bottom"],
8611        padding: true,
8612        __experimentalDefaultControls: {
8613          padding: true,
8614          blockGap: true
8615        }
8616      },
8617      layout: {
8618        allowSwitching: false,
8619        allowInheriting: false,
8620        allowEditing: false,
8621        "default": {
8622          type: "flex",
8623          flexWrap: "nowrap"
8624        }
8625      },
8626      __experimentalBorder: {
8627        color: true,
8628        radius: true,
8629        style: true,
8630        width: true,
8631        __experimentalDefaultControls: {
8632          color: true,
8633          radius: true,
8634          style: true,
8635          width: true
8636        }
8637      },
8638      typography: {
8639        fontSize: true,
8640        lineHeight: true,
8641        __experimentalFontFamily: true,
8642        __experimentalFontWeight: true,
8643        __experimentalFontStyle: true,
8644        __experimentalTextTransform: true,
8645        __experimentalTextDecoration: true,
8646        __experimentalLetterSpacing: true,
8647        __experimentalDefaultControls: {
8648          fontSize: true
8649        }
8650      },
8651      interactivity: {
8652        clientNavigation: true
8653      },
8654      shadow: true
8655    },
8656    editorStyle: "wp-block-columns-editor",
8657    style: "wp-block-columns"
8658  };
8659  
8660  
8661  
8662  const {
8663    name: columns_name
8664  } = columns_metadata;
8665  
8666  const columns_settings = {
8667    icon: library_columns,
8668    variations: columns_variations,
8669    example: {
8670      viewportWidth: 782,
8671      // Columns collapse "@media (max-width: 781px)".
8672      innerBlocks: [{
8673        name: 'core/column',
8674        innerBlocks: [{
8675          name: 'core/paragraph',
8676          attributes: {
8677            /* translators: example text. */
8678            content: (0,external_wp_i18n_namespaceObject.__)('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.')
8679          }
8680        }, {
8681          name: 'core/image',
8682          attributes: {
8683            url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
8684          }
8685        }, {
8686          name: 'core/paragraph',
8687          attributes: {
8688            /* translators: example text. */
8689            content: (0,external_wp_i18n_namespaceObject.__)('Suspendisse commodo neque lacus, a dictum orci interdum et.')
8690          }
8691        }]
8692      }, {
8693        name: 'core/column',
8694        innerBlocks: [{
8695          name: 'core/paragraph',
8696          attributes: {
8697            /* translators: example text. */
8698            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.')
8699          }
8700        }, {
8701          name: 'core/paragraph',
8702          attributes: {
8703            /* translators: example text. */
8704            content: (0,external_wp_i18n_namespaceObject.__)('Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.')
8705          }
8706        }]
8707      }]
8708    },
8709    deprecated: columns_deprecated,
8710    edit: columns_edit,
8711    save: columns_save_save,
8712    transforms: columns_transforms
8713  };
8714  const columns_init = () => initBlock({
8715    name: columns_name,
8716    metadata: columns_metadata,
8717    settings: columns_settings
8718  });
8719  
8720  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments.js
8721  /**
8722   * WordPress dependencies
8723   */
8724  
8725  
8726  const postComments = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
8727    xmlns: "http://www.w3.org/2000/svg",
8728    viewBox: "0 0 24 24",
8729    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
8730      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"
8731    })
8732  });
8733  /* harmony default export */ const post_comments = (postComments);
8734  
8735  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/deprecated.js
8736  /**
8737   * WordPress dependencies
8738   */
8739  
8740  
8741  // v1: Deprecate the initial version of the block which was called "Comments
8742  // Query Loop" instead of "Comments".
8743  
8744  const v1 = {
8745    attributes: {
8746      tagName: {
8747        type: 'string',
8748        default: 'div'
8749      }
8750    },
8751    apiVersion: 3,
8752    supports: {
8753      align: ['wide', 'full'],
8754      html: false,
8755      color: {
8756        gradients: true,
8757        link: true,
8758        __experimentalDefaultControls: {
8759          background: true,
8760          text: true,
8761          link: true
8762        }
8763      }
8764    },
8765    save({
8766      attributes: {
8767        tagName: Tag
8768      }
8769    }) {
8770      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
8771      const {
8772        className
8773      } = blockProps;
8774      const classes = className?.split(' ') || [];
8775  
8776      // The ID of the previous version of the block
8777      // didn't have the `wp-block-comments` class,
8778      // so we need to remove it here in order to mimic it.
8779      const newClasses = classes?.filter(cls => cls !== 'wp-block-comments');
8780      const newBlockProps = {
8781        ...blockProps,
8782        className: newClasses.join(' ')
8783      };
8784      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
8785        ...newBlockProps,
8786        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
8787      });
8788    }
8789  };
8790  /* harmony default export */ const comments_deprecated = ([v1]);
8791  
8792  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/edit/comments-inspector-controls.js
8793  /**
8794   * WordPress dependencies
8795   */
8796  
8797  
8798  
8799  
8800  function CommentsInspectorControls({
8801    attributes: {
8802      tagName
8803    },
8804    setAttributes
8805  }) {
8806    const htmlElementMessages = {
8807      section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
8808      aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.")
8809    };
8810    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
8811      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
8812        group: "advanced",
8813        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
8814          __nextHasNoMarginBottom: true,
8815          __next40pxDefaultSize: true,
8816          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
8817          options: [{
8818            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
8819            value: 'div'
8820          }, {
8821            label: '<section>',
8822            value: 'section'
8823          }, {
8824            label: '<aside>',
8825            value: 'aside'
8826          }],
8827          value: tagName,
8828          onChange: value => setAttributes({
8829            tagName: value
8830          }),
8831          help: htmlElementMessages[tagName]
8832        })
8833      })
8834    });
8835  }
8836  
8837  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/form.js
8838  /**
8839   * External dependencies
8840   */
8841  
8842  
8843  /**
8844   * WordPress dependencies
8845   */
8846  
8847  
8848  
8849  
8850  
8851  
8852  
8853  
8854  const CommentsFormPlaceholder = () => {
8855    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(CommentsFormPlaceholder);
8856    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
8857      className: "comment-respond",
8858      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
8859        className: "comment-reply-title",
8860        children: (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')
8861      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
8862        noValidate: true,
8863        className: "comment-form",
8864        onSubmit: event => event.preventDefault(),
8865        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
8866          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("label", {
8867            htmlFor: `comment-$instanceId}`,
8868            children: (0,external_wp_i18n_namespaceObject.__)('Comment')
8869          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("textarea", {
8870            id: `comment-$instanceId}`,
8871            name: "comment",
8872            cols: "45",
8873            rows: "8",
8874            readOnly: true
8875          })]
8876        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
8877          className: "form-submit wp-block-button",
8878          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
8879            name: "submit",
8880            type: "submit",
8881            className: dist_clsx('wp-block-button__link', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
8882            label: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
8883            value: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
8884            "aria-disabled": "true"
8885          })
8886        })]
8887      })]
8888    });
8889  };
8890  const CommentsForm = ({
8891    postId,
8892    postType
8893  }) => {
8894    const [commentStatus, setCommentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId);
8895    const isSiteEditor = postType === undefined || postId === undefined;
8896    const {
8897      defaultCommentStatus
8898    } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings);
8899    const postTypeSupportsComments = (0,external_wp_data_namespaceObject.useSelect)(select => postType ? !!select(external_wp_coreData_namespaceObject.store).getPostType(postType)?.supports.comments : false);
8900    if (!isSiteEditor && 'open' !== commentStatus) {
8901      if ('closed' === commentStatus) {
8902        const actions = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
8903          __next40pxDefaultSize: true,
8904          onClick: () => setCommentStatus('open'),
8905          variant: "primary",
8906          children: (0,external_wp_i18n_namespaceObject._x)('Enable comments', 'action that affects the current post')
8907        }, "enableComments")];
8908        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
8909          actions: actions,
8910          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: Comments are not enabled for this item.')
8911        });
8912      } else if (!postTypeSupportsComments) {
8913        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
8914          children: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Post type (i.e. "post", "page") */
8915          (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: Comments are not enabled for this post type (%s).'), postType)
8916        });
8917      } else if ('open' !== defaultCommentStatus) {
8918        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
8919          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: Comments are not enabled.')
8920        });
8921      }
8922    }
8923    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsFormPlaceholder, {});
8924  };
8925  /* harmony default export */ const post_comments_form_form = (CommentsForm);
8926  
8927  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/edit/placeholder.js
8928  /**
8929   * WordPress dependencies
8930   */
8931  
8932  
8933  
8934  
8935  
8936  
8937  /**
8938   * Internal dependencies
8939   */
8940  
8941  
8942  
8943  function PostCommentsPlaceholder({
8944    postType,
8945    postId
8946  }) {
8947    let [postTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
8948    postTitle = postTitle || (0,external_wp_i18n_namespaceObject.__)('Post Title');
8949    const {
8950      avatarURL
8951    } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings);
8952    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
8953      className: "wp-block-comments__legacy-placeholder",
8954      inert: "true",
8955      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
8956        children: /* translators: %s: Post title. */
8957        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('One response to %s'), postTitle)
8958      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
8959        className: "navigation",
8960        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8961          className: "alignleft",
8962          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
8963            href: "#top",
8964            children: ["\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments')]
8965          })
8966        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8967          className: "alignright",
8968          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
8969            href: "#top",
8970            children: [(0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"]
8971          })
8972        })]
8973      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
8974        className: "commentlist",
8975        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
8976          className: "comment even thread-even depth-1",
8977          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("article", {
8978            className: "comment-body",
8979            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("footer", {
8980              className: "comment-meta",
8981              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
8982                className: "comment-author vcard",
8983                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
8984                  alt: (0,external_wp_i18n_namespaceObject.__)('Commenter Avatar'),
8985                  src: avatarURL,
8986                  className: "avatar avatar-32 photo",
8987                  height: "32",
8988                  width: "32",
8989                  loading: "lazy"
8990                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("b", {
8991                  className: "fn",
8992                  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
8993                    href: "#top",
8994                    className: "url",
8995                    children: (0,external_wp_i18n_namespaceObject.__)('A WordPress Commenter')
8996                  })
8997                }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
8998                  className: "says",
8999                  children: [(0,external_wp_i18n_namespaceObject.__)('says'), ":"]
9000                })]
9001              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9002                className: "comment-metadata",
9003                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9004                  href: "#top",
9005                  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
9006                    dateTime: "2000-01-01T00:00:00+00:00",
9007                    children: (0,external_wp_i18n_namespaceObject.__)('January 1, 2000 at 00:00 am')
9008                  })
9009                }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
9010                  className: "edit-link",
9011                  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9012                    className: "comment-edit-link",
9013                    href: "#top",
9014                    children: (0,external_wp_i18n_namespaceObject.__)('Edit')
9015                  })
9016                })]
9017              })]
9018            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9019              className: "comment-content",
9020              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
9021                children: [(0,external_wp_i18n_namespaceObject.__)('Hi, this is a comment.'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Commenter avatars come from <a>Gravatar</a>.'), {
9022                  a:
9023                  /*#__PURE__*/
9024                  // eslint-disable-next-line jsx-a11y/anchor-has-content
9025                  (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9026                    href: "https://gravatar.com/"
9027                  })
9028                })]
9029              })
9030            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9031              className: "reply",
9032              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9033                className: "comment-reply-link",
9034                href: "#top",
9035                "aria-label": (0,external_wp_i18n_namespaceObject.__)('Reply to A WordPress Commenter'),
9036                children: (0,external_wp_i18n_namespaceObject.__)('Reply')
9037              })
9038            })]
9039          })
9040        })
9041      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9042        className: "navigation",
9043        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9044          className: "alignleft",
9045          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
9046            href: "#top",
9047            children: ["\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments')]
9048          })
9049        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9050          className: "alignright",
9051          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
9052            href: "#top",
9053            children: [(0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"]
9054          })
9055        })]
9056      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_comments_form_form, {
9057        postId: postId,
9058        postType: postType
9059      })]
9060    });
9061  }
9062  
9063  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/edit/comments-legacy.js
9064  /**
9065   * External dependencies
9066   */
9067  
9068  
9069  /**
9070   * WordPress dependencies
9071   */
9072  
9073  
9074  
9075  
9076  /**
9077   * Internal dependencies
9078   */
9079  
9080  
9081  
9082  
9083  function CommentsLegacy({
9084    attributes,
9085    setAttributes,
9086    context: {
9087      postType,
9088      postId
9089    }
9090  }) {
9091    const {
9092      textAlign
9093    } = attributes;
9094    const actions = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
9095      __next40pxDefaultSize: true,
9096      onClick: () => void setAttributes({
9097        legacy: false
9098      }),
9099      variant: "primary",
9100      children: (0,external_wp_i18n_namespaceObject.__)('Switch to editable mode')
9101    }, "convert")];
9102    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
9103      className: dist_clsx({
9104        [`has-text-align-$textAlign}`]: textAlign
9105      })
9106    });
9107    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9108      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
9109        group: "block",
9110        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
9111          value: textAlign,
9112          onChange: nextAlign => {
9113            setAttributes({
9114              textAlign: nextAlign
9115            });
9116          }
9117        })
9118      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9119        ...blockProps,
9120        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
9121          actions: actions,
9122          children: (0,external_wp_i18n_namespaceObject.__)('Comments block: You’re currently using the legacy version of the block. ' + 'The following is just a placeholder - the final styling will likely look different. ' + 'For a better representation and more customization options, ' + 'switch the block to its editable mode.')
9123        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostCommentsPlaceholder, {
9124          postId: postId,
9125          postType: postType
9126        })]
9127      })]
9128    });
9129  }
9130  
9131  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/edit/template.js
9132  const TEMPLATE = [['core/comments-title'], ['core/comment-template', {}, [['core/columns', {}, [['core/column', {
9133    width: '40px'
9134  }, [['core/avatar', {
9135    size: 40,
9136    style: {
9137      border: {
9138        radius: '20px'
9139      }
9140    }
9141  }]]], ['core/column', {}, [['core/comment-author-name', {
9142    fontSize: 'small'
9143  }], ['core/group', {
9144    layout: {
9145      type: 'flex'
9146    },
9147    style: {
9148      spacing: {
9149        margin: {
9150          top: '0px',
9151          bottom: '0px'
9152        }
9153      }
9154    }
9155  }, [['core/comment-date', {
9156    fontSize: 'small'
9157  }], ['core/comment-edit-link', {
9158    fontSize: 'small'
9159  }]]], ['core/comment-content'], ['core/comment-reply-link', {
9160    fontSize: 'small'
9161  }]]]]]]], ['core/comments-pagination'], ['core/post-comments-form']];
9162  /* harmony default export */ const template = (TEMPLATE);
9163  
9164  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/edit/index.js
9165  /**
9166   * WordPress dependencies
9167   */
9168  
9169  
9170  /**
9171   * Internal dependencies
9172   */
9173  
9174  
9175  
9176  
9177  
9178  
9179  function CommentsEdit(props) {
9180    const {
9181      attributes,
9182      setAttributes
9183    } = props;
9184    const {
9185      tagName: TagName,
9186      legacy
9187    } = attributes;
9188    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
9189    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
9190      template: template
9191    });
9192    if (legacy) {
9193      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsLegacy, {
9194        ...props
9195      });
9196    }
9197    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9198      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsInspectorControls, {
9199        attributes: attributes,
9200        setAttributes: setAttributes
9201      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
9202        ...innerBlocksProps
9203      })]
9204    });
9205  }
9206  
9207  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/save.js
9208  /**
9209   * WordPress dependencies
9210   */
9211  
9212  
9213  function comments_save_save({
9214    attributes: {
9215      tagName: Tag,
9216      legacy
9217    }
9218  }) {
9219    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
9220    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
9221  
9222    // The legacy version is dynamic (i.e. PHP rendered) and doesn't allow inner
9223    // blocks, so nothing is saved in that case.
9224    return legacy ? null : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
9225      ...innerBlocksProps
9226    });
9227  }
9228  
9229  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments/index.js
9230  /**
9231   * WordPress dependencies
9232   */
9233  
9234  
9235  /**
9236   * Internal dependencies
9237   */
9238  
9239  const comments_metadata = {
9240    $schema: "https://schemas.wp.org/trunk/block.json",
9241    apiVersion: 3,
9242    name: "core/comments",
9243    title: "Comments",
9244    category: "theme",
9245    description: "An advanced block that allows displaying post comments using different visual configurations.",
9246    textdomain: "default",
9247    attributes: {
9248      tagName: {
9249        type: "string",
9250        "default": "div"
9251      },
9252      legacy: {
9253        type: "boolean",
9254        "default": false
9255      }
9256    },
9257    supports: {
9258      align: ["wide", "full"],
9259      html: false,
9260      color: {
9261        gradients: true,
9262        heading: true,
9263        link: true,
9264        __experimentalDefaultControls: {
9265          background: true,
9266          text: true,
9267          link: true
9268        }
9269      },
9270      spacing: {
9271        margin: true,
9272        padding: true
9273      },
9274      typography: {
9275        fontSize: true,
9276        lineHeight: true,
9277        __experimentalFontFamily: true,
9278        __experimentalFontWeight: true,
9279        __experimentalFontStyle: true,
9280        __experimentalTextTransform: true,
9281        __experimentalTextDecoration: true,
9282        __experimentalLetterSpacing: true,
9283        __experimentalDefaultControls: {
9284          fontSize: true
9285        }
9286      }
9287    },
9288    editorStyle: "wp-block-comments-editor",
9289    usesContext: ["postId", "postType"]
9290  };
9291  
9292  
9293  
9294  const {
9295    name: comments_name
9296  } = comments_metadata;
9297  
9298  const comments_settings = {
9299    icon: post_comments,
9300    edit: CommentsEdit,
9301    save: comments_save_save,
9302    deprecated: comments_deprecated
9303  };
9304  const comments_init = () => initBlock({
9305    name: comments_name,
9306    metadata: comments_metadata,
9307    settings: comments_settings
9308  });
9309  
9310  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-avatar/edit.js
9311  /**
9312   * WordPress dependencies
9313   */
9314  
9315  
9316  
9317  
9318  
9319  
9320  
9321  
9322  function edit_Edit({
9323    attributes,
9324    context: {
9325      commentId
9326    },
9327    setAttributes,
9328    isSelected
9329  }) {
9330    const {
9331      height,
9332      width
9333    } = attributes;
9334    const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId);
9335    const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId);
9336    const avatarUrls = avatars ? Object.values(avatars) : null;
9337    const sizes = avatars ? Object.keys(avatars) : null;
9338    const minSize = sizes ? sizes[0] : 24;
9339    const maxSize = sizes ? sizes[sizes.length - 1] : 96;
9340    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
9341    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
9342    const maxSizeBuffer = Math.floor(maxSize * 2.5);
9343    const {
9344      avatarURL
9345    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
9346      const {
9347        getSettings
9348      } = select(external_wp_blockEditor_namespaceObject.store);
9349      const {
9350        __experimentalDiscussionSettings
9351      } = getSettings();
9352      return __experimentalDiscussionSettings;
9353    });
9354    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
9355      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
9356        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
9357        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
9358          __nextHasNoMarginBottom: true,
9359          __next40pxDefaultSize: true,
9360          label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
9361          onChange: newWidth => setAttributes({
9362            width: newWidth,
9363            height: newWidth
9364          }),
9365          min: minSize,
9366          max: maxSizeBuffer,
9367          initialPosition: width,
9368          value: width
9369        })
9370      })
9371    });
9372    const resizableAvatar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
9373      size: {
9374        width,
9375        height
9376      },
9377      showHandle: isSelected,
9378      onResizeStop: (event, direction, elt, delta) => {
9379        setAttributes({
9380          height: parseInt(height + delta.height, 10),
9381          width: parseInt(width + delta.width, 10)
9382        });
9383      },
9384      lockAspectRatio: true,
9385      enable: {
9386        top: false,
9387        right: !(0,external_wp_i18n_namespaceObject.isRTL)(),
9388        bottom: true,
9389        left: (0,external_wp_i18n_namespaceObject.isRTL)()
9390      },
9391      minWidth: minSize,
9392      maxWidth: maxSizeBuffer,
9393      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
9394        src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : avatarURL,
9395        alt: `$authorName} ${(0,external_wp_i18n_namespaceObject.__)('Avatar')}`,
9396        ...blockProps
9397      })
9398    });
9399    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9400      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9401        ...spacingProps,
9402        children: resizableAvatar
9403      })]
9404    });
9405  }
9406  
9407  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-avatar/index.js
9408  /**
9409   * WordPress dependencies
9410   */
9411  
9412  
9413  /**
9414   * Internal dependencies
9415   */
9416  
9417  const comment_author_avatar_metadata = {
9418    $schema: "https://schemas.wp.org/trunk/block.json",
9419    apiVersion: 3,
9420    __experimental: "fse",
9421    name: "core/comment-author-avatar",
9422    title: "Comment Author Avatar (deprecated)",
9423    category: "theme",
9424    ancestor: ["core/comment-template"],
9425    description: "This block is deprecated. Please use the Avatar block instead.",
9426    textdomain: "default",
9427    attributes: {
9428      width: {
9429        type: "number",
9430        "default": 96
9431      },
9432      height: {
9433        type: "number",
9434        "default": 96
9435      }
9436    },
9437    usesContext: ["commentId"],
9438    supports: {
9439      html: false,
9440      inserter: false,
9441      __experimentalBorder: {
9442        radius: true,
9443        width: true,
9444        color: true,
9445        style: true
9446      },
9447      color: {
9448        background: true,
9449        text: false,
9450        __experimentalDefaultControls: {
9451          background: true
9452        }
9453      },
9454      spacing: {
9455        __experimentalSkipSerialization: true,
9456        margin: true,
9457        padding: true
9458      },
9459      interactivity: {
9460        clientNavigation: true
9461      }
9462    }
9463  };
9464  
9465  const {
9466    name: comment_author_avatar_name
9467  } = comment_author_avatar_metadata;
9468  
9469  const comment_author_avatar_settings = {
9470    icon: comment_author_avatar,
9471    edit: edit_Edit
9472  };
9473  const comment_author_avatar_init = () => initBlock({
9474    name: comment_author_avatar_name,
9475    metadata: comment_author_avatar_metadata,
9476    settings: comment_author_avatar_settings
9477  });
9478  
9479  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-name.js
9480  /**
9481   * WordPress dependencies
9482   */
9483  
9484  
9485  
9486  const commentAuthorName = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
9487    viewBox: "0 0 24 24",
9488    xmlns: "http://www.w3.org/2000/svg",
9489    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9490      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",
9491      fillRule: "evenodd",
9492      clipRule: "evenodd"
9493    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9494      d: "M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15",
9495      fillRule: "evenodd",
9496      clipRule: "evenodd"
9497    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Circle, {
9498      cx: "12",
9499      cy: "9",
9500      r: "2",
9501      fillRule: "evenodd",
9502      clipRule: "evenodd"
9503    })]
9504  });
9505  /* harmony default export */ const comment_author_name = (commentAuthorName);
9506  
9507  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/edit.js
9508  /**
9509   * External dependencies
9510   */
9511  
9512  
9513  /**
9514   * WordPress dependencies
9515   */
9516  
9517  
9518  
9519  
9520  
9521  
9522  /**
9523   * Renders the `core/comment-author-name` block on the editor.
9524   *
9525   * @param {Object} props                       React props.
9526   * @param {Object} props.setAttributes         Callback for updating block attributes.
9527   * @param {Object} props.attributes            Block attributes.
9528   * @param {string} props.attributes.isLink     Whether the author name should be linked.
9529   * @param {string} props.attributes.linkTarget Target of the link.
9530   * @param {string} props.attributes.textAlign  Text alignment.
9531   * @param {Object} props.context               Inherited context.
9532   * @param {string} props.context.commentId     The comment ID.
9533   *
9534   * @return {JSX.Element} React element.
9535   */
9536  
9537  
9538  
9539  function comment_author_name_edit_Edit({
9540    attributes: {
9541      isLink,
9542      linkTarget,
9543      textAlign
9544    },
9545    context: {
9546      commentId
9547    },
9548    setAttributes
9549  }) {
9550    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
9551      className: dist_clsx({
9552        [`has-text-align-$textAlign}`]: textAlign
9553      })
9554    });
9555    let displayName = (0,external_wp_data_namespaceObject.useSelect)(select => {
9556      const {
9557        getEntityRecord
9558      } = select(external_wp_coreData_namespaceObject.store);
9559      const comment = getEntityRecord('root', 'comment', commentId);
9560      const authorName = comment?.author_name; // eslint-disable-line camelcase
9561  
9562      if (comment && !authorName) {
9563        var _user$name;
9564        const user = getEntityRecord('root', 'user', comment.author);
9565        return (_user$name = user?.name) !== null && _user$name !== void 0 ? _user$name : (0,external_wp_i18n_namespaceObject.__)('Anonymous');
9566      }
9567      return authorName !== null && authorName !== void 0 ? authorName : '';
9568    }, [commentId]);
9569    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
9570      group: "block",
9571      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
9572        value: textAlign,
9573        onChange: newAlign => setAttributes({
9574          textAlign: newAlign
9575        })
9576      })
9577    });
9578    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
9579      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
9580        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
9581        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
9582          __nextHasNoMarginBottom: true,
9583          label: (0,external_wp_i18n_namespaceObject.__)('Link to authors URL'),
9584          onChange: () => setAttributes({
9585            isLink: !isLink
9586          }),
9587          checked: isLink
9588        }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
9589          __nextHasNoMarginBottom: true,
9590          label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
9591          onChange: value => setAttributes({
9592            linkTarget: value ? '_blank' : '_self'
9593          }),
9594          checked: linkTarget === '_blank'
9595        })]
9596      })
9597    });
9598    if (!commentId || !displayName) {
9599      displayName = (0,external_wp_i18n_namespaceObject._x)('Comment Author', 'block title');
9600    }
9601    const displayAuthor = isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9602      href: "#comment-author-pseudo-link",
9603      onClick: event => event.preventDefault(),
9604      children: displayName
9605    }) : displayName;
9606    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9607      children: [inspectorControls, blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9608        ...blockProps,
9609        children: displayAuthor
9610      })]
9611    });
9612  }
9613  
9614  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/deprecated.js
9615  /**
9616   * Internal dependencies
9617   */
9618  
9619  const deprecated_v1 = {
9620    attributes: {
9621      isLink: {
9622        type: 'boolean',
9623        default: false
9624      },
9625      linkTarget: {
9626        type: 'string',
9627        default: '_self'
9628      }
9629    },
9630    supports: {
9631      html: false,
9632      color: {
9633        gradients: true,
9634        link: true
9635      },
9636      typography: {
9637        fontSize: true,
9638        lineHeight: true,
9639        __experimentalFontFamily: true,
9640        __experimentalFontWeight: true,
9641        __experimentalFontStyle: true,
9642        __experimentalTextTransform: true,
9643        __experimentalLetterSpacing: true
9644      }
9645    },
9646    save() {
9647      return null;
9648    },
9649    migrate: migrate_font_family,
9650    isEligible({
9651      style
9652    }) {
9653      return style?.typography?.fontFamily;
9654    }
9655  };
9656  
9657  /**
9658   * New deprecations need to be placed first
9659   * for them to have higher priority.
9660   *
9661   * Old deprecations may need to be updated as well.
9662   *
9663   * See block-deprecation.md
9664   */
9665  /* harmony default export */ const comment_author_name_deprecated = ([deprecated_v1]);
9666  
9667  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
9668  /**
9669   * WordPress dependencies
9670   */
9671  
9672  
9673  /**
9674   * Internal dependencies
9675   */
9676  
9677  const comment_author_name_metadata = {
9678    $schema: "https://schemas.wp.org/trunk/block.json",
9679    apiVersion: 3,
9680    name: "core/comment-author-name",
9681    title: "Comment Author Name",
9682    category: "theme",
9683    ancestor: ["core/comment-template"],
9684    description: "Displays the name of the author of the comment.",
9685    textdomain: "default",
9686    attributes: {
9687      isLink: {
9688        type: "boolean",
9689        "default": true
9690      },
9691      linkTarget: {
9692        type: "string",
9693        "default": "_self"
9694      },
9695      textAlign: {
9696        type: "string"
9697      }
9698    },
9699    usesContext: ["commentId"],
9700    supports: {
9701      html: false,
9702      spacing: {
9703        margin: true,
9704        padding: true
9705      },
9706      color: {
9707        gradients: true,
9708        link: true,
9709        __experimentalDefaultControls: {
9710          background: true,
9711          text: true,
9712          link: true
9713        }
9714      },
9715      typography: {
9716        fontSize: true,
9717        lineHeight: true,
9718        __experimentalFontFamily: true,
9719        __experimentalFontWeight: true,
9720        __experimentalFontStyle: true,
9721        __experimentalTextTransform: true,
9722        __experimentalTextDecoration: true,
9723        __experimentalLetterSpacing: true,
9724        __experimentalDefaultControls: {
9725          fontSize: true
9726        }
9727      },
9728      interactivity: {
9729        clientNavigation: true
9730      },
9731      __experimentalBorder: {
9732        radius: true,
9733        color: true,
9734        width: true,
9735        style: true,
9736        __experimentalDefaultControls: {
9737          radius: true,
9738          color: true,
9739          width: true,
9740          style: true
9741        }
9742      }
9743    },
9744    style: "wp-block-comment-author-name"
9745  };
9746  
9747  
9748  const {
9749    name: comment_author_name_name
9750  } = comment_author_name_metadata;
9751  
9752  const comment_author_name_settings = {
9753    icon: comment_author_name,
9754    edit: comment_author_name_edit_Edit,
9755    deprecated: comment_author_name_deprecated
9756  };
9757  const comment_author_name_init = () => initBlock({
9758    name: comment_author_name_name,
9759    metadata: comment_author_name_metadata,
9760    settings: comment_author_name_settings
9761  });
9762  
9763  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-content.js
9764  /**
9765   * WordPress dependencies
9766   */
9767  
9768  
9769  const commentContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
9770    viewBox: "0 0 24 24",
9771    xmlns: "http://www.w3.org/2000/svg",
9772    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9773      fillRule: "evenodd",
9774      clipRule: "evenodd",
9775      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"
9776    })
9777  });
9778  /* harmony default export */ const comment_content = (commentContent);
9779  
9780  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/edit.js
9781  /**
9782   * External dependencies
9783   */
9784  
9785  
9786  /**
9787   * WordPress dependencies
9788   */
9789  
9790  
9791  
9792  
9793  
9794  
9795  /**
9796   * Renders the `core/comment-content` block on the editor.
9797   *
9798   * @param {Object} props                      React props.
9799   * @param {Object} props.setAttributes        Callback for updating block attributes.
9800   * @param {Object} props.attributes           Block attributes.
9801   * @param {string} props.attributes.textAlign The `textAlign` attribute.
9802   * @param {Object} props.context              Inherited context.
9803   * @param {string} props.context.commentId    The comment ID.
9804   *
9805   * @return {JSX.Element} React element.
9806   */
9807  
9808  
9809  
9810  function comment_content_edit_Edit({
9811    setAttributes,
9812    attributes: {
9813      textAlign
9814    },
9815    context: {
9816      commentId
9817    }
9818  }) {
9819    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
9820      className: dist_clsx({
9821        [`has-text-align-$textAlign}`]: textAlign
9822      })
9823    });
9824    const [content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'content', commentId);
9825    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
9826      group: "block",
9827      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
9828        value: textAlign,
9829        onChange: newAlign => setAttributes({
9830          textAlign: newAlign
9831        })
9832      })
9833    });
9834    if (!commentId || !content) {
9835      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9836        children: [blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9837          ...blockProps,
9838          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
9839            children: (0,external_wp_i18n_namespaceObject._x)('Comment Content', 'block title')
9840          })
9841        })]
9842      });
9843    }
9844    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9845      children: [blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9846        ...blockProps,
9847        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
9848          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
9849            children: content.rendered
9850          }, "html")
9851        })
9852      })]
9853    });
9854  }
9855  
9856  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
9857  /**
9858   * WordPress dependencies
9859   */
9860  
9861  
9862  /**
9863   * Internal dependencies
9864   */
9865  
9866  const comment_content_metadata = {
9867    $schema: "https://schemas.wp.org/trunk/block.json",
9868    apiVersion: 3,
9869    name: "core/comment-content",
9870    title: "Comment Content",
9871    category: "theme",
9872    ancestor: ["core/comment-template"],
9873    description: "Displays the contents of a comment.",
9874    textdomain: "default",
9875    usesContext: ["commentId"],
9876    attributes: {
9877      textAlign: {
9878        type: "string"
9879      }
9880    },
9881    supports: {
9882      color: {
9883        gradients: true,
9884        link: true,
9885        __experimentalDefaultControls: {
9886          background: true,
9887          text: true
9888        }
9889      },
9890      typography: {
9891        fontSize: true,
9892        lineHeight: true,
9893        __experimentalFontFamily: true,
9894        __experimentalFontWeight: true,
9895        __experimentalFontStyle: true,
9896        __experimentalTextTransform: true,
9897        __experimentalTextDecoration: true,
9898        __experimentalLetterSpacing: true,
9899        __experimentalDefaultControls: {
9900          fontSize: true
9901        }
9902      },
9903      __experimentalBorder: {
9904        radius: true,
9905        color: true,
9906        width: true,
9907        style: true,
9908        __experimentalDefaultControls: {
9909          radius: true,
9910          color: true,
9911          width: true,
9912          style: true
9913        }
9914      },
9915      spacing: {
9916        padding: ["horizontal", "vertical"],
9917        __experimentalDefaultControls: {
9918          padding: true
9919        }
9920      },
9921      html: false
9922    },
9923    style: "wp-block-comment-content"
9924  };
9925  
9926  const {
9927    name: comment_content_name
9928  } = comment_content_metadata;
9929  
9930  const comment_content_settings = {
9931    icon: comment_content,
9932    edit: comment_content_edit_Edit
9933  };
9934  const comment_content_init = () => initBlock({
9935    name: comment_content_name,
9936    metadata: comment_content_metadata,
9937    settings: comment_content_settings
9938  });
9939  
9940  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-date.js
9941  /**
9942   * WordPress dependencies
9943   */
9944  
9945  
9946  
9947  const postDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
9948    xmlns: "http://www.w3.org/2000/svg",
9949    viewBox: "0 0 24 24",
9950    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9951      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"
9952    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9953      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"
9954    })]
9955  });
9956  /* harmony default export */ const post_date = (postDate);
9957  
9958  ;// CONCATENATED MODULE: external ["wp","date"]
9959  const external_wp_date_namespaceObject = window["wp"]["date"];
9960  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/edit.js
9961  /**
9962   * WordPress dependencies
9963   */
9964  
9965  
9966  
9967  
9968  
9969  
9970  /**
9971   * Renders the `core/comment-date` block on the editor.
9972   *
9973   * @param {Object} props                   React props.
9974   * @param {Object} props.setAttributes     Callback for updating block attributes.
9975   * @param {Object} props.attributes        Block attributes.
9976   * @param {string} props.attributes.format Format of the date.
9977   * @param {string} props.attributes.isLink Whether the author name should be linked.
9978   * @param {Object} props.context           Inherited context.
9979   * @param {string} props.context.commentId The comment ID.
9980   *
9981   * @return {JSX.Element} React element.
9982   */
9983  
9984  
9985  
9986  function comment_date_edit_Edit({
9987    attributes: {
9988      format,
9989      isLink
9990    },
9991    context: {
9992      commentId
9993    },
9994    setAttributes
9995  }) {
9996    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
9997    let [date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'date', commentId);
9998    const [siteFormat = (0,external_wp_date_namespaceObject.getSettings)().formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
9999    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
10000      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
10001        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
10002        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
10003          format: format,
10004          defaultFormat: siteFormat,
10005          onChange: nextFormat => setAttributes({
10006            format: nextFormat
10007          })
10008        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
10009          __nextHasNoMarginBottom: true,
10010          label: (0,external_wp_i18n_namespaceObject.__)('Link to comment'),
10011          onChange: () => setAttributes({
10012            isLink: !isLink
10013          }),
10014          checked: isLink
10015        })]
10016      })
10017    });
10018    if (!commentId || !date) {
10019      date = (0,external_wp_i18n_namespaceObject._x)('Comment Date', 'block title');
10020    }
10021    let commentDate = date instanceof Date ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
10022      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
10023      children: format === 'human-diff' ? (0,external_wp_date_namespaceObject.humanTimeDiff)(date) : (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)
10024    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
10025      children: date
10026    });
10027    if (isLink) {
10028      commentDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10029        href: "#comment-date-pseudo-link",
10030        onClick: event => event.preventDefault(),
10031        children: commentDate
10032      });
10033    }
10034    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10035      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10036        ...blockProps,
10037        children: commentDate
10038      })]
10039    });
10040  }
10041  
10042  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/deprecated.js
10043  /**
10044   * Internal dependencies
10045   */
10046  
10047  const comment_date_deprecated_v1 = {
10048    attributes: {
10049      format: {
10050        type: 'string'
10051      },
10052      isLink: {
10053        type: 'boolean',
10054        default: false
10055      }
10056    },
10057    supports: {
10058      html: false,
10059      color: {
10060        gradients: true,
10061        link: true
10062      },
10063      typography: {
10064        fontSize: true,
10065        lineHeight: true,
10066        __experimentalFontFamily: true,
10067        __experimentalFontWeight: true,
10068        __experimentalFontStyle: true,
10069        __experimentalTextTransform: true,
10070        __experimentalLetterSpacing: true
10071      }
10072    },
10073    save() {
10074      return null;
10075    },
10076    migrate: migrate_font_family,
10077    isEligible({
10078      style
10079    }) {
10080      return style?.typography?.fontFamily;
10081    }
10082  };
10083  
10084  /**
10085   * New deprecations need to be placed first
10086   * for them to have higher priority.
10087   *
10088   * Old deprecations may need to be updated as well.
10089   *
10090   * See block-deprecation.md
10091   */
10092  /* harmony default export */ const comment_date_deprecated = ([comment_date_deprecated_v1]);
10093  
10094  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
10095  /**
10096   * WordPress dependencies
10097   */
10098  
10099  
10100  /**
10101   * Internal dependencies
10102   */
10103  
10104  const comment_date_metadata = {
10105    $schema: "https://schemas.wp.org/trunk/block.json",
10106    apiVersion: 3,
10107    name: "core/comment-date",
10108    title: "Comment Date",
10109    category: "theme",
10110    ancestor: ["core/comment-template"],
10111    description: "Displays the date on which the comment was posted.",
10112    textdomain: "default",
10113    attributes: {
10114      format: {
10115        type: "string"
10116      },
10117      isLink: {
10118        type: "boolean",
10119        "default": true
10120      }
10121    },
10122    usesContext: ["commentId"],
10123    supports: {
10124      html: false,
10125      color: {
10126        gradients: true,
10127        link: true,
10128        __experimentalDefaultControls: {
10129          background: true,
10130          text: true,
10131          link: true
10132        }
10133      },
10134      spacing: {
10135        margin: true,
10136        padding: true
10137      },
10138      typography: {
10139        fontSize: true,
10140        lineHeight: true,
10141        __experimentalFontFamily: true,
10142        __experimentalFontWeight: true,
10143        __experimentalFontStyle: true,
10144        __experimentalTextTransform: true,
10145        __experimentalTextDecoration: true,
10146        __experimentalLetterSpacing: true,
10147        __experimentalDefaultControls: {
10148          fontSize: true
10149        }
10150      },
10151      interactivity: {
10152        clientNavigation: true
10153      },
10154      __experimentalBorder: {
10155        radius: true,
10156        color: true,
10157        width: true,
10158        style: true,
10159        __experimentalDefaultControls: {
10160          radius: true,
10161          color: true,
10162          width: true,
10163          style: true
10164        }
10165      }
10166    },
10167    style: "wp-block-comment-date"
10168  };
10169  
10170  
10171  const {
10172    name: comment_date_name
10173  } = comment_date_metadata;
10174  
10175  const comment_date_settings = {
10176    icon: post_date,
10177    edit: comment_date_edit_Edit,
10178    deprecated: comment_date_deprecated
10179  };
10180  const comment_date_init = () => initBlock({
10181    name: comment_date_name,
10182    metadata: comment_date_metadata,
10183    settings: comment_date_settings
10184  });
10185  
10186  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-edit-link.js
10187  /**
10188   * WordPress dependencies
10189   */
10190  
10191  
10192  const commentEditLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10193    width: "24",
10194    height: "24",
10195    viewBox: "0 0 24 24",
10196    xmlns: "http://www.w3.org/2000/svg",
10197    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10198      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"
10199    })
10200  });
10201  /* harmony default export */ const comment_edit_link = (commentEditLink);
10202  
10203  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/edit.js
10204  /**
10205   * External dependencies
10206   */
10207  
10208  
10209  /**
10210   * WordPress dependencies
10211   */
10212  
10213  
10214  
10215  
10216  
10217  
10218  function comment_edit_link_edit_Edit({
10219    attributes: {
10220      linkTarget,
10221      textAlign
10222    },
10223    setAttributes
10224  }) {
10225    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
10226      className: dist_clsx({
10227        [`has-text-align-$textAlign}`]: textAlign
10228      })
10229    });
10230    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
10231      group: "block",
10232      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
10233        value: textAlign,
10234        onChange: newAlign => setAttributes({
10235          textAlign: newAlign
10236        })
10237      })
10238    });
10239    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
10240      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
10241        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
10242        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
10243          __nextHasNoMarginBottom: true,
10244          label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
10245          onChange: value => setAttributes({
10246            linkTarget: value ? '_blank' : '_self'
10247          }),
10248          checked: linkTarget === '_blank'
10249        })
10250      })
10251    });
10252    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10253      children: [blockControls, inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10254        ...blockProps,
10255        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10256          href: "#edit-comment-pseudo-link",
10257          onClick: event => event.preventDefault(),
10258          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
10259        })
10260      })]
10261    });
10262  }
10263  
10264  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
10265  /**
10266   * WordPress dependencies
10267   */
10268  
10269  
10270  /**
10271   * Internal dependencies
10272   */
10273  
10274  const comment_edit_link_metadata = {
10275    $schema: "https://schemas.wp.org/trunk/block.json",
10276    apiVersion: 3,
10277    name: "core/comment-edit-link",
10278    title: "Comment Edit Link",
10279    category: "theme",
10280    ancestor: ["core/comment-template"],
10281    description: "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.",
10282    textdomain: "default",
10283    usesContext: ["commentId"],
10284    attributes: {
10285      linkTarget: {
10286        type: "string",
10287        "default": "_self"
10288      },
10289      textAlign: {
10290        type: "string"
10291      }
10292    },
10293    supports: {
10294      html: false,
10295      color: {
10296        link: true,
10297        gradients: true,
10298        text: false,
10299        __experimentalDefaultControls: {
10300          background: true,
10301          link: true
10302        }
10303      },
10304      spacing: {
10305        margin: true,
10306        padding: true,
10307        __experimentalDefaultControls: {
10308          margin: false,
10309          padding: false
10310        }
10311      },
10312      typography: {
10313        fontSize: true,
10314        lineHeight: true,
10315        __experimentalFontFamily: true,
10316        __experimentalFontWeight: true,
10317        __experimentalFontStyle: true,
10318        __experimentalTextTransform: true,
10319        __experimentalTextDecoration: true,
10320        __experimentalLetterSpacing: true,
10321        __experimentalDefaultControls: {
10322          fontSize: true
10323        }
10324      },
10325      interactivity: {
10326        clientNavigation: true
10327      },
10328      __experimentalBorder: {
10329        radius: true,
10330        color: true,
10331        width: true,
10332        style: true
10333      }
10334    },
10335    style: "wp-block-comment-edit-link"
10336  };
10337  
10338  const {
10339    name: comment_edit_link_name
10340  } = comment_edit_link_metadata;
10341  
10342  const comment_edit_link_settings = {
10343    icon: comment_edit_link,
10344    edit: comment_edit_link_edit_Edit
10345  };
10346  const comment_edit_link_init = () => initBlock({
10347    name: comment_edit_link_name,
10348    metadata: comment_edit_link_metadata,
10349    settings: comment_edit_link_settings
10350  });
10351  
10352  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-reply-link.js
10353  /**
10354   * WordPress dependencies
10355   */
10356  
10357  
10358  const commentReplyLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10359    width: "24",
10360    height: "24",
10361    viewBox: "0 0 24 24",
10362    xmlns: "http://www.w3.org/2000/svg",
10363    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10364      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"
10365    })
10366  });
10367  /* harmony default export */ const comment_reply_link = (commentReplyLink);
10368  
10369  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/edit.js
10370  /**
10371   * External dependencies
10372   */
10373  
10374  
10375  /**
10376   * WordPress dependencies
10377   */
10378  
10379  
10380  
10381  /**
10382   * Renders the `core/comment-reply-link` block on the editor.
10383   *
10384   * @param {Object} props                      React props.
10385   * @param {Object} props.setAttributes        Callback for updating block attributes.
10386   * @param {Object} props.attributes           Block attributes.
10387   * @param {string} props.attributes.textAlign The `textAlign` attribute.
10388   *
10389   * @return {JSX.Element} React element.
10390   */
10391  
10392  
10393  
10394  function comment_reply_link_edit_Edit({
10395    setAttributes,
10396    attributes: {
10397      textAlign
10398    }
10399  }) {
10400    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
10401      className: dist_clsx({
10402        [`has-text-align-$textAlign}`]: textAlign
10403      })
10404    });
10405    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
10406      group: "block",
10407      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
10408        value: textAlign,
10409        onChange: newAlign => setAttributes({
10410          textAlign: newAlign
10411        })
10412      })
10413    });
10414    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10415      children: [blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10416        ...blockProps,
10417        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10418          href: "#comment-reply-pseudo-link",
10419          onClick: event => event.preventDefault(),
10420          children: (0,external_wp_i18n_namespaceObject.__)('Reply')
10421        })
10422      })]
10423    });
10424  }
10425  /* harmony default export */ const comment_reply_link_edit = (comment_reply_link_edit_Edit);
10426  
10427  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
10428  /**
10429   * WordPress dependencies
10430   */
10431  
10432  
10433  /**
10434   * Internal dependencies
10435   */
10436  
10437  const comment_reply_link_metadata = {
10438    $schema: "https://schemas.wp.org/trunk/block.json",
10439    apiVersion: 3,
10440    name: "core/comment-reply-link",
10441    title: "Comment Reply Link",
10442    category: "theme",
10443    ancestor: ["core/comment-template"],
10444    description: "Displays a link to reply to a comment.",
10445    textdomain: "default",
10446    usesContext: ["commentId"],
10447    attributes: {
10448      textAlign: {
10449        type: "string"
10450      }
10451    },
10452    supports: {
10453      color: {
10454        gradients: true,
10455        link: true,
10456        text: false,
10457        __experimentalDefaultControls: {
10458          background: true,
10459          link: true
10460        }
10461      },
10462      spacing: {
10463        margin: true,
10464        padding: true,
10465        __experimentalDefaultControls: {
10466          margin: false,
10467          padding: false
10468        }
10469      },
10470      typography: {
10471        fontSize: true,
10472        lineHeight: true,
10473        __experimentalFontFamily: true,
10474        __experimentalFontWeight: true,
10475        __experimentalFontStyle: true,
10476        __experimentalTextTransform: true,
10477        __experimentalTextDecoration: true,
10478        __experimentalLetterSpacing: true,
10479        __experimentalDefaultControls: {
10480          fontSize: true
10481        }
10482      },
10483      __experimentalBorder: {
10484        radius: true,
10485        color: true,
10486        width: true,
10487        style: true
10488      },
10489      html: false
10490    },
10491    style: "wp-block-comment-reply-link"
10492  };
10493  
10494  const {
10495    name: comment_reply_link_name
10496  } = comment_reply_link_metadata;
10497  
10498  const comment_reply_link_settings = {
10499    edit: comment_reply_link_edit,
10500    icon: comment_reply_link
10501  };
10502  const comment_reply_link_init = () => initBlock({
10503    name: comment_reply_link_name,
10504    metadata: comment_reply_link_metadata,
10505    settings: comment_reply_link_settings
10506  });
10507  
10508  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js
10509  /**
10510   * WordPress dependencies
10511   */
10512  
10513  
10514  const layout = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10515    xmlns: "http://www.w3.org/2000/svg",
10516    viewBox: "0 0 24 24",
10517    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10518      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"
10519    })
10520  });
10521  /* harmony default export */ const library_layout = (layout);
10522  
10523  ;// CONCATENATED MODULE: external ["wp","apiFetch"]
10524  const external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"];
10525  var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject);
10526  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/hooks.js
10527  /**
10528   * WordPress dependencies
10529   */
10530  
10531  
10532  
10533  
10534  
10535  
10536  // This is limited by WP REST API
10537  const MAX_COMMENTS_PER_PAGE = 100;
10538  
10539  /**
10540   * Return an object with the query args needed to fetch the default page of
10541   * comments.
10542   *
10543   * @param {Object} props        Hook props.
10544   * @param {number} props.postId ID of the post that contains the comments.
10545   *                              discussion settings.
10546   *
10547   * @return {Object} Query args to retrieve the comments.
10548   */
10549  const useCommentQueryArgs = ({
10550    postId
10551  }) => {
10552    // Initialize the query args that are not going to change.
10553    const queryArgs = {
10554      status: 'approve',
10555      order: 'asc',
10556      context: 'embed',
10557      parent: 0,
10558      _embed: 'children'
10559    };
10560  
10561    // Get the Discussion settings that may be needed to query the comments.
10562    const {
10563      pageComments,
10564      commentsPerPage,
10565      defaultCommentsPage: defaultPage
10566    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
10567      const {
10568        getSettings
10569      } = select(external_wp_blockEditor_namespaceObject.store);
10570      const {
10571        __experimentalDiscussionSettings
10572      } = getSettings();
10573      return __experimentalDiscussionSettings;
10574    });
10575  
10576    // WP REST API doesn't allow fetching more than max items limit set per single page of data.
10577    // As for the editor performance is more important than completeness of data and fetching only the
10578    // max allowed for single page should be enough for the purpose of design and laying out the page.
10579    // Fetching over the limit would return an error here but would work with backend query.
10580    const perPage = pageComments ? Math.min(commentsPerPage, MAX_COMMENTS_PER_PAGE) : MAX_COMMENTS_PER_PAGE;
10581  
10582    // Get the number of the default page.
10583    const page = useDefaultPageIndex({
10584      defaultPage,
10585      postId,
10586      perPage,
10587      queryArgs
10588    });
10589  
10590    // Merge, memoize and return all query arguments, unless the default page's
10591    // number is not known yet.
10592    return (0,external_wp_element_namespaceObject.useMemo)(() => {
10593      return page ? {
10594        ...queryArgs,
10595        post: postId,
10596        per_page: perPage,
10597        page
10598      } : null;
10599    }, [postId, perPage, page]);
10600  };
10601  
10602  /**
10603   * Return the index of the default page, depending on whether `defaultPage` is
10604   * `newest` or `oldest`. In the first case, the only way to know the page's
10605   * index is by using the `X-WP-TotalPages` header, which forces to make an
10606   * additional request.
10607   *
10608   * @param {Object} props             Hook props.
10609   * @param {string} props.defaultPage Page shown by default (newest/oldest).
10610   * @param {number} props.postId      ID of the post that contains the comments.
10611   * @param {number} props.perPage     The number of comments included per page.
10612   * @param {Object} props.queryArgs   Other query args.
10613   *
10614   * @return {number} Index of the default comments page.
10615   */
10616  const useDefaultPageIndex = ({
10617    defaultPage,
10618    postId,
10619    perPage,
10620    queryArgs
10621  }) => {
10622    // Store the default page indices.
10623    const [defaultPages, setDefaultPages] = (0,external_wp_element_namespaceObject.useState)({});
10624    const key = `$postId}_$perPage}`;
10625    const page = defaultPages[key] || 0;
10626    (0,external_wp_element_namespaceObject.useEffect)(() => {
10627      // Do nothing if the page is already known or not the newest page.
10628      if (page || defaultPage !== 'newest') {
10629        return;
10630      }
10631      // We need to fetch comments to know the index. Use HEAD and limit
10632      // fields just to ID, to make this call as light as possible.
10633      external_wp_apiFetch_default()({
10634        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
10635          ...queryArgs,
10636          post: postId,
10637          per_page: perPage,
10638          _fields: 'id'
10639        }),
10640        method: 'HEAD',
10641        parse: false
10642      }).then(res => {
10643        const pages = parseInt(res.headers.get('X-WP-TotalPages'));
10644        setDefaultPages({
10645          ...defaultPages,
10646          [key]: pages <= 1 ? 1 : pages // If there are 0 pages, it means that there are no comments, but there is no 0th page.
10647        });
10648      });
10649    }, [defaultPage, postId, perPage, setDefaultPages]);
10650  
10651    // The oldest one is always the first one.
10652    return defaultPage === 'newest' ? page : 1;
10653  };
10654  
10655  /**
10656   * Generate a tree structure of comment IDs from a list of comment entities. The
10657   * children of each comment are obtained from `_embedded`.
10658   *
10659   * @typedef {{ commentId: number, children: CommentNode }} CommentNode
10660   *
10661   * @param {Object[]} topLevelComments List of comment entities.
10662   * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.
10663   */
10664  const useCommentTree = topLevelComments => {
10665    const commentTree = (0,external_wp_element_namespaceObject.useMemo)(() => topLevelComments?.map(({
10666      id,
10667      _embedded
10668    }) => {
10669      const [children] = _embedded?.children || [[]];
10670      return {
10671        commentId: id,
10672        children: children.map(child => ({
10673          commentId: child.id
10674        }))
10675      };
10676    }), [topLevelComments]);
10677    return commentTree;
10678  };
10679  
10680  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/edit.js
10681  /**
10682   * WordPress dependencies
10683   */
10684  
10685  
10686  
10687  
10688  
10689  
10690  
10691  /**
10692   * Internal dependencies
10693   */
10694  
10695  
10696  
10697  const edit_TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']];
10698  
10699  /**
10700   * Function that returns a comment structure that will be rendered with default placehoders.
10701   *
10702   * Each comment has a `commentId` property that is always a negative number in
10703   * case of the placeholders. This is to ensure that the comment does not
10704   * conflict with the actual (real) comments.
10705   *
10706   * @param {Object}  settings                       Discussion Settings.
10707   * @param {number}  [settings.perPage]             - Comments per page setting or block attribute.
10708   * @param {boolean} [settings.pageComments]        - Enable break comments into pages setting.
10709   * @param {boolean} [settings.threadComments]      - Enable threaded (nested) comments setting.
10710   * @param {number}  [settings.threadCommentsDepth] - Level deep of threaded comments.
10711   *
10712   * @typedef {{id: null, children: EmptyComment[]}} EmptyComment
10713   * @return {EmptyComment[]}                         Inner blocks of the Comment Template
10714   */
10715  const getCommentsPlaceholder = ({
10716    perPage,
10717    pageComments,
10718    threadComments,
10719    threadCommentsDepth
10720  }) => {
10721    // Limit commentsDepth to 3
10722    const commentsDepth = !threadComments ? 1 : Math.min(threadCommentsDepth, 3);
10723    const buildChildrenComment = commentsLevel => {
10724      // Render children comments until commentsDepth is reached
10725      if (commentsLevel < commentsDepth) {
10726        const nextLevel = commentsLevel + 1;
10727        return [{
10728          commentId: -(commentsLevel + 3),
10729          children: buildChildrenComment(nextLevel)
10730        }];
10731      }
10732      return [];
10733    };
10734  
10735    // Add the first comment and its children
10736    const placeholderComments = [{
10737      commentId: -1,
10738      children: buildChildrenComment(1)
10739    }];
10740  
10741    // Add a second comment unless the break comments setting is active and set to less than 2, and there is one nested comment max
10742    if ((!pageComments || perPage >= 2) && commentsDepth < 3) {
10743      placeholderComments.push({
10744        commentId: -2,
10745        children: []
10746      });
10747    }
10748  
10749    // Add a third comment unless the break comments setting is active and set to less than 3, and there aren't nested comments
10750    if ((!pageComments || perPage >= 3) && commentsDepth < 2) {
10751      placeholderComments.push({
10752        commentId: -3,
10753        children: []
10754      });
10755    }
10756  
10757    // In case that the value is set but larger than 3 we truncate it to 3.
10758    return placeholderComments;
10759  };
10760  
10761  /**
10762   * Component which renders the inner blocks of the Comment Template.
10763   *
10764   * @param {Object} props                      Component props.
10765   * @param {Array}  [props.comment]            - A comment object.
10766   * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
10767   * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
10768   * @param {Array}  [props.firstCommentId]     - ID of the first comment in the array.
10769   * @param {Array}  [props.blocks]             - Array of blocks returned from
10770   *                                            getBlocks() in parent .
10771   * @return {Element}                         Inner blocks of the Comment Template
10772   */
10773  function CommentTemplateInnerBlocks({
10774    comment,
10775    activeCommentId,
10776    setActiveCommentId,
10777    firstCommentId,
10778    blocks
10779  }) {
10780    const {
10781      children,
10782      ...innerBlocksProps
10783    } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, {
10784      template: edit_TEMPLATE
10785    });
10786    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
10787      ...innerBlocksProps,
10788      children: [comment.commentId === (activeCommentId || firstCommentId) ? children : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MemoizedCommentTemplatePreview, {
10789        blocks: blocks,
10790        commentId: comment.commentId,
10791        setActiveCommentId: setActiveCommentId,
10792        isHidden: comment.commentId === (activeCommentId || firstCommentId)
10793      }), comment?.children?.length > 0 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsList, {
10794        comments: comment.children,
10795        activeCommentId: activeCommentId,
10796        setActiveCommentId: setActiveCommentId,
10797        blocks: blocks,
10798        firstCommentId: firstCommentId
10799      }) : null]
10800    });
10801  }
10802  const CommentTemplatePreview = ({
10803    blocks,
10804    commentId,
10805    setActiveCommentId,
10806    isHidden
10807  }) => {
10808    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
10809      blocks
10810    });
10811    const handleOnClick = () => {
10812      setActiveCommentId(commentId);
10813    };
10814  
10815    // We have to hide the preview block if the `comment` props points to
10816    // the curently active block!
10817  
10818    // Or, to put it differently, every preview block is visible unless it is the
10819    // currently active block - in this case we render its inner blocks.
10820    const style = {
10821      display: isHidden ? 'none' : undefined
10822    };
10823    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10824      ...blockPreviewProps,
10825      tabIndex: 0,
10826      role: "button",
10827      style: style
10828      // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
10829      ,
10830      onClick: handleOnClick,
10831      onKeyPress: handleOnClick
10832    });
10833  };
10834  const MemoizedCommentTemplatePreview = (0,external_wp_element_namespaceObject.memo)(CommentTemplatePreview);
10835  
10836  /**
10837   * Component that renders a list of (nested) comments. It is called recursively.
10838   *
10839   * @param {Object} props                      Component props.
10840   * @param {Array}  [props.comments]           - Array of comment objects.
10841   * @param {Array}  [props.blockProps]         - Props from parent's `useBlockProps()`.
10842   * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
10843   * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
10844   * @param {Array}  [props.blocks]             - Array of blocks returned from getBlocks() in parent.
10845   * @param {Object} [props.firstCommentId]     - The ID of the first comment in the array of
10846   *                                            comment objects.
10847   * @return {Element}                         List of comments.
10848   */
10849  const CommentsList = ({
10850    comments,
10851    blockProps,
10852    activeCommentId,
10853    setActiveCommentId,
10854    blocks,
10855    firstCommentId
10856  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
10857    ...blockProps,
10858    children: comments && comments.map(({
10859      commentId,
10860      ...comment
10861    }, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
10862      value: {
10863        // If the commentId is negative it means that this comment is a
10864        // "placeholder" and that the block is most likely being used in the
10865        // site editor. In this case, we have to set the commentId to `null`
10866        // because otherwise the (non-existent) comment with a negative ID
10867        // would be reqested from the REST API.
10868        commentId: commentId < 0 ? null : commentId
10869      },
10870      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentTemplateInnerBlocks, {
10871        comment: {
10872          commentId,
10873          ...comment
10874        },
10875        activeCommentId: activeCommentId,
10876        setActiveCommentId: setActiveCommentId,
10877        blocks: blocks,
10878        firstCommentId: firstCommentId
10879      })
10880    }, comment.commentId || index))
10881  });
10882  function CommentTemplateEdit({
10883    clientId,
10884    context: {
10885      postId
10886    }
10887  }) {
10888    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
10889    const [activeCommentId, setActiveCommentId] = (0,external_wp_element_namespaceObject.useState)();
10890    const {
10891      commentOrder,
10892      threadCommentsDepth,
10893      threadComments,
10894      commentsPerPage,
10895      pageComments
10896    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
10897      const {
10898        getSettings
10899      } = select(external_wp_blockEditor_namespaceObject.store);
10900      return getSettings().__experimentalDiscussionSettings;
10901    });
10902    const commentQuery = useCommentQueryArgs({
10903      postId
10904    });
10905    const {
10906      topLevelComments,
10907      blocks
10908    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
10909      const {
10910        getEntityRecords
10911      } = select(external_wp_coreData_namespaceObject.store);
10912      const {
10913        getBlocks
10914      } = select(external_wp_blockEditor_namespaceObject.store);
10915      return {
10916        // Request only top-level comments. Replies are embedded.
10917        topLevelComments: commentQuery ? getEntityRecords('root', 'comment', commentQuery) : null,
10918        blocks: getBlocks(clientId)
10919      };
10920    }, [clientId, commentQuery]);
10921  
10922    // Generate a tree structure of comment IDs.
10923    let commentTree = useCommentTree(
10924    // Reverse the order of top comments if needed.
10925    commentOrder === 'desc' && topLevelComments ? [...topLevelComments].reverse() : topLevelComments);
10926    if (!topLevelComments) {
10927      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
10928        ...blockProps,
10929        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
10930      });
10931    }
10932    if (!postId) {
10933      commentTree = getCommentsPlaceholder({
10934        perPage: commentsPerPage,
10935        pageComments,
10936        threadComments,
10937        threadCommentsDepth
10938      });
10939    }
10940    if (!commentTree.length) {
10941      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
10942        ...blockProps,
10943        children: (0,external_wp_i18n_namespaceObject.__)('No results found.')
10944      });
10945    }
10946    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsList, {
10947      comments: commentTree,
10948      blockProps: blockProps,
10949      blocks: blocks,
10950      activeCommentId: activeCommentId,
10951      setActiveCommentId: setActiveCommentId,
10952      firstCommentId: commentTree[0]?.commentId
10953    });
10954  }
10955  
10956  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/save.js
10957  /**
10958   * WordPress dependencies
10959   */
10960  
10961  
10962  function CommentTemplateSave() {
10963    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
10964  }
10965  
10966  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
10967  /**
10968   * WordPress dependencies
10969   */
10970  
10971  
10972  /**
10973   * Internal dependencies
10974   */
10975  
10976  const comment_template_metadata = {
10977    $schema: "https://schemas.wp.org/trunk/block.json",
10978    apiVersion: 3,
10979    name: "core/comment-template",
10980    title: "Comment Template",
10981    category: "design",
10982    parent: ["core/comments"],
10983    description: "Contains the block elements used to display a comment, like the title, date, author, avatar and more.",
10984    textdomain: "default",
10985    usesContext: ["postId"],
10986    supports: {
10987      align: true,
10988      html: false,
10989      reusable: false,
10990      spacing: {
10991        margin: true,
10992        padding: true
10993      },
10994      typography: {
10995        fontSize: true,
10996        lineHeight: true,
10997        __experimentalFontFamily: true,
10998        __experimentalFontWeight: true,
10999        __experimentalFontStyle: true,
11000        __experimentalTextTransform: true,
11001        __experimentalTextDecoration: true,
11002        __experimentalLetterSpacing: true,
11003        __experimentalDefaultControls: {
11004          fontSize: true
11005        }
11006      },
11007      interactivity: {
11008        clientNavigation: true
11009      },
11010      __experimentalBorder: {
11011        radius: true,
11012        color: true,
11013        width: true,
11014        style: true,
11015        __experimentalDefaultControls: {
11016          radius: true,
11017          color: true,
11018          width: true,
11019          style: true
11020        }
11021      }
11022    },
11023    style: "wp-block-comment-template"
11024  };
11025  
11026  
11027  const {
11028    name: comment_template_name
11029  } = comment_template_metadata;
11030  
11031  const comment_template_settings = {
11032    icon: library_layout,
11033    edit: CommentTemplateEdit,
11034    save: CommentTemplateSave
11035  };
11036  const comment_template_init = () => initBlock({
11037    name: comment_template_name,
11038    metadata: comment_template_metadata,
11039    settings: comment_template_settings
11040  });
11041  
11042  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-previous.js
11043  /**
11044   * WordPress dependencies
11045   */
11046  
11047  
11048  const queryPaginationPrevious = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11049    xmlns: "http://www.w3.org/2000/svg",
11050    viewBox: "0 0 24 24",
11051    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11052      d: "M16 10.5v3h3v-3h-3zm-5 3h3v-3h-3v3zM7 9l-3 3 3 3 1-1-2-2 2-2-1-1z"
11053    })
11054  });
11055  /* harmony default export */ const query_pagination_previous = (queryPaginationPrevious);
11056  
11057  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/edit.js
11058  /**
11059   * WordPress dependencies
11060   */
11061  
11062  
11063  
11064  
11065  const arrowMap = {
11066    none: '',
11067    arrow: '←',
11068    chevron: '«'
11069  };
11070  function CommentsPaginationPreviousEdit({
11071    attributes: {
11072      label
11073    },
11074    setAttributes,
11075    context: {
11076      'comments/paginationArrow': paginationArrow
11077    }
11078  }) {
11079    const displayArrow = arrowMap[paginationArrow];
11080    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
11081      href: "#comments-pagination-previous-pseudo-link",
11082      onClick: event => event.preventDefault(),
11083      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
11084      children: [displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
11085        className: `wp-block-comments-pagination-previous-arrow is-arrow-$paginationArrow}`,
11086        children: displayArrow
11087      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
11088        __experimentalVersion: 2,
11089        tagName: "span",
11090        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Older comments page link'),
11091        placeholder: (0,external_wp_i18n_namespaceObject.__)('Older Comments'),
11092        value: label,
11093        onChange: newLabel => setAttributes({
11094          label: newLabel
11095        })
11096      })]
11097    });
11098  }
11099  
11100  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
11101  /**
11102   * WordPress dependencies
11103   */
11104  
11105  
11106  /**
11107   * Internal dependencies
11108   */
11109  
11110  const comments_pagination_previous_metadata = {
11111    $schema: "https://schemas.wp.org/trunk/block.json",
11112    apiVersion: 3,
11113    name: "core/comments-pagination-previous",
11114    title: "Comments Previous Page",
11115    category: "theme",
11116    parent: ["core/comments-pagination"],
11117    description: "Displays the previous comment's page link.",
11118    textdomain: "default",
11119    attributes: {
11120      label: {
11121        type: "string"
11122      }
11123    },
11124    usesContext: ["postId", "comments/paginationArrow"],
11125    supports: {
11126      reusable: false,
11127      html: false,
11128      color: {
11129        gradients: true,
11130        text: false,
11131        __experimentalDefaultControls: {
11132          background: true
11133        }
11134      },
11135      typography: {
11136        fontSize: true,
11137        lineHeight: true,
11138        __experimentalFontFamily: true,
11139        __experimentalFontWeight: true,
11140        __experimentalFontStyle: true,
11141        __experimentalTextTransform: true,
11142        __experimentalTextDecoration: true,
11143        __experimentalLetterSpacing: true,
11144        __experimentalDefaultControls: {
11145          fontSize: true
11146        }
11147      },
11148      interactivity: {
11149        clientNavigation: true
11150      }
11151    }
11152  };
11153  
11154  const {
11155    name: comments_pagination_previous_name
11156  } = comments_pagination_previous_metadata;
11157  
11158  const comments_pagination_previous_settings = {
11159    icon: query_pagination_previous,
11160    edit: CommentsPaginationPreviousEdit
11161  };
11162  const comments_pagination_previous_init = () => initBlock({
11163    name: comments_pagination_previous_name,
11164    metadata: comments_pagination_previous_metadata,
11165    settings: comments_pagination_previous_settings
11166  });
11167  
11168  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination.js
11169  /**
11170   * WordPress dependencies
11171   */
11172  
11173  
11174  const queryPagination = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11175    xmlns: "http://www.w3.org/2000/svg",
11176    viewBox: "0 0 24 24",
11177    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11178      d: "M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z"
11179    })
11180  });
11181  /* harmony default export */ const query_pagination = (queryPagination);
11182  
11183  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/comments-pagination-arrow-controls.js
11184  /**
11185   * WordPress dependencies
11186   */
11187  
11188  
11189  
11190  
11191  function CommentsPaginationArrowControls({
11192    value,
11193    onChange
11194  }) {
11195    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
11196      __next40pxDefaultSize: true,
11197      __nextHasNoMarginBottom: true,
11198      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
11199      value: value,
11200      onChange: onChange,
11201      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous comments link.'),
11202      isBlock: true,
11203      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
11204        value: "none",
11205        label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Comments Pagination Next/Previous blocks')
11206      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
11207        value: "arrow",
11208        label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Comments Pagination Next/Previous blocks')
11209      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
11210        value: "chevron",
11211        label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Comments Pagination Next/Previous blocks')
11212      })]
11213    });
11214  }
11215  
11216  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/edit.js
11217  /**
11218   * WordPress dependencies
11219   */
11220  
11221  
11222  
11223  
11224  
11225  /**
11226   * Internal dependencies
11227   */
11228  
11229  
11230  
11231  
11232  const comments_pagination_edit_TEMPLATE = [['core/comments-pagination-previous'], ['core/comments-pagination-numbers'], ['core/comments-pagination-next']];
11233  function QueryPaginationEdit({
11234    attributes: {
11235      paginationArrow
11236    },
11237    setAttributes,
11238    clientId
11239  }) {
11240    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
11241      const {
11242        getBlocks
11243      } = select(external_wp_blockEditor_namespaceObject.store);
11244      const innerBlocks = getBlocks(clientId);
11245      /**
11246       * Show the `paginationArrow` control only if a
11247       * Comments Pagination Next or Comments Pagination Previous
11248       * block exists.
11249       */
11250      return innerBlocks?.find(innerBlock => {
11251        return ['core/comments-pagination-previous', 'core/comments-pagination-next'].includes(innerBlock.name);
11252      });
11253    }, []);
11254    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
11255    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
11256      template: comments_pagination_edit_TEMPLATE
11257    });
11258  
11259    // Get the Discussion settings
11260    const pageComments = (0,external_wp_data_namespaceObject.useSelect)(select => {
11261      const {
11262        getSettings
11263      } = select(external_wp_blockEditor_namespaceObject.store);
11264      const {
11265        __experimentalDiscussionSettings
11266      } = getSettings();
11267      return __experimentalDiscussionSettings?.pageComments;
11268    }, []);
11269  
11270    // If paging comments is not enabled in the Discussion Settings then hide the pagination
11271    // controls. We don't want to remove them from the template so that when the user enables
11272    // paging comments, the controls will be visible.
11273    if (!pageComments) {
11274      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
11275        children: (0,external_wp_i18n_namespaceObject.__)('Comments Pagination block: paging comments is disabled in the Discussion Settings')
11276      });
11277    }
11278    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
11279      children: [hasNextPreviousBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
11280        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
11281          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
11282          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsPaginationArrowControls, {
11283            value: paginationArrow,
11284            onChange: value => {
11285              setAttributes({
11286                paginationArrow: value
11287              });
11288            }
11289          })
11290        })
11291      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
11292        ...innerBlocksProps
11293      })]
11294    });
11295  }
11296  
11297  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/save.js
11298  /**
11299   * WordPress dependencies
11300   */
11301  
11302  
11303  function comments_pagination_save_save() {
11304    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
11305  }
11306  
11307  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
11308  /**
11309   * WordPress dependencies
11310   */
11311  
11312  
11313  /**
11314   * Internal dependencies
11315   */
11316  
11317  const comments_pagination_metadata = {
11318    $schema: "https://schemas.wp.org/trunk/block.json",
11319    apiVersion: 3,
11320    name: "core/comments-pagination",
11321    title: "Comments Pagination",
11322    category: "theme",
11323    parent: ["core/comments"],
11324    allowedBlocks: ["core/comments-pagination-previous", "core/comments-pagination-numbers", "core/comments-pagination-next"],
11325    description: "Displays a paginated navigation to next/previous set of comments, when applicable.",
11326    textdomain: "default",
11327    attributes: {
11328      paginationArrow: {
11329        type: "string",
11330        "default": "none"
11331      }
11332    },
11333    providesContext: {
11334      "comments/paginationArrow": "paginationArrow"
11335    },
11336    supports: {
11337      align: true,
11338      reusable: false,
11339      html: false,
11340      color: {
11341        gradients: true,
11342        link: true,
11343        __experimentalDefaultControls: {
11344          background: true,
11345          text: true,
11346          link: true
11347        }
11348      },
11349      layout: {
11350        allowSwitching: false,
11351        allowInheriting: false,
11352        "default": {
11353          type: "flex"
11354        }
11355      },
11356      typography: {
11357        fontSize: true,
11358        lineHeight: true,
11359        __experimentalFontFamily: true,
11360        __experimentalFontWeight: true,
11361        __experimentalFontStyle: true,
11362        __experimentalTextTransform: true,
11363        __experimentalTextDecoration: true,
11364        __experimentalLetterSpacing: true,
11365        __experimentalDefaultControls: {
11366          fontSize: true
11367        }
11368      },
11369      interactivity: {
11370        clientNavigation: true
11371      }
11372    },
11373    editorStyle: "wp-block-comments-pagination-editor",
11374    style: "wp-block-comments-pagination"
11375  };
11376  
11377  
11378  const {
11379    name: comments_pagination_name
11380  } = comments_pagination_metadata;
11381  
11382  const comments_pagination_settings = {
11383    icon: query_pagination,
11384    edit: QueryPaginationEdit,
11385    save: comments_pagination_save_save
11386  };
11387  const comments_pagination_init = () => initBlock({
11388    name: comments_pagination_name,
11389    metadata: comments_pagination_metadata,
11390    settings: comments_pagination_settings
11391  });
11392  
11393  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-next.js
11394  /**
11395   * WordPress dependencies
11396   */
11397  
11398  
11399  const queryPaginationNext = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11400    xmlns: "http://www.w3.org/2000/svg",
11401    viewBox: "0 0 24 24",
11402    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11403      d: "M5 13.5h3v-3H5v3zm5 0h3v-3h-3v3zM17 9l-1 1 2 2-2 2 1 1 3-3-3-3z"
11404    })
11405  });
11406  /* harmony default export */ const query_pagination_next = (queryPaginationNext);
11407  
11408  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/edit.js
11409  /**
11410   * WordPress dependencies
11411   */
11412  
11413  
11414  
11415  
11416  const edit_arrowMap = {
11417    none: '',
11418    arrow: '→',
11419    chevron: '»'
11420  };
11421  function CommentsPaginationNextEdit({
11422    attributes: {
11423      label
11424    },
11425    setAttributes,
11426    context: {
11427      'comments/paginationArrow': paginationArrow
11428    }
11429  }) {
11430    const displayArrow = edit_arrowMap[paginationArrow];
11431    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
11432      href: "#comments-pagination-next-pseudo-link",
11433      onClick: event => event.preventDefault(),
11434      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
11435      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
11436        __experimentalVersion: 2,
11437        tagName: "span",
11438        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Newer comments page link'),
11439        placeholder: (0,external_wp_i18n_namespaceObject.__)('Newer Comments'),
11440        value: label,
11441        onChange: newLabel => setAttributes({
11442          label: newLabel
11443        })
11444      }), displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
11445        className: `wp-block-comments-pagination-next-arrow is-arrow-$paginationArrow}`,
11446        children: displayArrow
11447      })]
11448    });
11449  }
11450  
11451  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
11452  /**
11453   * WordPress dependencies
11454   */
11455  
11456  
11457  /**
11458   * Internal dependencies
11459   */
11460  
11461  const comments_pagination_next_metadata = {
11462    $schema: "https://schemas.wp.org/trunk/block.json",
11463    apiVersion: 3,
11464    name: "core/comments-pagination-next",
11465    title: "Comments Next Page",
11466    category: "theme",
11467    parent: ["core/comments-pagination"],
11468    description: "Displays the next comment's page link.",
11469    textdomain: "default",
11470    attributes: {
11471      label: {
11472        type: "string"
11473      }
11474    },
11475    usesContext: ["postId", "comments/paginationArrow"],
11476    supports: {
11477      reusable: false,
11478      html: false,
11479      color: {
11480        gradients: true,
11481        text: false,
11482        __experimentalDefaultControls: {
11483          background: true
11484        }
11485      },
11486      typography: {
11487        fontSize: true,
11488        lineHeight: true,
11489        __experimentalFontFamily: true,
11490        __experimentalFontWeight: true,
11491        __experimentalFontStyle: true,
11492        __experimentalTextTransform: true,
11493        __experimentalTextDecoration: true,
11494        __experimentalLetterSpacing: true,
11495        __experimentalDefaultControls: {
11496          fontSize: true
11497        }
11498      },
11499      interactivity: {
11500        clientNavigation: true
11501      }
11502    }
11503  };
11504  
11505  const {
11506    name: comments_pagination_next_name
11507  } = comments_pagination_next_metadata;
11508  
11509  const comments_pagination_next_settings = {
11510    icon: query_pagination_next,
11511    edit: CommentsPaginationNextEdit
11512  };
11513  const comments_pagination_next_init = () => initBlock({
11514    name: comments_pagination_next_name,
11515    metadata: comments_pagination_next_metadata,
11516    settings: comments_pagination_next_settings
11517  });
11518  
11519  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-numbers.js
11520  /**
11521   * WordPress dependencies
11522   */
11523  
11524  
11525  const queryPaginationNumbers = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11526    xmlns: "http://www.w3.org/2000/svg",
11527    viewBox: "0 0 24 24",
11528    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11529      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"
11530    })
11531  });
11532  /* harmony default export */ const query_pagination_numbers = (queryPaginationNumbers);
11533  
11534  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/edit.js
11535  /**
11536   * WordPress dependencies
11537   */
11538  
11539  
11540  
11541  const PaginationItem = ({
11542    content,
11543    tag: Tag = 'a',
11544    extraClass = ''
11545  }) => Tag === 'a' ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
11546    className: `page-numbers $extraClass}`,
11547    href: "#comments-pagination-numbers-pseudo-link",
11548    onClick: event => event.preventDefault(),
11549    children: content
11550  }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
11551    className: `page-numbers $extraClass}`,
11552    children: content
11553  });
11554  function CommentsPaginationNumbersEdit() {
11555    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
11556      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
11557      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11558        content: "1"
11559      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11560        content: "2"
11561      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11562        content: "3",
11563        tag: "span",
11564        extraClass: "current"
11565      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11566        content: "4"
11567      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11568        content: "5"
11569      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11570        content: "...",
11571        tag: "span",
11572        extraClass: "dots"
11573      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11574        content: "8"
11575      })]
11576    });
11577  }
11578  
11579  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
11580  /**
11581   * WordPress dependencies
11582   */
11583  
11584  
11585  /**
11586   * Internal dependencies
11587   */
11588  
11589  const comments_pagination_numbers_metadata = {
11590    $schema: "https://schemas.wp.org/trunk/block.json",
11591    apiVersion: 3,
11592    name: "core/comments-pagination-numbers",
11593    title: "Comments Page Numbers",
11594    category: "theme",
11595    parent: ["core/comments-pagination"],
11596    description: "Displays a list of page numbers for comments pagination.",
11597    textdomain: "default",
11598    usesContext: ["postId"],
11599    supports: {
11600      reusable: false,
11601      html: false,
11602      color: {
11603        gradients: true,
11604        text: false,
11605        __experimentalDefaultControls: {
11606          background: true
11607        }
11608      },
11609      typography: {
11610        fontSize: true,
11611        lineHeight: true,
11612        __experimentalFontFamily: true,
11613        __experimentalFontWeight: true,
11614        __experimentalFontStyle: true,
11615        __experimentalTextTransform: true,
11616        __experimentalTextDecoration: true,
11617        __experimentalLetterSpacing: true,
11618        __experimentalDefaultControls: {
11619          fontSize: true
11620        }
11621      },
11622      interactivity: {
11623        clientNavigation: true
11624      }
11625    }
11626  };
11627  
11628  const {
11629    name: comments_pagination_numbers_name
11630  } = comments_pagination_numbers_metadata;
11631  
11632  const comments_pagination_numbers_settings = {
11633    icon: query_pagination_numbers,
11634    edit: CommentsPaginationNumbersEdit
11635  };
11636  const comments_pagination_numbers_init = () => initBlock({
11637    name: comments_pagination_numbers_name,
11638    metadata: comments_pagination_numbers_metadata,
11639    settings: comments_pagination_numbers_settings
11640  });
11641  
11642  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/title.js
11643  /**
11644   * WordPress dependencies
11645   */
11646  
11647  
11648  const title = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11649    xmlns: "http://www.w3.org/2000/svg",
11650    viewBox: "0 0 24 24",
11651    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11652      d: "m4 5.5h2v6.5h1.5v-6.5h2v-1.5h-5.5zm16 10.5h-16v-1.5h16zm-7 4h-9v-1.5h9z"
11653    })
11654  });
11655  /* harmony default export */ const library_title = (title);
11656  
11657  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/edit.js
11658  /**
11659   * External dependencies
11660   */
11661  
11662  
11663  /**
11664   * WordPress dependencies
11665   */
11666  
11667  
11668  
11669  
11670  
11671  
11672  
11673  
11674  
11675  
11676  
11677  function comments_title_edit_Edit({
11678    attributes: {
11679      textAlign,
11680      showPostTitle,
11681      showCommentsCount,
11682      level,
11683      levelOptions
11684    },
11685    setAttributes,
11686    context: {
11687      postType,
11688      postId
11689    }
11690  }) {
11691    const TagName = 'h' + level;
11692    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
11693    const [rawTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
11694    const isSiteEditor = typeof postId === 'undefined';
11695    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
11696      className: dist_clsx({
11697        [`has-text-align-$textAlign}`]: textAlign
11698      })
11699    });
11700    const {
11701      threadCommentsDepth,
11702      threadComments,
11703      commentsPerPage,
11704      pageComments
11705    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
11706      const {
11707        getSettings
11708      } = select(external_wp_blockEditor_namespaceObject.store);
11709      return getSettings().__experimentalDiscussionSettings;
11710    });
11711    (0,external_wp_element_namespaceObject.useEffect)(() => {
11712      if (isSiteEditor) {
11713        // Match the number of comments that will be shown in the comment-template/edit.js placeholder
11714  
11715        const nestedCommentsNumber = threadComments ? Math.min(threadCommentsDepth, 3) - 1 : 0;
11716        const topLevelCommentsNumber = pageComments ? commentsPerPage : 3;
11717        const commentsNumber = parseInt(nestedCommentsNumber) + parseInt(topLevelCommentsNumber);
11718        setCommentsCount(Math.min(commentsNumber, 3));
11719        return;
11720      }
11721      const currentPostId = postId;
11722      external_wp_apiFetch_default()({
11723        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
11724          post: postId,
11725          _fields: 'id'
11726        }),
11727        method: 'HEAD',
11728        parse: false
11729      }).then(res => {
11730        // Stale requests will have the `currentPostId` of an older closure.
11731        if (currentPostId === postId) {
11732          setCommentsCount(parseInt(res.headers.get('X-WP-Total')));
11733        }
11734      }).catch(() => {
11735        setCommentsCount(0);
11736      });
11737    }, [postId]);
11738    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
11739      group: "block",
11740      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
11741        value: textAlign,
11742        onChange: newAlign => setAttributes({
11743          textAlign: newAlign
11744        })
11745      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
11746        value: level,
11747        options: levelOptions,
11748        onChange: newLevel => setAttributes({
11749          level: newLevel
11750        })
11751      })]
11752    });
11753    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
11754      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
11755        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
11756        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
11757          __nextHasNoMarginBottom: true,
11758          label: (0,external_wp_i18n_namespaceObject.__)('Show post title'),
11759          checked: showPostTitle,
11760          onChange: value => setAttributes({
11761            showPostTitle: value
11762          })
11763        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
11764          __nextHasNoMarginBottom: true,
11765          label: (0,external_wp_i18n_namespaceObject.__)('Show comments count'),
11766          checked: showCommentsCount,
11767          onChange: value => setAttributes({
11768            showCommentsCount: value
11769          })
11770        })]
11771      })
11772    });
11773    const postTitle = isSiteEditor ? (0,external_wp_i18n_namespaceObject.__)('“Post Title”') : `"$rawTitle}"`;
11774    let placeholder;
11775    if (showCommentsCount && commentsCount !== undefined) {
11776      if (showPostTitle) {
11777        if (commentsCount === 1) {
11778          /* translators: %s: Post title. */
11779          placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('One response to %s'), postTitle);
11780        } else {
11781          placeholder = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Number of comments, 2: Post title. */
11782          (0,external_wp_i18n_namespaceObject._n)('%1$s response to %2$s', '%1$s responses to %2$s', commentsCount), commentsCount, postTitle);
11783        }
11784      } else if (commentsCount === 1) {
11785        placeholder = (0,external_wp_i18n_namespaceObject.__)('One response');
11786      } else {
11787        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Number of comments. */
11788        (0,external_wp_i18n_namespaceObject._n)('%s response', '%s responses', commentsCount), commentsCount);
11789      }
11790    } else if (showPostTitle) {
11791      if (commentsCount === 1) {
11792        /* translators: %s: Post title. */
11793        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Response to %s'), postTitle);
11794      } else {
11795        /* translators: %s: Post title. */
11796        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Responses to %s'), postTitle);
11797      }
11798    } else if (commentsCount === 1) {
11799      placeholder = (0,external_wp_i18n_namespaceObject.__)('Response');
11800    } else {
11801      placeholder = (0,external_wp_i18n_namespaceObject.__)('Responses');
11802    }
11803    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
11804      children: [blockControls, inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
11805        ...blockProps,
11806        children: placeholder
11807      })]
11808    });
11809  }
11810  
11811  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/deprecated.js
11812  /**
11813   * Internal dependencies
11814   */
11815  const deprecated_metadata = {
11816    $schema: "https://schemas.wp.org/trunk/block.json",
11817    apiVersion: 3,
11818    name: "core/comments-title",
11819    title: "Comments Title",
11820    category: "theme",
11821    ancestor: ["core/comments"],
11822    description: "Displays a title with the number of comments.",
11823    textdomain: "default",
11824    usesContext: ["postId", "postType"],
11825    attributes: {
11826      textAlign: {
11827        type: "string"
11828      },
11829      showPostTitle: {
11830        type: "boolean",
11831        "default": true
11832      },
11833      showCommentsCount: {
11834        type: "boolean",
11835        "default": true
11836      },
11837      level: {
11838        type: "number",
11839        "default": 2
11840      },
11841      levelOptions: {
11842        type: "array"
11843      }
11844    },
11845    supports: {
11846      anchor: false,
11847      align: true,
11848      html: false,
11849      __experimentalBorder: {
11850        radius: true,
11851        color: true,
11852        width: true,
11853        style: true
11854      },
11855      color: {
11856        gradients: true,
11857        __experimentalDefaultControls: {
11858          background: true,
11859          text: true
11860        }
11861      },
11862      spacing: {
11863        margin: true,
11864        padding: true
11865      },
11866      typography: {
11867        fontSize: true,
11868        lineHeight: true,
11869        __experimentalFontFamily: true,
11870        __experimentalFontWeight: true,
11871        __experimentalFontStyle: true,
11872        __experimentalTextTransform: true,
11873        __experimentalTextDecoration: true,
11874        __experimentalLetterSpacing: true,
11875        __experimentalDefaultControls: {
11876          fontSize: true,
11877          __experimentalFontFamily: true,
11878          __experimentalFontStyle: true,
11879          __experimentalFontWeight: true
11880        }
11881      },
11882      interactivity: {
11883        clientNavigation: true
11884      }
11885    }
11886  };
11887  const {
11888    attributes,
11889    supports
11890  } = deprecated_metadata;
11891  /* harmony default export */ const comments_title_deprecated = ([{
11892    attributes: {
11893      ...attributes,
11894      singleCommentLabel: {
11895        type: 'string'
11896      },
11897      multipleCommentsLabel: {
11898        type: 'string'
11899      }
11900    },
11901    supports,
11902    migrate: oldAttributes => {
11903      const {
11904        singleCommentLabel,
11905        multipleCommentsLabel,
11906        ...newAttributes
11907      } = oldAttributes;
11908      return newAttributes;
11909    },
11910    isEligible: ({
11911      multipleCommentsLabel,
11912      singleCommentLabel
11913    }) => multipleCommentsLabel || singleCommentLabel,
11914    save: () => null
11915  }]);
11916  
11917  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
11918  /**
11919   * WordPress dependencies
11920   */
11921  
11922  
11923  /**
11924   * Internal dependencies
11925   */
11926  
11927  const comments_title_metadata = {
11928    $schema: "https://schemas.wp.org/trunk/block.json",
11929    apiVersion: 3,
11930    name: "core/comments-title",
11931    title: "Comments Title",
11932    category: "theme",
11933    ancestor: ["core/comments"],
11934    description: "Displays a title with the number of comments.",
11935    textdomain: "default",
11936    usesContext: ["postId", "postType"],
11937    attributes: {
11938      textAlign: {
11939        type: "string"
11940      },
11941      showPostTitle: {
11942        type: "boolean",
11943        "default": true
11944      },
11945      showCommentsCount: {
11946        type: "boolean",
11947        "default": true
11948      },
11949      level: {
11950        type: "number",
11951        "default": 2
11952      },
11953      levelOptions: {
11954        type: "array"
11955      }
11956    },
11957    supports: {
11958      anchor: false,
11959      align: true,
11960      html: false,
11961      __experimentalBorder: {
11962        radius: true,
11963        color: true,
11964        width: true,
11965        style: true
11966      },
11967      color: {
11968        gradients: true,
11969        __experimentalDefaultControls: {
11970          background: true,
11971          text: true
11972        }
11973      },
11974      spacing: {
11975        margin: true,
11976        padding: true
11977      },
11978      typography: {
11979        fontSize: true,
11980        lineHeight: true,
11981        __experimentalFontFamily: true,
11982        __experimentalFontWeight: true,
11983        __experimentalFontStyle: true,
11984        __experimentalTextTransform: true,
11985        __experimentalTextDecoration: true,
11986        __experimentalLetterSpacing: true,
11987        __experimentalDefaultControls: {
11988          fontSize: true,
11989          __experimentalFontFamily: true,
11990          __experimentalFontStyle: true,
11991          __experimentalFontWeight: true
11992        }
11993      },
11994      interactivity: {
11995        clientNavigation: true
11996      }
11997    }
11998  };
11999  
12000  
12001  const {
12002    name: comments_title_name
12003  } = comments_title_metadata;
12004  
12005  const comments_title_settings = {
12006    icon: library_title,
12007    edit: comments_title_edit_Edit,
12008    deprecated: comments_title_deprecated
12009  };
12010  const comments_title_init = () => initBlock({
12011    name: comments_title_name,
12012    metadata: comments_title_metadata,
12013    settings: comments_title_settings
12014  });
12015  
12016  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cover.js
12017  /**
12018   * WordPress dependencies
12019   */
12020  
12021  
12022  const cover = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
12023    xmlns: "http://www.w3.org/2000/svg",
12024    viewBox: "0 0 24 24",
12025    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
12026      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"
12027    })
12028  });
12029  /* harmony default export */ const library_cover = (cover);
12030  
12031  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/shared.js
12032  /**
12033   * WordPress dependencies
12034   */
12035  
12036  const POSITION_CLASSNAMES = {
12037    'top left': 'is-position-top-left',
12038    'top center': 'is-position-top-center',
12039    'top right': 'is-position-top-right',
12040    'center left': 'is-position-center-left',
12041    'center center': 'is-position-center-center',
12042    center: 'is-position-center-center',
12043    'center right': 'is-position-center-right',
12044    'bottom left': 'is-position-bottom-left',
12045    'bottom center': 'is-position-bottom-center',
12046    'bottom right': 'is-position-bottom-right'
12047  };
12048  const IMAGE_BACKGROUND_TYPE = 'image';
12049  const VIDEO_BACKGROUND_TYPE = 'video';
12050  const COVER_MIN_HEIGHT = 50;
12051  const COVER_MAX_HEIGHT = 1000;
12052  const COVER_DEFAULT_HEIGHT = 300;
12053  const DEFAULT_FOCAL_POINT = {
12054    x: 0.5,
12055    y: 0.5
12056  };
12057  const shared_ALLOWED_MEDIA_TYPES = ['image', 'video'];
12058  function mediaPosition({
12059    x,
12060    y
12061  } = DEFAULT_FOCAL_POINT) {
12062    return `$Math.round(x * 100)}% $Math.round(y * 100)}%`;
12063  }
12064  function dimRatioToClass(ratio) {
12065    return ratio === 50 || ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
12066  }
12067  function attributesFromMedia(media) {
12068    if (!media || !media.url) {
12069      return {
12070        url: undefined,
12071        id: undefined
12072      };
12073    }
12074    if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
12075      media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
12076    }
12077    let mediaType;
12078    // For media selections originated from a file upload.
12079    if (media.media_type) {
12080      if (media.media_type === IMAGE_BACKGROUND_TYPE) {
12081        mediaType = IMAGE_BACKGROUND_TYPE;
12082      } else {
12083        // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
12084        // Videos contain the media type of 'file' in the object returned from the rest api.
12085        mediaType = VIDEO_BACKGROUND_TYPE;
12086      }
12087    } else {
12088      // For media selections originated from existing files in the media library.
12089      if (media.type !== IMAGE_BACKGROUND_TYPE && media.type !== VIDEO_BACKGROUND_TYPE) {
12090        return;
12091      }
12092      mediaType = media.type;
12093    }
12094    return {
12095      url: media.url,
12096      id: media.id,
12097      alt: media?.alt,
12098      backgroundType: mediaType,
12099      ...(mediaType === VIDEO_BACKGROUND_TYPE ? {
12100        hasParallax: undefined
12101      } : {})
12102    };
12103  }
12104  
12105  /**
12106   * Checks of the contentPosition is the center (default) position.
12107   *
12108   * @param {string} contentPosition The current content position.
12109   * @return {boolean} Whether the contentPosition is center.
12110   */
12111  function isContentPositionCenter(contentPosition) {
12112    return !contentPosition || contentPosition === 'center center' || contentPosition === 'center';
12113  }
12114  
12115  /**
12116   * Retrieves the className for the current contentPosition.
12117   * The default position (center) will not have a className.
12118   *
12119   * @param {string} contentPosition The current content position.
12120   * @return {string} The className assigned to the contentPosition.
12121   */
12122  function getPositionClassName(contentPosition) {
12123    /*
12124     * Only render a className if the contentPosition is not center (the default).
12125     */
12126    if (isContentPositionCenter(contentPosition)) {
12127      return '';
12128    }
12129    return POSITION_CLASSNAMES[contentPosition];
12130  }
12131  
12132  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/deprecated.js
12133  /**
12134   * External dependencies
12135   */
12136  
12137  
12138  /**
12139   * WordPress dependencies
12140   */
12141  
12142  
12143  
12144  
12145  
12146  /**
12147   * Internal dependencies
12148   */
12149  
12150  
12151  
12152  function backgroundImageStyles(url) {
12153    return url ? {
12154      backgroundImage: `url($url})`
12155    } : {};
12156  }
12157  
12158  /**
12159   * Original function to determine the background opacity classname
12160   *
12161   * Used in deprecations: v1-7.
12162   *
12163   * @param {number} ratio ratio to use for opacity.
12164   * @return {string}       background opacity class   .
12165   */
12166  function dimRatioToClassV1(ratio) {
12167    return ratio === 0 || ratio === 50 || !ratio ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
12168  }
12169  function migrateDimRatio(attributes) {
12170    return {
12171      ...attributes,
12172      dimRatio: !attributes.url ? 100 : attributes.dimRatio
12173    };
12174  }
12175  function migrateTag(attributes) {
12176    if (!attributes.tagName) {
12177      attributes = {
12178        ...attributes,
12179        tagName: 'div'
12180      };
12181    }
12182    return {
12183      ...attributes
12184    };
12185  }
12186  const deprecated_blockAttributes = {
12187    url: {
12188      type: 'string'
12189    },
12190    id: {
12191      type: 'number'
12192    },
12193    hasParallax: {
12194      type: 'boolean',
12195      default: false
12196    },
12197    dimRatio: {
12198      type: 'number',
12199      default: 50
12200    },
12201    overlayColor: {
12202      type: 'string'
12203    },
12204    customOverlayColor: {
12205      type: 'string'
12206    },
12207    backgroundType: {
12208      type: 'string',
12209      default: 'image'
12210    },
12211    focalPoint: {
12212      type: 'object'
12213    }
12214  };
12215  const v8ToV11BlockAttributes = {
12216    url: {
12217      type: 'string'
12218    },
12219    id: {
12220      type: 'number'
12221    },
12222    alt: {
12223      type: 'string',
12224      source: 'attribute',
12225      selector: 'img',
12226      attribute: 'alt',
12227      default: ''
12228    },
12229    hasParallax: {
12230      type: 'boolean',
12231      default: false
12232    },
12233    isRepeated: {
12234      type: 'boolean',
12235      default: false
12236    },
12237    dimRatio: {
12238      type: 'number',
12239      default: 100
12240    },
12241    overlayColor: {
12242      type: 'string'
12243    },
12244    customOverlayColor: {
12245      type: 'string'
12246    },
12247    backgroundType: {
12248      type: 'string',
12249      default: 'image'
12250    },
12251    focalPoint: {
12252      type: 'object'
12253    },
12254    minHeight: {
12255      type: 'number'
12256    },
12257    minHeightUnit: {
12258      type: 'string'
12259    },
12260    gradient: {
12261      type: 'string'
12262    },
12263    customGradient: {
12264      type: 'string'
12265    },
12266    contentPosition: {
12267      type: 'string'
12268    },
12269    isDark: {
12270      type: 'boolean',
12271      default: true
12272    },
12273    allowedBlocks: {
12274      type: 'array'
12275    },
12276    templateLock: {
12277      type: ['string', 'boolean'],
12278      enum: ['all', 'insert', false]
12279    }
12280  };
12281  const v12BlockAttributes = {
12282    ...v8ToV11BlockAttributes,
12283    useFeaturedImage: {
12284      type: 'boolean',
12285      default: false
12286    },
12287    tagName: {
12288      type: 'string',
12289      default: 'div'
12290    }
12291  };
12292  const v7toV11BlockSupports = {
12293    anchor: true,
12294    align: true,
12295    html: false,
12296    spacing: {
12297      padding: true,
12298      __experimentalDefaultControls: {
12299        padding: true
12300      }
12301    },
12302    color: {
12303      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
12304      text: false,
12305      background: false
12306    }
12307  };
12308  const v12BlockSupports = {
12309    ...v7toV11BlockSupports,
12310    spacing: {
12311      padding: true,
12312      margin: ['top', 'bottom'],
12313      blockGap: true,
12314      __experimentalDefaultControls: {
12315        padding: true,
12316        blockGap: true
12317      }
12318    },
12319    __experimentalBorder: {
12320      color: true,
12321      radius: true,
12322      style: true,
12323      width: true,
12324      __experimentalDefaultControls: {
12325        color: true,
12326        radius: true,
12327        style: true,
12328        width: true
12329      }
12330    },
12331    color: {
12332      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
12333      heading: true,
12334      text: true,
12335      background: false,
12336      __experimentalSkipSerialization: ['gradients'],
12337      enableContrastChecker: false
12338    },
12339    typography: {
12340      fontSize: true,
12341      lineHeight: true,
12342      __experimentalFontFamily: true,
12343      __experimentalFontWeight: true,
12344      __experimentalFontStyle: true,
12345      __experimentalTextTransform: true,
12346      __experimentalTextDecoration: true,
12347      __experimentalLetterSpacing: true,
12348      __experimentalDefaultControls: {
12349        fontSize: true
12350      }
12351    },
12352    layout: {
12353      allowJustification: false
12354    }
12355  };
12356  
12357  // Deprecation for blocks that does not have the aria-label when the image background is fixed or repeated.
12358  const v13 = {
12359    attributes: v12BlockAttributes,
12360    supports: v12BlockSupports,
12361    save({
12362      attributes
12363    }) {
12364      const {
12365        backgroundType,
12366        gradient,
12367        contentPosition,
12368        customGradient,
12369        customOverlayColor,
12370        dimRatio,
12371        focalPoint,
12372        useFeaturedImage,
12373        hasParallax,
12374        isDark,
12375        isRepeated,
12376        overlayColor,
12377        url,
12378        alt,
12379        id,
12380        minHeight: minHeightProp,
12381        minHeightUnit,
12382        tagName: Tag
12383      } = attributes;
12384      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12385      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12386      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12387      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12388      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12389      const isImgElement = !(hasParallax || isRepeated);
12390      const style = {
12391        minHeight: minHeight || undefined
12392      };
12393      const bgStyle = {
12394        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12395        background: customGradient ? customGradient : undefined
12396      };
12397      const objectPosition =
12398      // prettier-ignore
12399      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
12400      const backgroundImage = url ? `url($url})` : undefined;
12401      const backgroundPosition = mediaPosition(focalPoint);
12402      const classes = dist_clsx({
12403        'is-light': !isDark,
12404        'has-parallax': hasParallax,
12405        'is-repeated': isRepeated,
12406        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12407      }, getPositionClassName(contentPosition));
12408      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
12409        'has-parallax': hasParallax,
12410        'is-repeated': isRepeated
12411      });
12412      const gradientValue = gradient || customGradient;
12413      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
12414        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12415          className: classes,
12416          style
12417        }),
12418        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12419          "aria-hidden": "true",
12420          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12421            'has-background-dim': dimRatio !== undefined,
12422            // For backwards compatibility. Former versions of the Cover Block applied
12423            // `.wp-block-cover__gradient-background` in the presence of
12424            // media, a gradient and a dim.
12425            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12426            'has-background-gradient': gradientValue,
12427            [gradientClass]: gradientClass
12428          }),
12429          style: bgStyle
12430        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12431          className: imgClasses,
12432          alt: alt,
12433          src: url,
12434          style: {
12435            objectPosition
12436          },
12437          "data-object-fit": "cover",
12438          "data-object-position": objectPosition
12439        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12440          role: "img",
12441          className: imgClasses,
12442          style: {
12443            backgroundPosition,
12444            backgroundImage
12445          }
12446        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12447          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12448          autoPlay: true,
12449          muted: true,
12450          loop: true,
12451          playsInline: true,
12452          src: url,
12453          style: {
12454            objectPosition
12455          },
12456          "data-object-fit": "cover",
12457          "data-object-position": objectPosition
12458        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12459          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12460            className: 'wp-block-cover__inner-container'
12461          })
12462        })]
12463      });
12464    }
12465  };
12466  
12467  // Deprecation for blocks to prevent auto overlay color from overriding previously set values.
12468  const v12 = {
12469    attributes: v12BlockAttributes,
12470    supports: v12BlockSupports,
12471    isEligible(attributes) {
12472      return (attributes.customOverlayColor !== undefined || attributes.overlayColor !== undefined) && attributes.isUserOverlayColor === undefined;
12473    },
12474    migrate(attributes) {
12475      return {
12476        ...attributes,
12477        isUserOverlayColor: true
12478      };
12479    },
12480    save({
12481      attributes
12482    }) {
12483      const {
12484        backgroundType,
12485        gradient,
12486        contentPosition,
12487        customGradient,
12488        customOverlayColor,
12489        dimRatio,
12490        focalPoint,
12491        useFeaturedImage,
12492        hasParallax,
12493        isDark,
12494        isRepeated,
12495        overlayColor,
12496        url,
12497        alt,
12498        id,
12499        minHeight: minHeightProp,
12500        minHeightUnit,
12501        tagName: Tag
12502      } = attributes;
12503      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12504      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12505      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12506      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12507      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12508      const isImgElement = !(hasParallax || isRepeated);
12509      const style = {
12510        minHeight: minHeight || undefined
12511      };
12512      const bgStyle = {
12513        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12514        background: customGradient ? customGradient : undefined
12515      };
12516      const objectPosition =
12517      // prettier-ignore
12518      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
12519      const backgroundImage = url ? `url($url})` : undefined;
12520      const backgroundPosition = mediaPosition(focalPoint);
12521      const classes = dist_clsx({
12522        'is-light': !isDark,
12523        'has-parallax': hasParallax,
12524        'is-repeated': isRepeated,
12525        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12526      }, getPositionClassName(contentPosition));
12527      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
12528        'has-parallax': hasParallax,
12529        'is-repeated': isRepeated
12530      });
12531      const gradientValue = gradient || customGradient;
12532      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
12533        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12534          className: classes,
12535          style
12536        }),
12537        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12538          "aria-hidden": "true",
12539          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12540            'has-background-dim': dimRatio !== undefined,
12541            // For backwards compatibility. Former versions of the Cover Block applied
12542            // `.wp-block-cover__gradient-background` in the presence of
12543            // media, a gradient and a dim.
12544            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12545            'has-background-gradient': gradientValue,
12546            [gradientClass]: gradientClass
12547          }),
12548          style: bgStyle
12549        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12550          className: imgClasses,
12551          alt: alt,
12552          src: url,
12553          style: {
12554            objectPosition
12555          },
12556          "data-object-fit": "cover",
12557          "data-object-position": objectPosition
12558        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12559          role: "img",
12560          className: imgClasses,
12561          style: {
12562            backgroundPosition,
12563            backgroundImage
12564          }
12565        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12566          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12567          autoPlay: true,
12568          muted: true,
12569          loop: true,
12570          playsInline: true,
12571          src: url,
12572          style: {
12573            objectPosition
12574          },
12575          "data-object-fit": "cover",
12576          "data-object-position": objectPosition
12577        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12578          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12579            className: 'wp-block-cover__inner-container'
12580          })
12581        })]
12582      });
12583    }
12584  };
12585  
12586  // Deprecation for blocks that does not have a HTML tag option.
12587  const deprecated_v11 = {
12588    attributes: v8ToV11BlockAttributes,
12589    supports: v7toV11BlockSupports,
12590    save({
12591      attributes
12592    }) {
12593      const {
12594        backgroundType,
12595        gradient,
12596        contentPosition,
12597        customGradient,
12598        customOverlayColor,
12599        dimRatio,
12600        focalPoint,
12601        useFeaturedImage,
12602        hasParallax,
12603        isDark,
12604        isRepeated,
12605        overlayColor,
12606        url,
12607        alt,
12608        id,
12609        minHeight: minHeightProp,
12610        minHeightUnit
12611      } = attributes;
12612      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12613      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12614      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12615      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12616      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12617      const isImgElement = !(hasParallax || isRepeated);
12618      const style = {
12619        minHeight: minHeight || undefined
12620      };
12621      const bgStyle = {
12622        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12623        background: customGradient ? customGradient : undefined
12624      };
12625      const objectPosition =
12626      // prettier-ignore
12627      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
12628      const backgroundImage = url ? `url($url})` : undefined;
12629      const backgroundPosition = mediaPosition(focalPoint);
12630      const classes = dist_clsx({
12631        'is-light': !isDark,
12632        'has-parallax': hasParallax,
12633        'is-repeated': isRepeated,
12634        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12635      }, getPositionClassName(contentPosition));
12636      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
12637        'has-parallax': hasParallax,
12638        'is-repeated': isRepeated
12639      });
12640      const gradientValue = gradient || customGradient;
12641      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
12642        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12643          className: classes,
12644          style
12645        }),
12646        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12647          "aria-hidden": "true",
12648          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12649            'has-background-dim': dimRatio !== undefined,
12650            // For backwards compatibility. Former versions of the Cover Block applied
12651            // `.wp-block-cover__gradient-background` in the presence of
12652            // media, a gradient and a dim.
12653            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12654            'has-background-gradient': gradientValue,
12655            [gradientClass]: gradientClass
12656          }),
12657          style: bgStyle
12658        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12659          className: imgClasses,
12660          alt: alt,
12661          src: url,
12662          style: {
12663            objectPosition
12664          },
12665          "data-object-fit": "cover",
12666          "data-object-position": objectPosition
12667        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12668          role: "img",
12669          className: imgClasses,
12670          style: {
12671            backgroundPosition,
12672            backgroundImage
12673          }
12674        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12675          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12676          autoPlay: true,
12677          muted: true,
12678          loop: true,
12679          playsInline: true,
12680          src: url,
12681          style: {
12682            objectPosition
12683          },
12684          "data-object-fit": "cover",
12685          "data-object-position": objectPosition
12686        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12687          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12688            className: 'wp-block-cover__inner-container'
12689          })
12690        })]
12691      });
12692    },
12693    migrate: migrateTag
12694  };
12695  
12696  // Deprecation for blocks that renders fixed background as backgroud from the main block container.
12697  const deprecated_v10 = {
12698    attributes: v8ToV11BlockAttributes,
12699    supports: v7toV11BlockSupports,
12700    save({
12701      attributes
12702    }) {
12703      const {
12704        backgroundType,
12705        gradient,
12706        contentPosition,
12707        customGradient,
12708        customOverlayColor,
12709        dimRatio,
12710        focalPoint,
12711        useFeaturedImage,
12712        hasParallax,
12713        isDark,
12714        isRepeated,
12715        overlayColor,
12716        url,
12717        alt,
12718        id,
12719        minHeight: minHeightProp,
12720        minHeightUnit
12721      } = attributes;
12722      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12723      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12724      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12725      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12726      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12727      const isImgElement = !(hasParallax || isRepeated);
12728      const style = {
12729        ...(isImageBackground && !isImgElement && !useFeaturedImage ? backgroundImageStyles(url) : {}),
12730        minHeight: minHeight || undefined
12731      };
12732      const bgStyle = {
12733        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12734        background: customGradient ? customGradient : undefined
12735      };
12736      const objectPosition =
12737      // prettier-ignore
12738      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
12739      const classes = dist_clsx({
12740        'is-light': !isDark,
12741        'has-parallax': hasParallax,
12742        'is-repeated': isRepeated,
12743        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12744      }, getPositionClassName(contentPosition));
12745      const gradientValue = gradient || customGradient;
12746      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
12747        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12748          className: classes,
12749          style
12750        }),
12751        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12752          "aria-hidden": "true",
12753          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12754            'has-background-dim': dimRatio !== undefined,
12755            // For backwards compatibility. Former versions of the Cover Block applied
12756            // `.wp-block-cover__gradient-background` in the presence of
12757            // media, a gradient and a dim.
12758            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12759            'has-background-gradient': gradientValue,
12760            [gradientClass]: gradientClass
12761          }),
12762          style: bgStyle
12763        }), !useFeaturedImage && isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12764          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
12765          alt: alt,
12766          src: url,
12767          style: {
12768            objectPosition
12769          },
12770          "data-object-fit": "cover",
12771          "data-object-position": objectPosition
12772        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12773          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12774          autoPlay: true,
12775          muted: true,
12776          loop: true,
12777          playsInline: true,
12778          src: url,
12779          style: {
12780            objectPosition
12781          },
12782          "data-object-fit": "cover",
12783          "data-object-position": objectPosition
12784        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12785          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12786            className: 'wp-block-cover__inner-container'
12787          })
12788        })]
12789      });
12790    },
12791    migrate: migrateTag
12792  };
12793  
12794  // Deprecation for blocks with `minHeightUnit` set but no `minHeight`.
12795  const v9 = {
12796    attributes: v8ToV11BlockAttributes,
12797    supports: v7toV11BlockSupports,
12798    save({
12799      attributes
12800    }) {
12801      const {
12802        backgroundType,
12803        gradient,
12804        contentPosition,
12805        customGradient,
12806        customOverlayColor,
12807        dimRatio,
12808        focalPoint,
12809        hasParallax,
12810        isDark,
12811        isRepeated,
12812        overlayColor,
12813        url,
12814        alt,
12815        id,
12816        minHeight: minHeightProp,
12817        minHeightUnit
12818      } = attributes;
12819      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12820      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12821      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12822      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12823      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12824      const isImgElement = !(hasParallax || isRepeated);
12825      const style = {
12826        ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
12827        minHeight: minHeight || undefined
12828      };
12829      const bgStyle = {
12830        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12831        background: customGradient ? customGradient : undefined
12832      };
12833      const objectPosition =
12834      // prettier-ignore
12835      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
12836      const classes = dist_clsx({
12837        'is-light': !isDark,
12838        'has-parallax': hasParallax,
12839        'is-repeated': isRepeated,
12840        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12841      }, getPositionClassName(contentPosition));
12842      const gradientValue = gradient || customGradient;
12843      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
12844        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12845          className: classes,
12846          style
12847        }),
12848        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12849          "aria-hidden": "true",
12850          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12851            'has-background-dim': dimRatio !== undefined,
12852            // For backwards compatibility. Former versions of the Cover Block applied
12853            // `.wp-block-cover__gradient-background` in the presence of
12854            // media, a gradient and a dim.
12855            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12856            'has-background-gradient': gradientValue,
12857            [gradientClass]: gradientClass
12858          }),
12859          style: bgStyle
12860        }), isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12861          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
12862          alt: alt,
12863          src: url,
12864          style: {
12865            objectPosition
12866          },
12867          "data-object-fit": "cover",
12868          "data-object-position": objectPosition
12869        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12870          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12871          autoPlay: true,
12872          muted: true,
12873          loop: true,
12874          playsInline: true,
12875          src: url,
12876          style: {
12877            objectPosition
12878          },
12879          "data-object-fit": "cover",
12880          "data-object-position": objectPosition
12881        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12882          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12883            className: 'wp-block-cover__inner-container'
12884          })
12885        })]
12886      });
12887    },
12888    migrate: migrateTag
12889  };
12890  
12891  // v8: deprecated to remove duplicated gradient classes and swap `wp-block-cover__gradient-background` for `wp-block-cover__background`.
12892  const v8 = {
12893    attributes: v8ToV11BlockAttributes,
12894    supports: v7toV11BlockSupports,
12895    save({
12896      attributes
12897    }) {
12898      const {
12899        backgroundType,
12900        gradient,
12901        contentPosition,
12902        customGradient,
12903        customOverlayColor,
12904        dimRatio,
12905        focalPoint,
12906        hasParallax,
12907        isDark,
12908        isRepeated,
12909        overlayColor,
12910        url,
12911        alt,
12912        id,
12913        minHeight: minHeightProp,
12914        minHeightUnit
12915      } = attributes;
12916      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12917      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12918      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12919      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12920      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12921      const isImgElement = !(hasParallax || isRepeated);
12922      const style = {
12923        ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
12924        minHeight: minHeight || undefined
12925      };
12926      const bgStyle = {
12927        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12928        background: customGradient ? customGradient : undefined
12929      };
12930      const objectPosition =
12931      // prettier-ignore
12932      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
12933      const classes = dist_clsx({
12934        'is-light': !isDark,
12935        'has-parallax': hasParallax,
12936        'is-repeated': isRepeated,
12937        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12938      }, getPositionClassName(contentPosition));
12939      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
12940        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12941          className: classes,
12942          style
12943        }),
12944        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12945          "aria-hidden": "true",
12946          className: dist_clsx(overlayColorClass, dimRatioToClass(dimRatio), 'wp-block-cover__gradient-background', gradientClass, {
12947            'has-background-dim': dimRatio !== undefined,
12948            'has-background-gradient': gradient || customGradient,
12949            [gradientClass]: !url && gradientClass
12950          }),
12951          style: bgStyle
12952        }), isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12953          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
12954          alt: alt,
12955          src: url,
12956          style: {
12957            objectPosition
12958          },
12959          "data-object-fit": "cover",
12960          "data-object-position": objectPosition
12961        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12962          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12963          autoPlay: true,
12964          muted: true,
12965          loop: true,
12966          playsInline: true,
12967          src: url,
12968          style: {
12969            objectPosition
12970          },
12971          "data-object-fit": "cover",
12972          "data-object-position": objectPosition
12973        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12974          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12975            className: 'wp-block-cover__inner-container'
12976          })
12977        })]
12978      });
12979    },
12980    migrate: migrateTag
12981  };
12982  const v7 = {
12983    attributes: {
12984      ...deprecated_blockAttributes,
12985      isRepeated: {
12986        type: 'boolean',
12987        default: false
12988      },
12989      minHeight: {
12990        type: 'number'
12991      },
12992      minHeightUnit: {
12993        type: 'string'
12994      },
12995      gradient: {
12996        type: 'string'
12997      },
12998      customGradient: {
12999        type: 'string'
13000      },
13001      contentPosition: {
13002        type: 'string'
13003      },
13004      alt: {
13005        type: 'string',
13006        source: 'attribute',
13007        selector: 'img',
13008        attribute: 'alt',
13009        default: ''
13010      }
13011    },
13012    supports: v7toV11BlockSupports,
13013    save({
13014      attributes
13015    }) {
13016      const {
13017        backgroundType,
13018        gradient,
13019        contentPosition,
13020        customGradient,
13021        customOverlayColor,
13022        dimRatio,
13023        focalPoint,
13024        hasParallax,
13025        isRepeated,
13026        overlayColor,
13027        url,
13028        alt,
13029        id,
13030        minHeight: minHeightProp,
13031        minHeightUnit
13032      } = attributes;
13033      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13034      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13035      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13036      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13037      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13038      const isImgElement = !(hasParallax || isRepeated);
13039      const style = {
13040        ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
13041        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13042        background: customGradient && !url ? customGradient : undefined,
13043        minHeight: minHeight || undefined
13044      };
13045      const objectPosition =
13046      // prettier-ignore
13047      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
13048      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13049        'has-background-dim': dimRatio !== 0,
13050        'has-parallax': hasParallax,
13051        'is-repeated': isRepeated,
13052        'has-background-gradient': gradient || customGradient,
13053        [gradientClass]: !url && gradientClass,
13054        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13055      }, getPositionClassName(contentPosition));
13056      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13057        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13058          className: classes,
13059          style
13060        }),
13061        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13062          "aria-hidden": "true",
13063          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13064          style: customGradient ? {
13065            background: customGradient
13066          } : undefined
13067        }), isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13068          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
13069          alt: alt,
13070          src: url,
13071          style: {
13072            objectPosition
13073          },
13074          "data-object-fit": "cover",
13075          "data-object-position": objectPosition
13076        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13077          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13078          autoPlay: true,
13079          muted: true,
13080          loop: true,
13081          playsInline: true,
13082          src: url,
13083          style: {
13084            objectPosition
13085          },
13086          "data-object-fit": "cover",
13087          "data-object-position": objectPosition
13088        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13089          className: "wp-block-cover__inner-container",
13090          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13091        })]
13092      });
13093    },
13094    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13095  };
13096  const v6 = {
13097    attributes: {
13098      ...deprecated_blockAttributes,
13099      isRepeated: {
13100        type: 'boolean',
13101        default: false
13102      },
13103      minHeight: {
13104        type: 'number'
13105      },
13106      minHeightUnit: {
13107        type: 'string'
13108      },
13109      gradient: {
13110        type: 'string'
13111      },
13112      customGradient: {
13113        type: 'string'
13114      },
13115      contentPosition: {
13116        type: 'string'
13117      }
13118    },
13119    supports: {
13120      align: true
13121    },
13122    save({
13123      attributes
13124    }) {
13125      const {
13126        backgroundType,
13127        gradient,
13128        contentPosition,
13129        customGradient,
13130        customOverlayColor,
13131        dimRatio,
13132        focalPoint,
13133        hasParallax,
13134        isRepeated,
13135        overlayColor,
13136        url,
13137        minHeight: minHeightProp,
13138        minHeightUnit
13139      } = attributes;
13140      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13141      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13142      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13143      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13144      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13145      const style = isImageBackground ? backgroundImageStyles(url) : {};
13146      const videoStyle = {};
13147      if (!overlayColorClass) {
13148        style.backgroundColor = customOverlayColor;
13149      }
13150      if (customGradient && !url) {
13151        style.background = customGradient;
13152      }
13153      style.minHeight = minHeight || undefined;
13154      let positionValue;
13155      if (focalPoint) {
13156        positionValue = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`;
13157        if (isImageBackground && !hasParallax) {
13158          style.backgroundPosition = positionValue;
13159        }
13160        if (isVideoBackground) {
13161          videoStyle.objectPosition = positionValue;
13162        }
13163      }
13164      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13165        'has-background-dim': dimRatio !== 0,
13166        'has-parallax': hasParallax,
13167        'is-repeated': isRepeated,
13168        'has-background-gradient': gradient || customGradient,
13169        [gradientClass]: !url && gradientClass,
13170        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13171      }, getPositionClassName(contentPosition));
13172      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13173        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13174          className: classes,
13175          style
13176        }),
13177        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13178          "aria-hidden": "true",
13179          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13180          style: customGradient ? {
13181            background: customGradient
13182          } : undefined
13183        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13184          className: "wp-block-cover__video-background",
13185          autoPlay: true,
13186          muted: true,
13187          loop: true,
13188          playsInline: true,
13189          src: url,
13190          style: videoStyle
13191        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13192          className: "wp-block-cover__inner-container",
13193          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13194        })]
13195      });
13196    },
13197    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13198  };
13199  const v5 = {
13200    attributes: {
13201      ...deprecated_blockAttributes,
13202      minHeight: {
13203        type: 'number'
13204      },
13205      gradient: {
13206        type: 'string'
13207      },
13208      customGradient: {
13209        type: 'string'
13210      }
13211    },
13212    supports: {
13213      align: true
13214    },
13215    save({
13216      attributes
13217    }) {
13218      const {
13219        backgroundType,
13220        gradient,
13221        customGradient,
13222        customOverlayColor,
13223        dimRatio,
13224        focalPoint,
13225        hasParallax,
13226        overlayColor,
13227        url,
13228        minHeight
13229      } = attributes;
13230      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13231      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13232      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
13233      if (!overlayColorClass) {
13234        style.backgroundColor = customOverlayColor;
13235      }
13236      if (focalPoint && !hasParallax) {
13237        style.backgroundPosition = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`;
13238      }
13239      if (customGradient && !url) {
13240        style.background = customGradient;
13241      }
13242      style.minHeight = minHeight || undefined;
13243      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13244        'has-background-dim': dimRatio !== 0,
13245        'has-parallax': hasParallax,
13246        'has-background-gradient': customGradient,
13247        [gradientClass]: !url && gradientClass
13248      });
13249      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13250        className: classes,
13251        style: style,
13252        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13253          "aria-hidden": "true",
13254          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13255          style: customGradient ? {
13256            background: customGradient
13257          } : undefined
13258        }), VIDEO_BACKGROUND_TYPE === backgroundType && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13259          className: "wp-block-cover__video-background",
13260          autoPlay: true,
13261          muted: true,
13262          loop: true,
13263          src: url
13264        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13265          className: "wp-block-cover__inner-container",
13266          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13267        })]
13268      });
13269    },
13270    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13271  };
13272  const v4 = {
13273    attributes: {
13274      ...deprecated_blockAttributes,
13275      minHeight: {
13276        type: 'number'
13277      },
13278      gradient: {
13279        type: 'string'
13280      },
13281      customGradient: {
13282        type: 'string'
13283      }
13284    },
13285    supports: {
13286      align: true
13287    },
13288    save({
13289      attributes
13290    }) {
13291      const {
13292        backgroundType,
13293        gradient,
13294        customGradient,
13295        customOverlayColor,
13296        dimRatio,
13297        focalPoint,
13298        hasParallax,
13299        overlayColor,
13300        url,
13301        minHeight
13302      } = attributes;
13303      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13304      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13305      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
13306      if (!overlayColorClass) {
13307        style.backgroundColor = customOverlayColor;
13308      }
13309      if (focalPoint && !hasParallax) {
13310        style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`;
13311      }
13312      if (customGradient && !url) {
13313        style.background = customGradient;
13314      }
13315      style.minHeight = minHeight || undefined;
13316      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13317        'has-background-dim': dimRatio !== 0,
13318        'has-parallax': hasParallax,
13319        'has-background-gradient': customGradient,
13320        [gradientClass]: !url && gradientClass
13321      });
13322      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13323        className: classes,
13324        style: style,
13325        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13326          "aria-hidden": "true",
13327          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13328          style: customGradient ? {
13329            background: customGradient
13330          } : undefined
13331        }), VIDEO_BACKGROUND_TYPE === backgroundType && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13332          className: "wp-block-cover__video-background",
13333          autoPlay: true,
13334          muted: true,
13335          loop: true,
13336          src: url
13337        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13338          className: "wp-block-cover__inner-container",
13339          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13340        })]
13341      });
13342    },
13343    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13344  };
13345  const v3 = {
13346    attributes: {
13347      ...deprecated_blockAttributes,
13348      title: {
13349        type: 'string',
13350        source: 'html',
13351        selector: 'p'
13352      },
13353      contentAlign: {
13354        type: 'string',
13355        default: 'center'
13356      }
13357    },
13358    supports: {
13359      align: true
13360    },
13361    save({
13362      attributes
13363    }) {
13364      const {
13365        backgroundType,
13366        contentAlign,
13367        customOverlayColor,
13368        dimRatio,
13369        focalPoint,
13370        hasParallax,
13371        overlayColor,
13372        title,
13373        url
13374      } = attributes;
13375      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13376      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
13377      if (!overlayColorClass) {
13378        style.backgroundColor = customOverlayColor;
13379      }
13380      if (focalPoint && !hasParallax) {
13381        style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`;
13382      }
13383      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13384        'has-background-dim': dimRatio !== 0,
13385        'has-parallax': hasParallax,
13386        [`has-$contentAlign}-content`]: contentAlign !== 'center'
13387      });
13388      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13389        className: classes,
13390        style: style,
13391        children: [VIDEO_BACKGROUND_TYPE === backgroundType && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13392          className: "wp-block-cover__video-background",
13393          autoPlay: true,
13394          muted: true,
13395          loop: true,
13396          src: url
13397        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13398          tagName: "p",
13399          className: "wp-block-cover-text",
13400          value: title
13401        })]
13402      });
13403    },
13404    migrate(attributes) {
13405      const newAttribs = {
13406        ...attributes,
13407        dimRatio: !attributes.url ? 100 : attributes.dimRatio,
13408        tagName: !attributes.tagName ? 'div' : attributes.tagName
13409      };
13410      const {
13411        title,
13412        contentAlign,
13413        ...restAttributes
13414      } = newAttribs;
13415      return [restAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
13416        content: attributes.title,
13417        align: attributes.contentAlign,
13418        fontSize: 'large',
13419        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
13420      })]];
13421    }
13422  };
13423  const v2 = {
13424    attributes: {
13425      ...deprecated_blockAttributes,
13426      title: {
13427        type: 'string',
13428        source: 'html',
13429        selector: 'p'
13430      },
13431      contentAlign: {
13432        type: 'string',
13433        default: 'center'
13434      },
13435      align: {
13436        type: 'string'
13437      }
13438    },
13439    supports: {
13440      className: false
13441    },
13442    save({
13443      attributes
13444    }) {
13445      const {
13446        url,
13447        title,
13448        hasParallax,
13449        dimRatio,
13450        align,
13451        contentAlign,
13452        overlayColor,
13453        customOverlayColor
13454      } = attributes;
13455      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13456      const style = backgroundImageStyles(url);
13457      if (!overlayColorClass) {
13458        style.backgroundColor = customOverlayColor;
13459      }
13460      const classes = dist_clsx('wp-block-cover-image', dimRatioToClassV1(dimRatio), overlayColorClass, {
13461        'has-background-dim': dimRatio !== 0,
13462        'has-parallax': hasParallax,
13463        [`has-$contentAlign}-content`]: contentAlign !== 'center'
13464      }, align ? `align$align}` : null);
13465      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13466        className: classes,
13467        style: style,
13468        children: !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13469          tagName: "p",
13470          className: "wp-block-cover-image-text",
13471          value: title
13472        })
13473      });
13474    },
13475    migrate(attributes) {
13476      const newAttribs = {
13477        ...attributes,
13478        dimRatio: !attributes.url ? 100 : attributes.dimRatio,
13479        tagName: !attributes.tagName ? 'div' : attributes.tagName
13480      };
13481      const {
13482        title,
13483        contentAlign,
13484        align,
13485        ...restAttributes
13486      } = newAttribs;
13487      return [restAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
13488        content: attributes.title,
13489        align: attributes.contentAlign,
13490        fontSize: 'large',
13491        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
13492      })]];
13493    }
13494  };
13495  const cover_deprecated_v1 = {
13496    attributes: {
13497      ...deprecated_blockAttributes,
13498      title: {
13499        type: 'string',
13500        source: 'html',
13501        selector: 'h2'
13502      },
13503      align: {
13504        type: 'string'
13505      },
13506      contentAlign: {
13507        type: 'string',
13508        default: 'center'
13509      }
13510    },
13511    supports: {
13512      className: false
13513    },
13514    save({
13515      attributes
13516    }) {
13517      const {
13518        url,
13519        title,
13520        hasParallax,
13521        dimRatio,
13522        align
13523      } = attributes;
13524      const style = backgroundImageStyles(url);
13525      const classes = dist_clsx('wp-block-cover-image', dimRatioToClassV1(dimRatio), {
13526        'has-background-dim': dimRatio !== 0,
13527        'has-parallax': hasParallax
13528      }, align ? `align$align}` : null);
13529      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("section", {
13530        className: classes,
13531        style: style,
13532        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13533          tagName: "h2",
13534          value: title
13535        })
13536      });
13537    },
13538    migrate(attributes) {
13539      const newAttribs = {
13540        ...attributes,
13541        dimRatio: !attributes.url ? 100 : attributes.dimRatio,
13542        tagName: !attributes.tagName ? 'div' : attributes.tagName
13543      };
13544      const {
13545        title,
13546        contentAlign,
13547        align,
13548        ...restAttributes
13549      } = newAttribs;
13550      return [restAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
13551        content: attributes.title,
13552        align: attributes.contentAlign,
13553        fontSize: 'large',
13554        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
13555      })]];
13556    }
13557  };
13558  /* harmony default export */ const cover_deprecated = ([v13, v12, deprecated_v11, deprecated_v10, v9, v8, v7, v6, v5, v4, v3, v2, cover_deprecated_v1]);
13559  
13560  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit/inspector-controls.js
13561  /**
13562   * WordPress dependencies
13563   */
13564  
13565  
13566  
13567  
13568  
13569  
13570  /**
13571   * Internal dependencies
13572   */
13573  
13574  
13575  
13576  
13577  
13578  const {
13579    cleanEmptyObject: inspector_controls_cleanEmptyObject
13580  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
13581  function CoverHeightInput({
13582    onChange,
13583    onUnitChange,
13584    unit = 'px',
13585    value = ''
13586  }) {
13587    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
13588    const inputId = `block-cover-height-input-$instanceId}`;
13589    const isPx = unit === 'px';
13590    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
13591    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
13592      availableUnits: availableUnits || ['px', 'em', 'rem', 'vw', 'vh'],
13593      defaultValues: {
13594        px: 430,
13595        '%': 20,
13596        em: 20,
13597        rem: 20,
13598        vw: 20,
13599        vh: 50
13600      }
13601    });
13602    const handleOnChange = unprocessedValue => {
13603      const inputValue = unprocessedValue !== '' ? parseFloat(unprocessedValue) : undefined;
13604      if (isNaN(inputValue) && inputValue !== undefined) {
13605        return;
13606      }
13607      onChange(inputValue);
13608    };
13609    const computedValue = (0,external_wp_element_namespaceObject.useMemo)(() => {
13610      const [parsedQuantity] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
13611      return [parsedQuantity, unit].join('');
13612    }, [unit, value]);
13613    const min = isPx ? COVER_MIN_HEIGHT : 0;
13614    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
13615      __next40pxDefaultSize: true,
13616      label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'),
13617      id: inputId,
13618      isResetValueOnUnitChange: true,
13619      min: min,
13620      onChange: handleOnChange,
13621      onUnitChange: onUnitChange,
13622      units: units,
13623      value: computedValue
13624    });
13625  }
13626  function CoverInspectorControls({
13627    attributes,
13628    setAttributes,
13629    clientId,
13630    setOverlayColor,
13631    coverRef,
13632    currentSettings,
13633    updateDimRatio
13634  }) {
13635    const {
13636      useFeaturedImage,
13637      dimRatio,
13638      focalPoint,
13639      hasParallax,
13640      isRepeated,
13641      minHeight,
13642      minHeightUnit,
13643      alt,
13644      tagName
13645    } = attributes;
13646    const {
13647      isVideoBackground,
13648      isImageBackground,
13649      mediaElement,
13650      url,
13651      overlayColor
13652    } = currentSettings;
13653    const {
13654      gradientValue,
13655      setGradient
13656    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
13657    const toggleParallax = () => {
13658      setAttributes({
13659        hasParallax: !hasParallax,
13660        ...(!hasParallax ? {
13661          focalPoint: undefined
13662        } : {})
13663      });
13664    };
13665    const toggleIsRepeated = () => {
13666      setAttributes({
13667        isRepeated: !isRepeated
13668      });
13669    };
13670    const showFocalPointPicker = isVideoBackground || isImageBackground && (!hasParallax || isRepeated);
13671    const imperativeFocalPointPreview = value => {
13672      const [styleOfRef, property] = mediaElement.current ? [mediaElement.current.style, 'objectPosition'] : [coverRef.current.style, 'backgroundPosition'];
13673      styleOfRef[property] = mediaPosition(value);
13674    };
13675    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
13676    const htmlElementMessages = {
13677      header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
13678      main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only.'),
13679      section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
13680      article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self-contained, syndicatable portion of the document.'),
13681      aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
13682      footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
13683    };
13684    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
13685      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
13686        children: !!url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
13687          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
13688          children: [isImageBackground && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
13689            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
13690              __nextHasNoMarginBottom: true,
13691              label: (0,external_wp_i18n_namespaceObject.__)('Fixed background'),
13692              checked: hasParallax,
13693              onChange: toggleParallax
13694            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
13695              __nextHasNoMarginBottom: true,
13696              label: (0,external_wp_i18n_namespaceObject.__)('Repeated background'),
13697              checked: isRepeated,
13698              onChange: toggleIsRepeated
13699            })]
13700          }), showFocalPointPicker && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FocalPointPicker, {
13701            __nextHasNoMarginBottom: true,
13702            label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
13703            url: url,
13704            value: focalPoint,
13705            onDragStart: imperativeFocalPointPreview,
13706            onDrag: imperativeFocalPointPreview,
13707            onChange: newFocalPoint => setAttributes({
13708              focalPoint: newFocalPoint
13709            })
13710          }), !useFeaturedImage && url && !isVideoBackground && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
13711            __nextHasNoMarginBottom: true,
13712            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
13713            value: alt,
13714            onChange: newAlt => setAttributes({
13715              alt: newAlt
13716            }),
13717            help: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
13718              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
13719                href:
13720                // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
13721                (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
13722                children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
13723              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
13724            })
13725          })]
13726        })
13727      }), colorGradientSettings.hasColorsOrGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
13728        group: "color",
13729        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
13730          __experimentalIsRenderedInSidebar: true,
13731          settings: [{
13732            colorValue: overlayColor.color,
13733            gradientValue,
13734            label: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
13735            onColorChange: setOverlayColor,
13736            onGradientChange: setGradient,
13737            isShownByDefault: true,
13738            resetAllFilter: () => ({
13739              overlayColor: undefined,
13740              customOverlayColor: undefined,
13741              gradient: undefined,
13742              customGradient: undefined
13743            }),
13744            clearable: true
13745          }],
13746          panelId: clientId,
13747          ...colorGradientSettings
13748        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
13749          hasValue: () => {
13750            // If there's a media background the dimRatio will be
13751            // defaulted to 50 whereas it will be 100 for colors.
13752            return dimRatio === undefined ? false : dimRatio !== (url ? 50 : 100);
13753          },
13754          label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
13755          onDeselect: () => updateDimRatio(url ? 50 : 100),
13756          resetAllFilter: () => ({
13757            dimRatio: url ? 50 : 100
13758          }),
13759          isShownByDefault: true,
13760          panelId: clientId,
13761          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
13762            __nextHasNoMarginBottom: true,
13763            label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
13764            value: dimRatio,
13765            onChange: newDimRatio => updateDimRatio(newDimRatio),
13766            min: 0,
13767            max: 100,
13768            step: 10,
13769            required: true,
13770            __next40pxDefaultSize: true
13771          })
13772        })]
13773      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
13774        group: "dimensions",
13775        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
13776          className: "single-column",
13777          hasValue: () => !!minHeight,
13778          label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'),
13779          onDeselect: () => setAttributes({
13780            minHeight: undefined,
13781            minHeightUnit: undefined
13782          }),
13783          resetAllFilter: () => ({
13784            minHeight: undefined,
13785            minHeightUnit: undefined
13786          }),
13787          isShownByDefault: true,
13788          panelId: clientId,
13789          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverHeightInput, {
13790            value: attributes?.style?.dimensions?.aspectRatio ? '' : minHeight,
13791            unit: minHeightUnit,
13792            onChange: newMinHeight => setAttributes({
13793              minHeight: newMinHeight,
13794              style: inspector_controls_cleanEmptyObject({
13795                ...attributes?.style,
13796                dimensions: {
13797                  ...attributes?.style?.dimensions,
13798                  aspectRatio: undefined // Reset aspect ratio when minHeight is set.
13799                }
13800              })
13801            }),
13802            onUnitChange: nextUnit => setAttributes({
13803              minHeightUnit: nextUnit
13804            })
13805          })
13806        })
13807      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
13808        group: "advanced",
13809        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
13810          __nextHasNoMarginBottom: true,
13811          __next40pxDefaultSize: true,
13812          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
13813          options: [{
13814            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
13815            value: 'div'
13816          }, {
13817            label: '<header>',
13818            value: 'header'
13819          }, {
13820            label: '<main>',
13821            value: 'main'
13822          }, {
13823            label: '<section>',
13824            value: 'section'
13825          }, {
13826            label: '<article>',
13827            value: 'article'
13828          }, {
13829            label: '<aside>',
13830            value: 'aside'
13831          }, {
13832            label: '<footer>',
13833            value: 'footer'
13834          }],
13835          value: tagName,
13836          onChange: value => setAttributes({
13837            tagName: value
13838          }),
13839          help: htmlElementMessages[tagName]
13840        })
13841      })]
13842    });
13843  }
13844  
13845  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit/block-controls.js
13846  /**
13847   * WordPress dependencies
13848   */
13849  
13850  
13851  
13852  
13853  /**
13854   * Internal dependencies
13855   */
13856  
13857  
13858  
13859  
13860  
13861  const {
13862    cleanEmptyObject: block_controls_cleanEmptyObject
13863  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
13864  function CoverBlockControls({
13865    attributes,
13866    setAttributes,
13867    onSelectMedia,
13868    currentSettings,
13869    toggleUseFeaturedImage,
13870    onClearMedia
13871  }) {
13872    const {
13873      contentPosition,
13874      id,
13875      useFeaturedImage,
13876      minHeight,
13877      minHeightUnit
13878    } = attributes;
13879    const {
13880      hasInnerBlocks,
13881      url
13882    } = currentSettings;
13883    const [prevMinHeightValue, setPrevMinHeightValue] = (0,external_wp_element_namespaceObject.useState)(minHeight);
13884    const [prevMinHeightUnit, setPrevMinHeightUnit] = (0,external_wp_element_namespaceObject.useState)(minHeightUnit);
13885    const isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100 && !attributes?.style?.dimensions?.aspectRatio;
13886    const toggleMinFullHeight = () => {
13887      if (isMinFullHeight) {
13888        // If there aren't previous values, take the default ones.
13889        if (prevMinHeightUnit === 'vh' && prevMinHeightValue === 100) {
13890          return setAttributes({
13891            minHeight: undefined,
13892            minHeightUnit: undefined
13893          });
13894        }
13895  
13896        // Set the previous values of height.
13897        return setAttributes({
13898          minHeight: prevMinHeightValue,
13899          minHeightUnit: prevMinHeightUnit
13900        });
13901      }
13902      setPrevMinHeightValue(minHeight);
13903      setPrevMinHeightUnit(minHeightUnit);
13904  
13905      // Set full height, and clear any aspect ratio value.
13906      return setAttributes({
13907        minHeight: 100,
13908        minHeightUnit: 'vh',
13909        style: block_controls_cleanEmptyObject({
13910          ...attributes?.style,
13911          dimensions: {
13912            ...attributes?.style?.dimensions,
13913            aspectRatio: undefined // Reset aspect ratio when minHeight is set.
13914          }
13915        })
13916      });
13917    };
13918    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
13919      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
13920        group: "block",
13921        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockAlignmentMatrixControl, {
13922          label: (0,external_wp_i18n_namespaceObject.__)('Change content position'),
13923          value: contentPosition,
13924          onChange: nextPosition => setAttributes({
13925            contentPosition: nextPosition
13926          }),
13927          isDisabled: !hasInnerBlocks
13928        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockFullHeightAligmentControl, {
13929          isActive: isMinFullHeight,
13930          onToggle: toggleMinFullHeight,
13931          isDisabled: !hasInnerBlocks
13932        })]
13933      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
13934        group: "other",
13935        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
13936          mediaId: id,
13937          mediaURL: url,
13938          allowedTypes: shared_ALLOWED_MEDIA_TYPES,
13939          accept: "image/*,video/*",
13940          onSelect: onSelectMedia,
13941          onToggleFeaturedImage: toggleUseFeaturedImage,
13942          useFeaturedImage: useFeaturedImage,
13943          name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add Media') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
13944          onReset: onClearMedia
13945        })
13946      })]
13947    });
13948  }
13949  
13950  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit/cover-placeholder.js
13951  /**
13952   * WordPress dependencies
13953   */
13954  
13955  
13956  
13957  
13958  /**
13959   * Internal dependencies
13960   */
13961  
13962  
13963  function CoverPlaceholder({
13964    disableMediaButtons = false,
13965    children,
13966    onSelectMedia,
13967    onError,
13968    style,
13969    toggleUseFeaturedImage
13970  }) {
13971    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
13972      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
13973        icon: library_cover
13974      }),
13975      labels: {
13976        title: (0,external_wp_i18n_namespaceObject.__)('Cover'),
13977        instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop onto this block, upload, or select existing media from your library.')
13978      },
13979      onSelect: onSelectMedia,
13980      accept: "image/*,video/*",
13981      allowedTypes: shared_ALLOWED_MEDIA_TYPES,
13982      disableMediaButtons: disableMediaButtons,
13983      onToggleFeaturedImage: toggleUseFeaturedImage,
13984      onError: onError,
13985      style: style,
13986      children: children
13987    });
13988  }
13989  
13990  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit/resizable-cover-popover.js
13991  /**
13992   * External dependencies
13993   */
13994  
13995  
13996  /**
13997   * WordPress dependencies
13998   */
13999  
14000  
14001  
14002  /**
14003   * Internal dependencies
14004   */
14005  
14006  
14007  const RESIZABLE_BOX_ENABLE_OPTION = {
14008    top: false,
14009    right: false,
14010    bottom: true,
14011    left: false,
14012    topRight: false,
14013    bottomRight: false,
14014    bottomLeft: false,
14015    topLeft: false
14016  };
14017  const {
14018    ResizableBoxPopover
14019  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
14020  function ResizableCoverPopover({
14021    className,
14022    height,
14023    minHeight,
14024    onResize,
14025    onResizeStart,
14026    onResizeStop,
14027    showHandle,
14028    size,
14029    width,
14030    ...props
14031  }) {
14032    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
14033    const resizableBoxProps = {
14034      className: dist_clsx(className, {
14035        'is-resizing': isResizing
14036      }),
14037      enable: RESIZABLE_BOX_ENABLE_OPTION,
14038      onResizeStart: (_event, _direction, elt) => {
14039        onResizeStart(elt.clientHeight);
14040        onResize(elt.clientHeight);
14041      },
14042      onResize: (_event, _direction, elt) => {
14043        onResize(elt.clientHeight);
14044        if (!isResizing) {
14045          setIsResizing(true);
14046        }
14047      },
14048      onResizeStop: (_event, _direction, elt) => {
14049        onResizeStop(elt.clientHeight);
14050        setIsResizing(false);
14051      },
14052      showHandle,
14053      size,
14054      __experimentalShowTooltip: true,
14055      __experimentalTooltipProps: {
14056        axis: 'y',
14057        position: 'bottom',
14058        isVisible: isResizing
14059      }
14060    };
14061    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableBoxPopover, {
14062      className: "block-library-cover__resizable-box-popover",
14063      resizableBoxProps: resizableBoxProps,
14064      ...props
14065    });
14066  }
14067  
14068  ;// CONCATENATED MODULE: ./node_modules/colord/index.mjs
14069  var colord_r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return"string"==typeof r?r.length>0:"number"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u="deg"),Number(e)*(colord_r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},"hsl"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},"rgb"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},"hsl"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},"hsv"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return"string"==typeof r?N(r.trim(),y.string):"object"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):"","#"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?"rgba("+t+", "+n+", "+e+", "+u+")":"rgb("+t+", "+n+", "+e+")";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?"hsla("+t+", "+n+"%, "+e+"%, "+u+")":"hsl("+t+", "+n+"%, "+e+"%)";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return"number"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return"number"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};
14070  
14071  ;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs
14072  /* harmony default export */ function names(e,f){var a={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b="black";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d="transparent"===r?"#0000":a[r];return d?new e(d).toRgb():null},"name"])}
14073  
14074  ;// CONCATENATED MODULE: ./node_modules/fast-average-color/dist/index.esm.js
14075  /*! Fast Average Color | © 2022 Denis Seleznev | MIT License | https://github.com/fast-average-color/fast-average-color */
14076  function toHex(num) {
14077      var str = num.toString(16);
14078      return str.length === 1 ? '0' + str : str;
14079  }
14080  function arrayToHex(arr) {
14081      return '#' + arr.map(toHex).join('');
14082  }
14083  function isDark(color) {
14084      // http://www.w3.org/TR/AERT#color-contrast
14085      var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000;
14086      return result < 128;
14087  }
14088  function prepareIgnoredColor(color) {
14089      if (!color) {
14090          return [];
14091      }
14092      return isRGBArray(color) ? color : [color];
14093  }
14094  function isRGBArray(value) {
14095      return Array.isArray(value[0]);
14096  }
14097  function isIgnoredColor(data, index, ignoredColor) {
14098      for (var i = 0; i < ignoredColor.length; i++) {
14099          if (isIgnoredColorAsNumbers(data, index, ignoredColor[i])) {
14100              return true;
14101          }
14102      }
14103      return false;
14104  }
14105  function isIgnoredColorAsNumbers(data, index, ignoredColor) {
14106      switch (ignoredColor.length) {
14107          case 3:
14108              // [red, green, blue]
14109              if (isIgnoredRGBColor(data, index, ignoredColor)) {
14110                  return true;
14111              }
14112              break;
14113          case 4:
14114              // [red, green, blue, alpha]
14115              if (isIgnoredRGBAColor(data, index, ignoredColor)) {
14116                  return true;
14117              }
14118              break;
14119          case 5:
14120              // [red, green, blue, alpha, threshold]
14121              if (isIgnoredRGBAColorWithThreshold(data, index, ignoredColor)) {
14122                  return true;
14123              }
14124              break;
14125          default:
14126              return false;
14127      }
14128  }
14129  function isIgnoredRGBColor(data, index, ignoredColor) {
14130      // Ignore if the pixel are transparent.
14131      if (data[index + 3] !== 255) {
14132          return true;
14133      }
14134      if (data[index] === ignoredColor[0] &&
14135          data[index + 1] === ignoredColor[1] &&
14136          data[index + 2] === ignoredColor[2]) {
14137          return true;
14138      }
14139      return false;
14140  }
14141  function isIgnoredRGBAColor(data, index, ignoredColor) {
14142      if (data[index + 3] && ignoredColor[3]) {
14143          return data[index] === ignoredColor[0] &&
14144              data[index + 1] === ignoredColor[1] &&
14145              data[index + 2] === ignoredColor[2] &&
14146              data[index + 3] === ignoredColor[3];
14147      }
14148      // Ignore rgb components if the pixel are fully transparent.
14149      return data[index + 3] === ignoredColor[3];
14150  }
14151  function inRange(colorComponent, ignoredColorComponent, value) {
14152      return colorComponent >= (ignoredColorComponent - value) &&
14153          colorComponent <= (ignoredColorComponent + value);
14154  }
14155  function isIgnoredRGBAColorWithThreshold(data, index, ignoredColor) {
14156      var redIgnored = ignoredColor[0];
14157      var greenIgnored = ignoredColor[1];
14158      var blueIgnored = ignoredColor[2];
14159      var alphaIgnored = ignoredColor[3];
14160      var threshold = ignoredColor[4];
14161      var alphaData = data[index + 3];
14162      var alphaInRange = inRange(alphaData, alphaIgnored, threshold);
14163      if (!alphaIgnored) {
14164          return alphaInRange;
14165      }
14166      if (!alphaData && alphaInRange) {
14167          return true;
14168      }
14169      if (inRange(data[index], redIgnored, threshold) &&
14170          inRange(data[index + 1], greenIgnored, threshold) &&
14171          inRange(data[index + 2], blueIgnored, threshold) &&
14172          alphaInRange) {
14173          return true;
14174      }
14175      return false;
14176  }
14177  
14178  function dominantAlgorithm(arr, len, options) {
14179      var colorHash = {};
14180      var divider = 24;
14181      var ignoredColor = options.ignoredColor;
14182      var step = options.step;
14183      var max = [0, 0, 0, 0, 0];
14184      for (var i = 0; i < len; i += step) {
14185          var red = arr[i];
14186          var green = arr[i + 1];
14187          var blue = arr[i + 2];
14188          var alpha = arr[i + 3];
14189          if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {
14190              continue;
14191          }
14192          var key = Math.round(red / divider) + ',' +
14193              Math.round(green / divider) + ',' +
14194              Math.round(blue / divider);
14195          if (colorHash[key]) {
14196              colorHash[key] = [
14197                  colorHash[key][0] + red * alpha,
14198                  colorHash[key][1] + green * alpha,
14199                  colorHash[key][2] + blue * alpha,
14200                  colorHash[key][3] + alpha,
14201                  colorHash[key][4] + 1
14202              ];
14203          }
14204          else {
14205              colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1];
14206          }
14207          if (max[4] < colorHash[key][4]) {
14208              max = colorHash[key];
14209          }
14210      }
14211      var redTotal = max[0];
14212      var greenTotal = max[1];
14213      var blueTotal = max[2];
14214      var alphaTotal = max[3];
14215      var count = max[4];
14216      return alphaTotal ? [
14217          Math.round(redTotal / alphaTotal),
14218          Math.round(greenTotal / alphaTotal),
14219          Math.round(blueTotal / alphaTotal),
14220          Math.round(alphaTotal / count)
14221      ] : options.defaultColor;
14222  }
14223  
14224  function simpleAlgorithm(arr, len, options) {
14225      var redTotal = 0;
14226      var greenTotal = 0;
14227      var blueTotal = 0;
14228      var alphaTotal = 0;
14229      var count = 0;
14230      var ignoredColor = options.ignoredColor;
14231      var step = options.step;
14232      for (var i = 0; i < len; i += step) {
14233          var alpha = arr[i + 3];
14234          var red = arr[i] * alpha;
14235          var green = arr[i + 1] * alpha;
14236          var blue = arr[i + 2] * alpha;
14237          if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {
14238              continue;
14239          }
14240          redTotal += red;
14241          greenTotal += green;
14242          blueTotal += blue;
14243          alphaTotal += alpha;
14244          count++;
14245      }
14246      return alphaTotal ? [
14247          Math.round(redTotal / alphaTotal),
14248          Math.round(greenTotal / alphaTotal),
14249          Math.round(blueTotal / alphaTotal),
14250          Math.round(alphaTotal / count)
14251      ] : options.defaultColor;
14252  }
14253  
14254  function sqrtAlgorithm(arr, len, options) {
14255      var redTotal = 0;
14256      var greenTotal = 0;
14257      var blueTotal = 0;
14258      var alphaTotal = 0;
14259      var count = 0;
14260      var ignoredColor = options.ignoredColor;
14261      var step = options.step;
14262      for (var i = 0; i < len; i += step) {
14263          var red = arr[i];
14264          var green = arr[i + 1];
14265          var blue = arr[i + 2];
14266          var alpha = arr[i + 3];
14267          if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {
14268              continue;
14269          }
14270          redTotal += red * red * alpha;
14271          greenTotal += green * green * alpha;
14272          blueTotal += blue * blue * alpha;
14273          alphaTotal += alpha;
14274          count++;
14275      }
14276      return alphaTotal ? [
14277          Math.round(Math.sqrt(redTotal / alphaTotal)),
14278          Math.round(Math.sqrt(greenTotal / alphaTotal)),
14279          Math.round(Math.sqrt(blueTotal / alphaTotal)),
14280          Math.round(alphaTotal / count)
14281      ] : options.defaultColor;
14282  }
14283  
14284  function getDefaultColor(options) {
14285      return getOption(options, 'defaultColor', [0, 0, 0, 0]);
14286  }
14287  function getOption(options, name, defaultValue) {
14288      return (options[name] === undefined ? defaultValue : options[name]);
14289  }
14290  
14291  var MIN_SIZE = 10;
14292  var MAX_SIZE = 100;
14293  function isSvg(filename) {
14294      return filename.search(/\.svg(\?|$)/i) !== -1;
14295  }
14296  function getOriginalSize(resource) {
14297      if (isInstanceOfHTMLImageElement(resource)) {
14298          var width = resource.naturalWidth;
14299          var height = resource.naturalHeight;
14300          // For SVG images with only viewBox attribute
14301          if (!resource.naturalWidth && isSvg(resource.src)) {
14302              width = height = MAX_SIZE;
14303          }
14304          return {
14305              width: width,
14306              height: height,
14307          };
14308      }
14309      if (isInstanceOfHTMLVideoElement(resource)) {
14310          return {
14311              width: resource.videoWidth,
14312              height: resource.videoHeight
14313          };
14314      }
14315      return {
14316          width: resource.width,
14317          height: resource.height
14318      };
14319  }
14320  function getSrc(resource) {
14321      if (isInstanceOfHTMLCanvasElement(resource)) {
14322          return 'canvas';
14323      }
14324      if (isInstanceOfOffscreenCanvas(resource)) {
14325          return 'offscreencanvas';
14326      }
14327      if (isInstanceOfImageBitmap(resource)) {
14328          return 'imagebitmap';
14329      }
14330      return resource.src;
14331  }
14332  function isInstanceOfHTMLImageElement(resource) {
14333      return typeof HTMLImageElement !== 'undefined' && resource instanceof HTMLImageElement;
14334  }
14335  var hasOffscreenCanvas = typeof OffscreenCanvas !== 'undefined';
14336  function isInstanceOfOffscreenCanvas(resource) {
14337      return hasOffscreenCanvas && resource instanceof OffscreenCanvas;
14338  }
14339  function isInstanceOfHTMLVideoElement(resource) {
14340      return typeof HTMLVideoElement !== 'undefined' && resource instanceof HTMLVideoElement;
14341  }
14342  function isInstanceOfHTMLCanvasElement(resource) {
14343      return typeof HTMLCanvasElement !== 'undefined' && resource instanceof HTMLCanvasElement;
14344  }
14345  function isInstanceOfImageBitmap(resource) {
14346      return typeof ImageBitmap !== 'undefined' && resource instanceof ImageBitmap;
14347  }
14348  function prepareSizeAndPosition(originalSize, options) {
14349      var srcLeft = getOption(options, 'left', 0);
14350      var srcTop = getOption(options, 'top', 0);
14351      var srcWidth = getOption(options, 'width', originalSize.width);
14352      var srcHeight = getOption(options, 'height', originalSize.height);
14353      var destWidth = srcWidth;
14354      var destHeight = srcHeight;
14355      if (options.mode === 'precision') {
14356          return {
14357              srcLeft: srcLeft,
14358              srcTop: srcTop,
14359              srcWidth: srcWidth,
14360              srcHeight: srcHeight,
14361              destWidth: destWidth,
14362              destHeight: destHeight
14363          };
14364      }
14365      var factor;
14366      if (srcWidth > srcHeight) {
14367          factor = srcWidth / srcHeight;
14368          destWidth = MAX_SIZE;
14369          destHeight = Math.round(destWidth / factor);
14370      }
14371      else {
14372          factor = srcHeight / srcWidth;
14373          destHeight = MAX_SIZE;
14374          destWidth = Math.round(destHeight / factor);
14375      }
14376      if (destWidth > srcWidth || destHeight > srcHeight ||
14377          destWidth < MIN_SIZE || destHeight < MIN_SIZE) {
14378          destWidth = srcWidth;
14379          destHeight = srcHeight;
14380      }
14381      return {
14382          srcLeft: srcLeft,
14383          srcTop: srcTop,
14384          srcWidth: srcWidth,
14385          srcHeight: srcHeight,
14386          destWidth: destWidth,
14387          destHeight: destHeight
14388      };
14389  }
14390  var isWebWorkers = typeof window === 'undefined';
14391  function makeCanvas() {
14392      if (isWebWorkers) {
14393          return hasOffscreenCanvas ? new OffscreenCanvas(1, 1) : null;
14394      }
14395      return document.createElement('canvas');
14396  }
14397  
14398  var ERROR_PREFIX = 'FastAverageColor: ';
14399  function getError(message) {
14400      return Error(ERROR_PREFIX + message);
14401  }
14402  function outputError(error, silent) {
14403      if (!silent) {
14404          console.error(error);
14405      }
14406  }
14407  
14408  var FastAverageColor = /** @class */ (function () {
14409      function FastAverageColor() {
14410          this.canvas = null;
14411          this.ctx = null;
14412      }
14413      /**
14414       * Get asynchronously the average color from not loaded image.
14415       */
14416      FastAverageColor.prototype.getColorAsync = function (resource, options) {
14417          if (!resource) {
14418              return Promise.reject(getError('call .getColorAsync() without resource.'));
14419          }
14420          if (typeof resource === 'string') {
14421              // Web workers
14422              if (typeof Image === 'undefined') {
14423                  return Promise.reject(getError('resource as string is not supported in this environment'));
14424              }
14425              var img = new Image();
14426              img.crossOrigin = options && options.crossOrigin || '';
14427              img.src = resource;
14428              return this.bindImageEvents(img, options);
14429          }
14430          else if (isInstanceOfHTMLImageElement(resource) && !resource.complete) {
14431              return this.bindImageEvents(resource, options);
14432          }
14433          else {
14434              var result = this.getColor(resource, options);
14435              return result.error ? Promise.reject(result.error) : Promise.resolve(result);
14436          }
14437      };
14438      /**
14439       * Get the average color from images, videos and canvas.
14440       */
14441      FastAverageColor.prototype.getColor = function (resource, options) {
14442          options = options || {};
14443          var defaultColor = getDefaultColor(options);
14444          if (!resource) {
14445              var error = getError('call .getColor(null) without resource');
14446              outputError(error, options.silent);
14447              return this.prepareResult(defaultColor, error);
14448          }
14449          var originalSize = getOriginalSize(resource);
14450          var size = prepareSizeAndPosition(originalSize, options);
14451          if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) {
14452              var error = getError("incorrect sizes for resource \"".concat(getSrc(resource), "\""));
14453              outputError(error, options.silent);
14454              return this.prepareResult(defaultColor, error);
14455          }
14456          if (!this.canvas) {
14457              this.canvas = makeCanvas();
14458              if (!this.canvas) {
14459                  var error = getError('OffscreenCanvas is not supported in this browser');
14460                  outputError(error, options.silent);
14461                  return this.prepareResult(defaultColor, error);
14462              }
14463          }
14464          if (!this.ctx) {
14465              this.ctx = this.canvas.getContext('2d', { willReadFrequently: true });
14466              if (!this.ctx) {
14467                  var error = getError('Canvas Context 2D is not supported in this browser');
14468                  outputError(error, options.silent);
14469                  return this.prepareResult(defaultColor);
14470              }
14471              this.ctx.imageSmoothingEnabled = false;
14472          }
14473          this.canvas.width = size.destWidth;
14474          this.canvas.height = size.destHeight;
14475          try {
14476              this.ctx.clearRect(0, 0, size.destWidth, size.destHeight);
14477              this.ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight);
14478              var bitmapData = this.ctx.getImageData(0, 0, size.destWidth, size.destHeight).data;
14479              return this.prepareResult(this.getColorFromArray4(bitmapData, options));
14480          }
14481          catch (originalError) {
14482              var error = getError("security error (CORS) for resource ".concat(getSrc(resource), ".\nDetails: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image"));
14483              outputError(error, options.silent);
14484              !options.silent && console.error(originalError);
14485              return this.prepareResult(defaultColor, error);
14486          }
14487      };
14488      /**
14489       * Get the average color from a array when 1 pixel is 4 bytes.
14490       */
14491      FastAverageColor.prototype.getColorFromArray4 = function (arr, options) {
14492          options = options || {};
14493          var bytesPerPixel = 4;
14494          var arrLength = arr.length;
14495          var defaultColor = getDefaultColor(options);
14496          if (arrLength < bytesPerPixel) {
14497              return defaultColor;
14498          }
14499          var len = arrLength - arrLength % bytesPerPixel;
14500          var step = (options.step || 1) * bytesPerPixel;
14501          var algorithm;
14502          switch (options.algorithm || 'sqrt') {
14503              case 'simple':
14504                  algorithm = simpleAlgorithm;
14505                  break;
14506              case 'sqrt':
14507                  algorithm = sqrtAlgorithm;
14508                  break;
14509              case 'dominant':
14510                  algorithm = dominantAlgorithm;
14511                  break;
14512              default:
14513                  throw getError("".concat(options.algorithm, " is unknown algorithm"));
14514          }
14515          return algorithm(arr, len, {
14516              defaultColor: defaultColor,
14517              ignoredColor: prepareIgnoredColor(options.ignoredColor),
14518              step: step
14519          });
14520      };
14521      /**
14522       * Get color data from value ([r, g, b, a]).
14523       */
14524      FastAverageColor.prototype.prepareResult = function (value, error) {
14525          var rgb = value.slice(0, 3);
14526          var rgba = [value[0], value[1], value[2], value[3] / 255];
14527          var isDarkColor = isDark(value);
14528          return {
14529              value: [value[0], value[1], value[2], value[3]],
14530              rgb: 'rgb(' + rgb.join(',') + ')',
14531              rgba: 'rgba(' + rgba.join(',') + ')',
14532              hex: arrayToHex(rgb),
14533              hexa: arrayToHex(value),
14534              isDark: isDarkColor,
14535              isLight: !isDarkColor,
14536              error: error,
14537          };
14538      };
14539      /**
14540       * Destroy the instance.
14541       */
14542      FastAverageColor.prototype.destroy = function () {
14543          if (this.canvas) {
14544              this.canvas.width = 1;
14545              this.canvas.height = 1;
14546              this.canvas = null;
14547          }
14548          this.ctx = null;
14549      };
14550      FastAverageColor.prototype.bindImageEvents = function (resource, options) {
14551          var _this = this;
14552          return new Promise(function (resolve, reject) {
14553              var onload = function () {
14554                  unbindEvents();
14555                  var result = _this.getColor(resource, options);
14556                  if (result.error) {
14557                      reject(result.error);
14558                  }
14559                  else {
14560                      resolve(result);
14561                  }
14562              };
14563              var onerror = function () {
14564                  unbindEvents();
14565                  reject(getError("Error loading image \"".concat(resource.src, "\".")));
14566              };
14567              var onabort = function () {
14568                  unbindEvents();
14569                  reject(getError("Image \"".concat(resource.src, "\" loading aborted")));
14570              };
14571              var unbindEvents = function () {
14572                  resource.removeEventListener('load', onload);
14573                  resource.removeEventListener('error', onerror);
14574                  resource.removeEventListener('abort', onabort);
14575              };
14576              resource.addEventListener('load', onload);
14577              resource.addEventListener('error', onerror);
14578              resource.addEventListener('abort', onabort);
14579          });
14580      };
14581      return FastAverageColor;
14582  }());
14583  
14584  
14585  
14586  ;// CONCATENATED MODULE: external ["wp","hooks"]
14587  const external_wp_hooks_namespaceObject = window["wp"]["hooks"];
14588  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit/color-utils.js
14589  /**
14590   * External dependencies
14591   */
14592  
14593  
14594  
14595  
14596  
14597  /**
14598   * WordPress dependencies
14599   */
14600  
14601  
14602  /**
14603   * @typedef {import('colord').RgbaColor} RgbaColor
14604   */
14605  
14606  k([names]);
14607  
14608  /**
14609   * Fallback color when the average color can't be computed. The image may be
14610   * rendering as transparent, and most sites have a light color background.
14611   */
14612  const DEFAULT_BACKGROUND_COLOR = '#FFF';
14613  
14614  /**
14615   * Default dim color specified in style.css.
14616   */
14617  const DEFAULT_OVERLAY_COLOR = '#000';
14618  
14619  /**
14620   * Performs a Porter Duff composite source over operation on two rgba colors.
14621   *
14622   * @see {@link https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators_srcover}
14623   *
14624   * @param {RgbaColor} source Source color.
14625   * @param {RgbaColor} dest   Destination color.
14626   *
14627   * @return {RgbaColor} Composite color.
14628   */
14629  function compositeSourceOver(source, dest) {
14630    return {
14631      r: source.r * source.a + dest.r * dest.a * (1 - source.a),
14632      g: source.g * source.a + dest.g * dest.a * (1 - source.a),
14633      b: source.b * source.a + dest.b * dest.a * (1 - source.a),
14634      a: source.a + dest.a * (1 - source.a)
14635    };
14636  }
14637  
14638  /**
14639   * Retrieves the FastAverageColor singleton.
14640   *
14641   * @return {FastAverageColor} The FastAverageColor singleton.
14642   */
14643  function retrieveFastAverageColor() {
14644    if (!retrieveFastAverageColor.fastAverageColor) {
14645      retrieveFastAverageColor.fastAverageColor = new FastAverageColor();
14646    }
14647    return retrieveFastAverageColor.fastAverageColor;
14648  }
14649  
14650  /**
14651   * Computes the average color of an image.
14652   *
14653   * @param {string} url The url of the image.
14654   *
14655   * @return {Promise<string>} Promise of an average color as a hex string.
14656   */
14657  const getMediaColor = memize(async url => {
14658    if (!url) {
14659      return DEFAULT_BACKGROUND_COLOR;
14660    }
14661  
14662    // making the default color rgb for compat with FAC
14663    const {
14664      r,
14665      g,
14666      b,
14667      a
14668    } = w(DEFAULT_BACKGROUND_COLOR).toRgb();
14669    try {
14670      const imgCrossOrigin = (0,external_wp_hooks_namespaceObject.applyFilters)('media.crossOrigin', undefined, url);
14671      const color = await retrieveFastAverageColor().getColorAsync(url, {
14672        // The default color is white, which is the color
14673        // that is returned if there's an error.
14674        // colord returns alpga 0-1, FAC needs 0-255
14675        defaultColor: [r, g, b, a * 255],
14676        // Errors that come up don't reject the promise,
14677        // so error logging has to be silenced
14678        // with this option.
14679        silent: "production" === 'production',
14680        crossOrigin: imgCrossOrigin
14681      });
14682      return color.hex;
14683    } catch (error) {
14684      // If there's an error return the fallback color.
14685      return DEFAULT_BACKGROUND_COLOR;
14686    }
14687  });
14688  
14689  /**
14690   * Computes if the color combination of the overlay and background color is dark.
14691   *
14692   * @param {number} dimRatio        Opacity of the overlay between 0 and 100.
14693   * @param {string} overlayColor    CSS color string for the overlay.
14694   * @param {string} backgroundColor CSS color string for the background.
14695   *
14696   * @return {boolean} true if the color combination composite result is dark.
14697   */
14698  function compositeIsDark(dimRatio, overlayColor, backgroundColor) {
14699    // Opacity doesn't matter if you're overlaying the same color on top of itself.
14700    // And background doesn't matter when overlay is fully opaque.
14701    if (overlayColor === backgroundColor || dimRatio === 100) {
14702      return w(overlayColor).isDark();
14703    }
14704    const overlay = w(overlayColor).alpha(dimRatio / 100).toRgb();
14705    const background = w(backgroundColor).toRgb();
14706    const composite = compositeSourceOver(overlay, background);
14707    return w(composite).isDark();
14708  }
14709  
14710  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit/index.js
14711  /**
14712   * External dependencies
14713   */
14714  
14715  
14716  /**
14717   * WordPress dependencies
14718   */
14719  
14720  
14721  
14722  
14723  
14724  
14725  
14726  
14727  
14728  
14729  /**
14730   * Internal dependencies
14731   */
14732  
14733  
14734  
14735  
14736  
14737  
14738  
14739  
14740  
14741  function getInnerBlocksTemplate(attributes) {
14742    return [['core/paragraph', {
14743      align: 'center',
14744      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…'),
14745      ...attributes
14746    }]];
14747  }
14748  
14749  /**
14750   * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while
14751   * the media (image or video) is being uploaded and will not have an id allocated yet.
14752   *
14753   * @param {number} id  The id of the media.
14754   * @param {string} url The url of the media.
14755   *
14756   * @return {boolean} Is the URL a Blob URL.
14757   */
14758  const isTemporaryMedia = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);
14759  function CoverEdit({
14760    attributes,
14761    clientId,
14762    isSelected,
14763    overlayColor,
14764    setAttributes,
14765    setOverlayColor,
14766    toggleSelection,
14767    context: {
14768      postId,
14769      postType
14770    }
14771  }) {
14772    const {
14773      contentPosition,
14774      id,
14775      url: originalUrl,
14776      backgroundType: originalBackgroundType,
14777      useFeaturedImage,
14778      dimRatio,
14779      focalPoint,
14780      hasParallax,
14781      isDark,
14782      isRepeated,
14783      minHeight,
14784      minHeightUnit,
14785      alt,
14786      allowedBlocks,
14787      templateLock,
14788      tagName: TagName = 'div',
14789      isUserOverlayColor
14790    } = attributes;
14791    const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
14792    const {
14793      __unstableMarkNextChangeAsNotPersistent
14794    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
14795    const media = (0,external_wp_data_namespaceObject.useSelect)(select => featuredImage && select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
14796      context: 'view'
14797    }), [featuredImage]);
14798    const mediaUrl = media?.source_url;
14799  
14800    // User can change the featured image outside of the block, but we still
14801    // need to update the block when that happens. This effect should only
14802    // run when the featured image changes in that case. All other cases are
14803    // handled in their respective callbacks.
14804    (0,external_wp_element_namespaceObject.useEffect)(() => {
14805      (async () => {
14806        if (!useFeaturedImage) {
14807          return;
14808        }
14809        const averageBackgroundColor = await getMediaColor(mediaUrl);
14810        let newOverlayColor = overlayColor.color;
14811        if (!isUserOverlayColor) {
14812          newOverlayColor = averageBackgroundColor;
14813          __unstableMarkNextChangeAsNotPersistent();
14814          setOverlayColor(newOverlayColor);
14815        }
14816        const newIsDark = compositeIsDark(dimRatio, newOverlayColor, averageBackgroundColor);
14817        __unstableMarkNextChangeAsNotPersistent();
14818        setAttributes({
14819          isDark: newIsDark,
14820          isUserOverlayColor: isUserOverlayColor || false
14821        });
14822      })();
14823      // Disable reason: Update the block only when the featured image changes.
14824      // eslint-disable-next-line react-hooks/exhaustive-deps
14825    }, [mediaUrl]);
14826  
14827    // instead of destructuring the attributes
14828    // we define the url and background type
14829    // depending on the value of the useFeaturedImage flag
14830    // to preview in edit the dynamic featured image
14831    const url = useFeaturedImage ? mediaUrl :
14832    // Ensure the url is not malformed due to sanitization through `wp_kses`.
14833    originalUrl?.replaceAll('&amp;', '&');
14834    const backgroundType = useFeaturedImage ? IMAGE_BACKGROUND_TYPE : originalBackgroundType;
14835    const {
14836      createErrorNotice
14837    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
14838    const {
14839      gradientClass,
14840      gradientValue
14841    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
14842    const onSelectMedia = async newMedia => {
14843      const mediaAttributes = attributesFromMedia(newMedia);
14844      const isImage = [newMedia?.type, newMedia?.media_type].includes(IMAGE_BACKGROUND_TYPE);
14845      const averageBackgroundColor = await getMediaColor(isImage ? newMedia?.url : undefined);
14846      let newOverlayColor = overlayColor.color;
14847      if (!isUserOverlayColor) {
14848        newOverlayColor = averageBackgroundColor;
14849        setOverlayColor(newOverlayColor);
14850  
14851        // Make undo revert the next setAttributes and the previous setOverlayColor.
14852        __unstableMarkNextChangeAsNotPersistent();
14853      }
14854  
14855      // Only set a new dimRatio if there was no previous media selected
14856      // to avoid resetting to 50 if it has been explicitly set to 100.
14857      // See issue #52835 for context.
14858      const newDimRatio = originalUrl === undefined && dimRatio === 100 ? 50 : dimRatio;
14859      const newIsDark = compositeIsDark(newDimRatio, newOverlayColor, averageBackgroundColor);
14860      setAttributes({
14861        ...mediaAttributes,
14862        focalPoint: undefined,
14863        useFeaturedImage: undefined,
14864        dimRatio: newDimRatio,
14865        isDark: newIsDark,
14866        isUserOverlayColor: isUserOverlayColor || false
14867      });
14868    };
14869    const onClearMedia = () => {
14870      let newOverlayColor = overlayColor.color;
14871      if (!isUserOverlayColor) {
14872        newOverlayColor = DEFAULT_OVERLAY_COLOR;
14873        setOverlayColor(undefined);
14874  
14875        // Make undo revert the next setAttributes and the previous setOverlayColor.
14876        __unstableMarkNextChangeAsNotPersistent();
14877      }
14878      const newIsDark = compositeIsDark(dimRatio, newOverlayColor, DEFAULT_BACKGROUND_COLOR);
14879      setAttributes({
14880        url: undefined,
14881        id: undefined,
14882        backgroundType: undefined,
14883        focalPoint: undefined,
14884        hasParallax: undefined,
14885        isRepeated: undefined,
14886        useFeaturedImage: undefined,
14887        isDark: newIsDark
14888      });
14889    };
14890    const onSetOverlayColor = async newOverlayColor => {
14891      const averageBackgroundColor = await getMediaColor(url);
14892      const newIsDark = compositeIsDark(dimRatio, newOverlayColor, averageBackgroundColor);
14893      setOverlayColor(newOverlayColor);
14894  
14895      // Make undo revert the next setAttributes and the previous setOverlayColor.
14896      __unstableMarkNextChangeAsNotPersistent();
14897      setAttributes({
14898        isUserOverlayColor: true,
14899        isDark: newIsDark
14900      });
14901    };
14902    const onUpdateDimRatio = async newDimRatio => {
14903      const averageBackgroundColor = await getMediaColor(url);
14904      const newIsDark = compositeIsDark(newDimRatio, overlayColor.color, averageBackgroundColor);
14905      setAttributes({
14906        dimRatio: newDimRatio,
14907        isDark: newIsDark
14908      });
14909    };
14910    const onUploadError = message => {
14911      createErrorNotice(message, {
14912        type: 'snackbar'
14913      });
14914    };
14915    const isUploadingMedia = isTemporaryMedia(id, url);
14916    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
14917    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
14918    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
14919    const hasNonContentControls = blockEditingMode === 'default';
14920    const [resizeListener, {
14921      height,
14922      width
14923    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
14924    const resizableBoxDimensions = (0,external_wp_element_namespaceObject.useMemo)(() => {
14925      return {
14926        height: minHeightUnit === 'px' ? minHeight : 'auto',
14927        width: 'auto'
14928      };
14929    }, [minHeight, minHeightUnit]);
14930    const minHeightWithUnit = minHeight && minHeightUnit ? `$minHeight}$minHeightUnit}` : minHeight;
14931    const isImgElement = !(hasParallax || isRepeated);
14932    const style = {
14933      minHeight: minHeightWithUnit || undefined
14934    };
14935    const backgroundImage = url ? `url($url})` : undefined;
14936    const backgroundPosition = mediaPosition(focalPoint);
14937    const bgStyle = {
14938      backgroundColor: overlayColor.color
14939    };
14940    const mediaStyle = {
14941      objectPosition: focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined
14942    };
14943    const hasBackground = !!(url || overlayColor.color || gradientValue);
14944    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId).innerBlocks.length > 0, [clientId]);
14945    const ref = (0,external_wp_element_namespaceObject.useRef)();
14946    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
14947      ref
14948    });
14949  
14950    // Check for fontSize support before we pass a fontSize attribute to the innerBlocks.
14951    const [fontSizes] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.fontSizes');
14952    const hasFontSizes = fontSizes?.length > 0;
14953    const innerBlocksTemplate = getInnerBlocksTemplate({
14954      fontSize: hasFontSizes ? 'large' : undefined
14955    });
14956    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
14957      className: 'wp-block-cover__inner-container'
14958    }, {
14959      // Avoid template sync when the `templateLock` value is `all` or `contentOnly`.
14960      // See: https://github.com/WordPress/gutenberg/pull/45632
14961      template: !hasInnerBlocks ? innerBlocksTemplate : undefined,
14962      templateInsertUpdatesSelection: true,
14963      allowedBlocks,
14964      templateLock,
14965      dropZoneElement: ref.current
14966    });
14967    const mediaElement = (0,external_wp_element_namespaceObject.useRef)();
14968    const currentSettings = {
14969      isVideoBackground,
14970      isImageBackground,
14971      mediaElement,
14972      hasInnerBlocks,
14973      url,
14974      isImgElement,
14975      overlayColor
14976    };
14977    const toggleUseFeaturedImage = async () => {
14978      const newUseFeaturedImage = !useFeaturedImage;
14979      const averageBackgroundColor = newUseFeaturedImage ? await getMediaColor(mediaUrl) : DEFAULT_BACKGROUND_COLOR;
14980      const newOverlayColor = !isUserOverlayColor ? averageBackgroundColor : overlayColor.color;
14981      if (!isUserOverlayColor) {
14982        if (newUseFeaturedImage) {
14983          setOverlayColor(newOverlayColor);
14984        } else {
14985          setOverlayColor(undefined);
14986        }
14987  
14988        // Make undo revert the next setAttributes and the previous setOverlayColor.
14989        __unstableMarkNextChangeAsNotPersistent();
14990      }
14991      const newDimRatio = dimRatio === 100 ? 50 : dimRatio;
14992      const newIsDark = compositeIsDark(newDimRatio, newOverlayColor, averageBackgroundColor);
14993      setAttributes({
14994        id: undefined,
14995        url: undefined,
14996        useFeaturedImage: newUseFeaturedImage,
14997        dimRatio: newDimRatio,
14998        backgroundType: useFeaturedImage ? IMAGE_BACKGROUND_TYPE : undefined,
14999        isDark: newIsDark
15000      });
15001    };
15002    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverBlockControls, {
15003      attributes: attributes,
15004      setAttributes: setAttributes,
15005      onSelectMedia: onSelectMedia,
15006      currentSettings: currentSettings,
15007      toggleUseFeaturedImage: toggleUseFeaturedImage,
15008      onClearMedia: onClearMedia
15009    });
15010    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverInspectorControls, {
15011      attributes: attributes,
15012      setAttributes: setAttributes,
15013      clientId: clientId,
15014      setOverlayColor: onSetOverlayColor,
15015      coverRef: ref,
15016      currentSettings: currentSettings,
15017      toggleUseFeaturedImage: toggleUseFeaturedImage,
15018      updateDimRatio: onUpdateDimRatio,
15019      onClearMedia: onClearMedia
15020    });
15021    const resizableCoverProps = {
15022      className: 'block-library-cover__resize-container',
15023      clientId,
15024      height,
15025      minHeight: minHeightWithUnit,
15026      onResizeStart: () => {
15027        setAttributes({
15028          minHeightUnit: 'px'
15029        });
15030        toggleSelection(false);
15031      },
15032      onResize: value => {
15033        setAttributes({
15034          minHeight: value
15035        });
15036      },
15037      onResizeStop: newMinHeight => {
15038        toggleSelection(true);
15039        setAttributes({
15040          minHeight: newMinHeight
15041        });
15042      },
15043      // Hide the resize handle if an aspect ratio is set, as the aspect ratio takes precedence.
15044      showHandle: !attributes.style?.dimensions?.aspectRatio ? true : false,
15045      size: resizableBoxDimensions,
15046      width
15047    };
15048    if (!useFeaturedImage && !hasInnerBlocks && !hasBackground) {
15049      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
15050        children: [blockControls, inspectorControls, hasNonContentControls && isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableCoverPopover, {
15051          ...resizableCoverProps
15052        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
15053          ...blockProps,
15054          className: dist_clsx('is-placeholder', blockProps.className),
15055          style: {
15056            ...blockProps.style,
15057            minHeight: minHeightWithUnit || undefined
15058          },
15059          children: [resizeListener, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverPlaceholder, {
15060            onSelectMedia: onSelectMedia,
15061            onError: onUploadError,
15062            toggleUseFeaturedImage: toggleUseFeaturedImage,
15063            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15064              className: "wp-block-cover__placeholder-background-options",
15065              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ColorPalette, {
15066                disableCustomColors: true,
15067                value: overlayColor.color,
15068                onChange: onSetOverlayColor,
15069                clearable: false
15070              })
15071            })
15072          })]
15073        })]
15074      });
15075    }
15076    const classes = dist_clsx({
15077      'is-dark-theme': isDark,
15078      'is-light': !isDark,
15079      'is-transient': isUploadingMedia,
15080      'has-parallax': hasParallax,
15081      'is-repeated': isRepeated,
15082      'has-custom-content-position': !isContentPositionCenter(contentPosition)
15083    }, getPositionClassName(contentPosition));
15084    const showOverlay = url || !useFeaturedImage || useFeaturedImage && !url;
15085    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
15086      children: [blockControls, inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
15087        ...blockProps,
15088        className: dist_clsx(classes, blockProps.className),
15089        style: {
15090          ...style,
15091          ...blockProps.style
15092        },
15093        "data-url": url,
15094        children: [resizeListener, showOverlay && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
15095          "aria-hidden": "true",
15096          className: dist_clsx('wp-block-cover__background', dimRatioToClass(dimRatio), {
15097            [overlayColor.class]: overlayColor.class,
15098            'has-background-dim': dimRatio !== undefined,
15099            // For backwards compatibility. Former versions of the Cover Block applied
15100            // `.wp-block-cover__gradient-background` in the presence of
15101            // media, a gradient and a dim.
15102            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
15103            'has-background-gradient': gradientValue,
15104            [gradientClass]: gradientClass
15105          }),
15106          style: {
15107            backgroundImage: gradientValue,
15108            ...bgStyle
15109          }
15110        }), !url && useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
15111          className: "wp-block-cover__image--placeholder-image",
15112          withIllustration: true
15113        }), url && isImageBackground && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
15114          ref: mediaElement,
15115          className: "wp-block-cover__image-background",
15116          alt: alt,
15117          src: url,
15118          style: mediaStyle
15119        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15120          ref: mediaElement,
15121          role: alt ? 'img' : undefined,
15122          "aria-label": alt ? alt : undefined,
15123          className: dist_clsx(classes, 'wp-block-cover__image-background'),
15124          style: {
15125            backgroundImage,
15126            backgroundPosition
15127          }
15128        })), url && isVideoBackground && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
15129          ref: mediaElement,
15130          className: "wp-block-cover__video-background",
15131          autoPlay: true,
15132          muted: true,
15133          loop: true,
15134          src: url,
15135          style: mediaStyle
15136        }), isUploadingMedia && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverPlaceholder, {
15137          disableMediaButtons: true,
15138          onSelectMedia: onSelectMedia,
15139          onError: onUploadError,
15140          toggleUseFeaturedImage: toggleUseFeaturedImage
15141        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15142          ...innerBlocksProps
15143        })]
15144      }), hasNonContentControls && isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableCoverPopover, {
15145        ...resizableCoverProps
15146      })]
15147    });
15148  }
15149  /* harmony default export */ const cover_edit = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
15150    overlayColor: 'background-color'
15151  })])(CoverEdit));
15152  
15153  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/save.js
15154  /**
15155   * External dependencies
15156   */
15157  
15158  
15159  /**
15160   * WordPress dependencies
15161   */
15162  
15163  
15164  /**
15165   * Internal dependencies
15166   */
15167  
15168  
15169  
15170  function cover_save_save({
15171    attributes
15172  }) {
15173    const {
15174      backgroundType,
15175      gradient,
15176      contentPosition,
15177      customGradient,
15178      customOverlayColor,
15179      dimRatio,
15180      focalPoint,
15181      useFeaturedImage,
15182      hasParallax,
15183      isDark,
15184      isRepeated,
15185      overlayColor,
15186      url,
15187      alt,
15188      id,
15189      minHeight: minHeightProp,
15190      minHeightUnit,
15191      tagName: Tag
15192    } = attributes;
15193    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
15194    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
15195    const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
15196    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
15197    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
15198    const isImgElement = !(hasParallax || isRepeated);
15199    const style = {
15200      minHeight: minHeight || undefined
15201    };
15202    const bgStyle = {
15203      backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
15204      background: customGradient ? customGradient : undefined
15205    };
15206    const objectPosition =
15207    // prettier-ignore
15208    focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
15209    const backgroundImage = url ? `url($url})` : undefined;
15210    const backgroundPosition = mediaPosition(focalPoint);
15211    const classes = dist_clsx({
15212      'is-light': !isDark,
15213      'has-parallax': hasParallax,
15214      'is-repeated': isRepeated,
15215      'has-custom-content-position': !isContentPositionCenter(contentPosition)
15216    }, getPositionClassName(contentPosition));
15217    const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
15218      'has-parallax': hasParallax,
15219      'is-repeated': isRepeated
15220    });
15221    const gradientValue = gradient || customGradient;
15222    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
15223      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
15224        className: classes,
15225        style
15226      }),
15227      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
15228        "aria-hidden": "true",
15229        className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
15230          'has-background-dim': dimRatio !== undefined,
15231          // For backwards compatibility. Former versions of the Cover Block applied
15232          // `.wp-block-cover__gradient-background` in the presence of
15233          // media, a gradient and a dim.
15234          'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
15235          'has-background-gradient': gradientValue,
15236          [gradientClass]: gradientClass
15237        }),
15238        style: bgStyle
15239      }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
15240        className: imgClasses,
15241        alt: alt,
15242        src: url,
15243        style: {
15244          objectPosition
15245        },
15246        "data-object-fit": "cover",
15247        "data-object-position": objectPosition
15248      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15249        role: alt ? 'img' : undefined,
15250        "aria-label": alt ? alt : undefined,
15251        className: imgClasses,
15252        style: {
15253          backgroundPosition,
15254          backgroundImage
15255        }
15256      })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
15257        className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
15258        autoPlay: true,
15259        muted: true,
15260        loop: true,
15261        playsInline: true,
15262        src: url,
15263        style: {
15264          objectPosition
15265        },
15266        "data-object-fit": "cover",
15267        "data-object-position": objectPosition
15268      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15269        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
15270          className: 'wp-block-cover__inner-container'
15271        })
15272      })]
15273    });
15274  }
15275  
15276  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/transforms.js
15277  /**
15278   * WordPress dependencies
15279   */
15280  
15281  
15282  
15283  /**
15284   * Internal dependencies
15285   */
15286  
15287  
15288  const {
15289    cleanEmptyObject: transforms_cleanEmptyObject
15290  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
15291  const cover_transforms_transforms = {
15292    from: [{
15293      type: 'block',
15294      blocks: ['core/image'],
15295      transform: ({
15296        caption,
15297        url,
15298        alt,
15299        align,
15300        id,
15301        anchor,
15302        style
15303      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
15304        dimRatio: 50,
15305        url,
15306        alt,
15307        align,
15308        id,
15309        anchor,
15310        style: {
15311          color: {
15312            duotone: style?.color?.duotone
15313          }
15314        }
15315      }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
15316        content: caption,
15317        fontSize: 'large',
15318        align: 'center'
15319      })])
15320    }, {
15321      type: 'block',
15322      blocks: ['core/video'],
15323      transform: ({
15324        caption,
15325        src,
15326        align,
15327        id,
15328        anchor
15329      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
15330        dimRatio: 50,
15331        url: src,
15332        align,
15333        id,
15334        backgroundType: VIDEO_BACKGROUND_TYPE,
15335        anchor
15336      }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
15337        content: caption,
15338        fontSize: 'large',
15339        align: 'center'
15340      })])
15341    }, {
15342      type: 'block',
15343      blocks: ['core/group'],
15344      transform: (attributes, innerBlocks) => {
15345        const {
15346          align,
15347          anchor,
15348          backgroundColor,
15349          gradient,
15350          style
15351        } = attributes;
15352  
15353        // If the Group block being transformed has a Cover block as its
15354        // only child return that Cover block.
15355        if (innerBlocks?.length === 1 && innerBlocks[0]?.name === 'core/cover') {
15356          return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', innerBlocks[0].attributes, innerBlocks[0].innerBlocks);
15357        }
15358  
15359        // If no background or gradient color is provided, default to 50% opacity.
15360        // This matches the styling of a Cover block with a background image,
15361        // in the state where a background image has been removed.
15362        const dimRatio = backgroundColor || gradient || style?.color?.background || style?.color?.gradient ? undefined : 50;
15363  
15364        // Move the background or gradient color to the parent Cover block.
15365        const parentAttributes = {
15366          align,
15367          anchor,
15368          dimRatio,
15369          overlayColor: backgroundColor,
15370          customOverlayColor: style?.color?.background,
15371          gradient,
15372          customGradient: style?.color?.gradient
15373        };
15374        const attributesWithoutBackgroundColors = {
15375          ...attributes,
15376          backgroundColor: undefined,
15377          gradient: undefined,
15378          style: transforms_cleanEmptyObject({
15379            ...attributes?.style,
15380            color: style?.color ? {
15381              ...style?.color,
15382              background: undefined,
15383              gradient: undefined
15384            } : undefined
15385          })
15386        };
15387  
15388        // Preserve the block by nesting it within the Cover block,
15389        // instead of converting the Group block directly to the Cover block.
15390        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', parentAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/group', attributesWithoutBackgroundColors, innerBlocks)]);
15391      }
15392    }],
15393    to: [{
15394      type: 'block',
15395      blocks: ['core/image'],
15396      isMatch: ({
15397        backgroundType,
15398        url,
15399        overlayColor,
15400        customOverlayColor,
15401        gradient,
15402        customGradient
15403      }) => {
15404        if (url) {
15405          // If a url exists the transform could happen if that URL represents an image background.
15406          return backgroundType === IMAGE_BACKGROUND_TYPE;
15407        }
15408        // If a url is not set the transform could happen if the cover has no background color or gradient;
15409        return !overlayColor && !customOverlayColor && !gradient && !customGradient;
15410      },
15411      transform: ({
15412        title,
15413        url,
15414        alt,
15415        align,
15416        id,
15417        anchor,
15418        style
15419      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
15420        caption: title,
15421        url,
15422        alt,
15423        align,
15424        id,
15425        anchor,
15426        style: {
15427          color: {
15428            duotone: style?.color?.duotone
15429          }
15430        }
15431      })
15432    }, {
15433      type: 'block',
15434      blocks: ['core/video'],
15435      isMatch: ({
15436        backgroundType,
15437        url,
15438        overlayColor,
15439        customOverlayColor,
15440        gradient,
15441        customGradient
15442      }) => {
15443        if (url) {
15444          // If a url exists the transform could happen if that URL represents a video background.
15445          return backgroundType === VIDEO_BACKGROUND_TYPE;
15446        }
15447        // If a url is not set the transform could happen if the cover has no background color or gradient;
15448        return !overlayColor && !customOverlayColor && !gradient && !customGradient;
15449      },
15450      transform: ({
15451        title,
15452        url,
15453        align,
15454        id,
15455        anchor
15456      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
15457        caption: title,
15458        src: url,
15459        id,
15460        align,
15461        anchor
15462      })
15463    }, {
15464      type: 'block',
15465      blocks: ['core/group'],
15466      isMatch: ({
15467        url,
15468        useFeaturedImage
15469      }) => {
15470        // If the Cover block uses background media, skip this transform,
15471        // and instead use the Group block's default transform.
15472        if (url || useFeaturedImage) {
15473          return false;
15474        }
15475        return true;
15476      },
15477      transform: (attributes, innerBlocks) => {
15478        // Convert Cover overlay colors to comparable Group background colors.
15479        const transformedColorAttributes = {
15480          backgroundColor: attributes?.overlayColor,
15481          gradient: attributes?.gradient,
15482          style: transforms_cleanEmptyObject({
15483            ...attributes?.style,
15484            color: attributes?.customOverlayColor || attributes?.customGradient || attributes?.style?.color ? {
15485              background: attributes?.customOverlayColor,
15486              gradient: attributes?.customGradient,
15487              ...attributes?.style?.color
15488            } : undefined
15489          })
15490        };
15491  
15492        // If the Cover block contains only a single Group block as a direct child,
15493        // then attempt to merge the Cover's background colors with the child Group block,
15494        // and remove the Cover block as the wrapper.
15495        if (innerBlocks?.length === 1 && innerBlocks[0]?.name === 'core/group') {
15496          const groupAttributes = transforms_cleanEmptyObject(innerBlocks[0].attributes || {});
15497  
15498          // If the Group block contains any kind of background color or gradient,
15499          // skip merging Cover background colors, and preserve the Group block's colors.
15500          if (groupAttributes?.backgroundColor || groupAttributes?.gradient || groupAttributes?.style?.color?.background || groupAttributes?.style?.color?.gradient) {
15501            return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', groupAttributes, innerBlocks[0]?.innerBlocks);
15502          }
15503          return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
15504            ...transformedColorAttributes,
15505            ...groupAttributes,
15506            style: transforms_cleanEmptyObject({
15507              ...groupAttributes?.style,
15508              color: transformedColorAttributes?.style?.color || groupAttributes?.style?.color ? {
15509                ...transformedColorAttributes?.style?.color,
15510                ...groupAttributes?.style?.color
15511              } : undefined
15512            })
15513          }, innerBlocks[0]?.innerBlocks);
15514        }
15515  
15516        // In all other cases, transform the Cover block directly to a Group block.
15517        return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
15518          ...attributes,
15519          ...transformedColorAttributes
15520        }, innerBlocks);
15521      }
15522    }]
15523  };
15524  /* harmony default export */ const cover_transforms = (cover_transforms_transforms);
15525  
15526  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/variations.js
15527  /**
15528   * WordPress dependencies
15529   */
15530  
15531  
15532  const cover_variations_variations = [{
15533    name: 'cover',
15534    title: (0,external_wp_i18n_namespaceObject.__)('Cover'),
15535    description: (0,external_wp_i18n_namespaceObject.__)('Add an image or video with a text overlay.'),
15536    attributes: {
15537      layout: {
15538        type: 'constrained'
15539      }
15540    },
15541    isDefault: true,
15542    icon: library_cover
15543  }];
15544  /* harmony default export */ const cover_variations = (cover_variations_variations);
15545  
15546  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/index.js
15547  /**
15548   * WordPress dependencies
15549   */
15550  
15551  
15552  
15553  /**
15554   * Internal dependencies
15555   */
15556  
15557  
15558  
15559  const cover_metadata = {
15560    $schema: "https://schemas.wp.org/trunk/block.json",
15561    apiVersion: 3,
15562    name: "core/cover",
15563    title: "Cover",
15564    category: "media",
15565    description: "Add an image or video with a text overlay.",
15566    textdomain: "default",
15567    attributes: {
15568      url: {
15569        type: "string"
15570      },
15571      useFeaturedImage: {
15572        type: "boolean",
15573        "default": false
15574      },
15575      id: {
15576        type: "number"
15577      },
15578      alt: {
15579        type: "string",
15580        "default": ""
15581      },
15582      hasParallax: {
15583        type: "boolean",
15584        "default": false
15585      },
15586      isRepeated: {
15587        type: "boolean",
15588        "default": false
15589      },
15590      dimRatio: {
15591        type: "number",
15592        "default": 100
15593      },
15594      overlayColor: {
15595        type: "string"
15596      },
15597      customOverlayColor: {
15598        type: "string"
15599      },
15600      isUserOverlayColor: {
15601        type: "boolean"
15602      },
15603      backgroundType: {
15604        type: "string",
15605        "default": "image"
15606      },
15607      focalPoint: {
15608        type: "object"
15609      },
15610      minHeight: {
15611        type: "number"
15612      },
15613      minHeightUnit: {
15614        type: "string"
15615      },
15616      gradient: {
15617        type: "string"
15618      },
15619      customGradient: {
15620        type: "string"
15621      },
15622      contentPosition: {
15623        type: "string"
15624      },
15625      isDark: {
15626        type: "boolean",
15627        "default": true
15628      },
15629      allowedBlocks: {
15630        type: "array"
15631      },
15632      templateLock: {
15633        type: ["string", "boolean"],
15634        "enum": ["all", "insert", "contentOnly", false]
15635      },
15636      tagName: {
15637        type: "string",
15638        "default": "div"
15639      }
15640    },
15641    usesContext: ["postId", "postType"],
15642    supports: {
15643      anchor: true,
15644      align: true,
15645      html: false,
15646      shadow: true,
15647      spacing: {
15648        padding: true,
15649        margin: ["top", "bottom"],
15650        blockGap: true,
15651        __experimentalDefaultControls: {
15652          padding: true,
15653          blockGap: true
15654        }
15655      },
15656      __experimentalBorder: {
15657        color: true,
15658        radius: true,
15659        style: true,
15660        width: true,
15661        __experimentalDefaultControls: {
15662          color: true,
15663          radius: true,
15664          style: true,
15665          width: true
15666        }
15667      },
15668      color: {
15669        __experimentalDuotone: "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
15670        heading: true,
15671        text: true,
15672        background: false,
15673        __experimentalSkipSerialization: ["gradients"],
15674        enableContrastChecker: false
15675      },
15676      dimensions: {
15677        aspectRatio: true
15678      },
15679      typography: {
15680        fontSize: true,
15681        lineHeight: true,
15682        __experimentalFontFamily: true,
15683        __experimentalFontWeight: true,
15684        __experimentalFontStyle: true,
15685        __experimentalTextTransform: true,
15686        __experimentalTextDecoration: true,
15687        __experimentalLetterSpacing: true,
15688        __experimentalDefaultControls: {
15689          fontSize: true
15690        }
15691      },
15692      layout: {
15693        allowJustification: false
15694      },
15695      interactivity: {
15696        clientNavigation: true
15697      }
15698    },
15699    editorStyle: "wp-block-cover-editor",
15700    style: "wp-block-cover"
15701  };
15702  
15703  
15704  
15705  const {
15706    name: cover_name
15707  } = cover_metadata;
15708  
15709  const cover_settings = {
15710    icon: library_cover,
15711    example: {
15712      attributes: {
15713        customOverlayColor: '#065174',
15714        dimRatio: 40,
15715        url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
15716      },
15717      innerBlocks: [{
15718        name: 'core/paragraph',
15719        attributes: {
15720          content: (0,external_wp_i18n_namespaceObject.__)('<strong>Snow Patrol</strong>'),
15721          align: 'center',
15722          style: {
15723            typography: {
15724              fontSize: 48
15725            },
15726            color: {
15727              text: 'white'
15728            }
15729          }
15730        }
15731      }]
15732    },
15733    transforms: cover_transforms,
15734    save: cover_save_save,
15735    edit: cover_edit,
15736    deprecated: cover_deprecated,
15737    variations: cover_variations
15738  };
15739  const cover_init = () => initBlock({
15740    name: cover_name,
15741    metadata: cover_metadata,
15742    settings: cover_settings
15743  });
15744  
15745  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/details.js
15746  /**
15747   * WordPress dependencies
15748   */
15749  
15750  
15751  
15752  const details = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
15753    viewBox: "0 0 24 24",
15754    xmlns: "http://www.w3.org/2000/svg",
15755    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
15756      d: "M4 16h10v1.5H4V16Zm0-4.5h16V13H4v-1.5ZM10 7h10v1.5H10V7Z",
15757      fillRule: "evenodd",
15758      clipRule: "evenodd"
15759    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
15760      d: "m4 5.25 4 2.5-4 2.5v-5Z"
15761    })]
15762  });
15763  /* harmony default export */ const library_details = (details);
15764  
15765  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/details/edit.js
15766  /**
15767   * WordPress dependencies
15768   */
15769  
15770  
15771  
15772  
15773  
15774  
15775  
15776  const details_edit_TEMPLATE = [['core/paragraph', {
15777    placeholder: (0,external_wp_i18n_namespaceObject.__)('Type / to add a hidden block')
15778  }]];
15779  function DetailsEdit({
15780    attributes,
15781    setAttributes,
15782    clientId
15783  }) {
15784    const {
15785      showContent,
15786      summary
15787    } = attributes;
15788    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
15789    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
15790      template: details_edit_TEMPLATE,
15791      __experimentalCaptureToolbars: true
15792    });
15793  
15794    // Check if either the block or the inner blocks are selected.
15795    const hasSelection = (0,external_wp_data_namespaceObject.useSelect)(select => {
15796      const {
15797        isBlockSelected,
15798        hasSelectedInnerBlock
15799      } = select(external_wp_blockEditor_namespaceObject.store);
15800      /* Sets deep to true to also find blocks inside the details content block. */
15801      return hasSelectedInnerBlock(clientId, true) || isBlockSelected(clientId);
15802    }, [clientId]);
15803    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
15804      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
15805        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
15806          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
15807          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
15808            __nextHasNoMarginBottom: true,
15809            label: (0,external_wp_i18n_namespaceObject.__)('Open by default'),
15810            checked: showContent,
15811            onChange: () => setAttributes({
15812              showContent: !showContent
15813            })
15814          })
15815        })
15816      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("details", {
15817        ...innerBlocksProps,
15818        open: hasSelection || showContent,
15819        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("summary", {
15820          onClick: event => event.preventDefault(),
15821          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
15822            identifier: "summary",
15823            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Write summary'),
15824            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write summary…'),
15825            allowedFormats: [],
15826            withoutInteractiveFormatting: true,
15827            value: summary,
15828            onChange: newSummary => setAttributes({
15829              summary: newSummary
15830            })
15831          })
15832        }), innerBlocksProps.children]
15833      })]
15834    });
15835  }
15836  /* harmony default export */ const details_edit = (DetailsEdit);
15837  
15838  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/details/save.js
15839  /**
15840   * WordPress dependencies
15841   */
15842  
15843  
15844  
15845  function details_save_save({
15846    attributes
15847  }) {
15848    const {
15849      showContent
15850    } = attributes;
15851    const summary = attributes.summary ? attributes.summary : 'Details';
15852    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
15853    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("details", {
15854      ...blockProps,
15855      open: showContent,
15856      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("summary", {
15857        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
15858          value: summary
15859        })
15860      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})]
15861    });
15862  }
15863  
15864  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/details/transforms.js
15865  /**
15866   * WordPress dependencies
15867   */
15868  
15869  /* harmony default export */ const details_transforms = ({
15870    from: [{
15871      type: 'block',
15872      isMultiBlock: true,
15873      blocks: ['*'],
15874      isMatch({}, blocks) {
15875        return !(blocks.length === 1 && blocks[0].name === 'core/details');
15876      },
15877      __experimentalConvert(blocks) {
15878        return (0,external_wp_blocks_namespaceObject.createBlock)('core/details', {}, blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)));
15879      }
15880    }]
15881  });
15882  
15883  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/details/index.js
15884  /**
15885   * WordPress dependencies
15886   */
15887  
15888  
15889  
15890  /**
15891   * Internal dependencies
15892   */
15893  
15894  const details_metadata = {
15895    $schema: "https://schemas.wp.org/trunk/block.json",
15896    apiVersion: 3,
15897    name: "core/details",
15898    title: "Details",
15899    category: "text",
15900    description: "Hide and show additional content.",
15901    keywords: ["accordion", "summary", "toggle", "disclosure"],
15902    textdomain: "default",
15903    attributes: {
15904      showContent: {
15905        type: "boolean",
15906        "default": false
15907      },
15908      summary: {
15909        type: "rich-text",
15910        source: "rich-text",
15911        selector: "summary"
15912      }
15913    },
15914    supports: {
15915      __experimentalOnEnter: true,
15916      align: ["wide", "full"],
15917      color: {
15918        gradients: true,
15919        link: true,
15920        __experimentalDefaultControls: {
15921          background: true,
15922          text: true
15923        }
15924      },
15925      __experimentalBorder: {
15926        color: true,
15927        width: true,
15928        style: true
15929      },
15930      html: false,
15931      spacing: {
15932        margin: true,
15933        padding: true,
15934        blockGap: true,
15935        __experimentalDefaultControls: {
15936          margin: false,
15937          padding: false
15938        }
15939      },
15940      typography: {
15941        fontSize: true,
15942        lineHeight: true,
15943        __experimentalFontFamily: true,
15944        __experimentalFontWeight: true,
15945        __experimentalFontStyle: true,
15946        __experimentalTextTransform: true,
15947        __experimentalTextDecoration: true,
15948        __experimentalLetterSpacing: true,
15949        __experimentalDefaultControls: {
15950          fontSize: true
15951        }
15952      },
15953      layout: {
15954        allowEditing: false
15955      },
15956      interactivity: {
15957        clientNavigation: true
15958      }
15959    },
15960    editorStyle: "wp-block-details-editor",
15961    style: "wp-block-details"
15962  };
15963  
15964  
15965  
15966  const {
15967    name: details_name
15968  } = details_metadata;
15969  
15970  const details_settings = {
15971    icon: library_details,
15972    example: {
15973      attributes: {
15974        summary: 'La Mancha',
15975        showContent: true
15976      },
15977      innerBlocks: [{
15978        name: 'core/paragraph',
15979        attributes: {
15980          content: (0,external_wp_i18n_namespaceObject.__)('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.')
15981        }
15982      }]
15983    },
15984    save: details_save_save,
15985    edit: details_edit,
15986    transforms: details_transforms
15987  };
15988  const details_init = () => initBlock({
15989    name: details_name,
15990    metadata: details_metadata,
15991    settings: details_settings
15992  });
15993  
15994  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js
15995  /**
15996   * WordPress dependencies
15997   */
15998  
15999  
16000  const pencil = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
16001    xmlns: "http://www.w3.org/2000/svg",
16002    viewBox: "0 0 24 24",
16003    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
16004      d: "m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"
16005    })
16006  });
16007  /* harmony default export */ const library_pencil = (pencil);
16008  
16009  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js
16010  /**
16011   * Internal dependencies
16012   */
16013  
16014  
16015  /* harmony default export */ const library_edit = (library_pencil);
16016  
16017  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js
16018  /**
16019   * WordPress dependencies
16020   */
16021  
16022  
16023  
16024  
16025  
16026  
16027  
16028  function getResponsiveHelp(checked) {
16029    return checked ? (0,external_wp_i18n_namespaceObject.__)('This embed will preserve its aspect ratio when the browser is resized.') : (0,external_wp_i18n_namespaceObject.__)('This embed may not preserve its aspect ratio when the browser is resized.');
16030  }
16031  const EmbedControls = ({
16032    blockSupportsResponsive,
16033    showEditButton,
16034    themeSupportsResponsive,
16035    allowResponsive,
16036    toggleResponsive,
16037    switchBackToURLInput
16038  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
16039    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
16040      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
16041        children: showEditButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
16042          className: "components-toolbar__control",
16043          label: (0,external_wp_i18n_namespaceObject.__)('Edit URL'),
16044          icon: library_edit,
16045          onClick: switchBackToURLInput
16046        })
16047      })
16048    }), themeSupportsResponsive && blockSupportsResponsive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16049      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
16050        title: (0,external_wp_i18n_namespaceObject.__)('Media settings'),
16051        className: "blocks-responsive",
16052        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
16053          __nextHasNoMarginBottom: true,
16054          label: (0,external_wp_i18n_namespaceObject.__)('Resize for smaller devices'),
16055          checked: allowResponsive,
16056          help: getResponsiveHelp,
16057          onChange: toggleResponsive
16058        })
16059      })
16060    })]
16061  });
16062  /* harmony default export */ const embed_controls = (EmbedControls);
16063  
16064  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/icons.js
16065  /**
16066   * WordPress dependencies
16067   */
16068  
16069  
16070  
16071  const embedContentIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16072    viewBox: "0 0 24 24",
16073    xmlns: "http://www.w3.org/2000/svg",
16074    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16075      d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z"
16076    })
16077  });
16078  const embedAudioIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16079    viewBox: "0 0 24 24",
16080    xmlns: "http://www.w3.org/2000/svg",
16081    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16082      d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z"
16083    })
16084  });
16085  const embedPhotoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16086    viewBox: "0 0 24 24",
16087    xmlns: "http://www.w3.org/2000/svg",
16088    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16089      d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"
16090    })
16091  });
16092  const embedVideoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16093    viewBox: "0 0 24 24",
16094    xmlns: "http://www.w3.org/2000/svg",
16095    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16096      d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z"
16097    })
16098  });
16099  const embedTwitterIcon = {
16100    foreground: '#1da1f2',
16101    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16102      xmlns: "http://www.w3.org/2000/svg",
16103      viewBox: "0 0 24 24",
16104      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16105        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16106          d: "M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z"
16107        })
16108      })
16109    })
16110  };
16111  const embedYouTubeIcon = {
16112    foreground: '#ff0000',
16113    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16114      viewBox: "0 0 24 24",
16115      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16116        d: "M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z"
16117      })
16118    })
16119  };
16120  const embedFacebookIcon = {
16121    foreground: '#3b5998',
16122    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16123      viewBox: "0 0 24 24",
16124      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16125        d: "M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z"
16126      })
16127    })
16128  };
16129  const embedInstagramIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16130    viewBox: "0 0 24 24",
16131    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16132      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16133        d: "M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z"
16134      })
16135    })
16136  });
16137  const embedWordPressIcon = {
16138    foreground: '#0073AA',
16139    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16140      viewBox: "0 0 24 24",
16141      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16142        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16143          d: "M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z"
16144        })
16145      })
16146    })
16147  };
16148  const embedSpotifyIcon = {
16149    foreground: '#1db954',
16150    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16151      viewBox: "0 0 24 24",
16152      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16153        d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325"
16154      })
16155    })
16156  };
16157  const embedFlickrIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16158    viewBox: "0 0 24 24",
16159    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16160      d: "m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z"
16161    })
16162  });
16163  const embedVimeoIcon = {
16164    foreground: '#1ab7ea',
16165    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16166      xmlns: "http://www.w3.org/2000/svg",
16167      viewBox: "0 0 24 24",
16168      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16169        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16170          d: "M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z"
16171        })
16172      })
16173    })
16174  };
16175  const embedRedditIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16176    viewBox: "0 0 24 24",
16177    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16178      d: "M22 12.068a2.184 2.184 0 0 0-2.186-2.186c-.592 0-1.13.233-1.524.609-1.505-1.075-3.566-1.774-5.86-1.864l1.004-4.695 3.261.699A1.56 1.56 0 1 0 18.255 3c-.61-.001-1.147.357-1.398.877l-3.638-.77a.382.382 0 0 0-.287.053.348.348 0 0 0-.161.251l-1.112 5.233c-2.33.072-4.426.77-5.95 1.864a2.201 2.201 0 0 0-1.523-.61 2.184 2.184 0 0 0-.896 4.176c-.036.215-.053.43-.053.663 0 3.37 3.924 6.111 8.763 6.111s8.763-2.724 8.763-6.11c0-.216-.017-.449-.053-.664A2.207 2.207 0 0 0 22 12.068Zm-15.018 1.56a1.56 1.56 0 0 1 3.118 0c0 .86-.699 1.558-1.559 1.558-.86.018-1.559-.699-1.559-1.559Zm8.728 4.139c-1.076 1.075-3.119 1.147-3.71 1.147-.61 0-2.652-.09-3.71-1.147a.4.4 0 0 1 0-.573.4.4 0 0 1 .574 0c.68.68 2.114.914 3.136.914 1.022 0 2.473-.233 3.136-.914a.4.4 0 0 1 .574 0 .436.436 0 0 1 0 .573Zm-.287-2.563a1.56 1.56 0 0 1 0-3.118c.86 0 1.56.699 1.56 1.56 0 .841-.7 1.558-1.56 1.558Z"
16179    })
16180  });
16181  const embedTumblrIcon = {
16182    foreground: '#35465c',
16183    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16184      viewBox: "0 0 24 24",
16185      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16186        d: "M19 3H5a2 2 0 00-2 2v14c0 1.1.9 2 2 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-5.69 14.66c-2.72 0-3.1-1.9-3.1-3.16v-3.56H8.49V8.99c1.7-.62 2.54-1.99 2.64-2.87 0-.06.06-.41.06-.58h1.9v3.1h2.17v2.3h-2.18v3.1c0 .47.13 1.3 1.2 1.26h1.1v2.36c-1.01.02-2.07 0-2.07 0z"
16187      })
16188    })
16189  };
16190  const embedAmazonIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16191    viewBox: "0 0 24 24",
16192    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16193      d: "M18.42 14.58c-.51-.66-1.05-1.23-1.05-2.5V7.87c0-1.8.15-3.45-1.2-4.68-1.05-1.02-2.79-1.35-4.14-1.35-2.6 0-5.52.96-6.12 4.14-.06.36.18.54.4.57l2.66.3c.24-.03.42-.27.48-.5.24-1.12 1.17-1.63 2.2-1.63.56 0 1.22.21 1.55.7.4.56.33 1.31.33 1.97v.36c-1.59.18-3.66.27-5.16.93a4.63 4.63 0 0 0-2.93 4.44c0 2.82 1.8 4.23 4.1 4.23 1.95 0 3.03-.45 4.53-1.98.51.72.66 1.08 1.59 1.83.18.09.45.09.63-.1v.04l2.1-1.8c.24-.21.2-.48.03-.75zm-5.4-1.2c-.45.75-1.14 1.23-1.92 1.23-1.05 0-1.65-.81-1.65-1.98 0-2.31 2.1-2.73 4.08-2.73v.6c0 1.05.03 1.92-.5 2.88z"
16194    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16195      d: "M21.69 19.2a17.62 17.62 0 0 1-21.6-1.57c-.23-.2 0-.5.28-.33a23.88 23.88 0 0 0 20.93 1.3c.45-.19.84.3.39.6z"
16196    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16197      d: "M22.8 17.96c-.36-.45-2.22-.2-3.1-.12-.23.03-.3-.18-.05-.36 1.5-1.05 3.96-.75 4.26-.39.3.36-.1 2.82-1.5 4.02-.21.18-.42.1-.3-.15.3-.8 1.02-2.58.69-3z"
16198    })]
16199  });
16200  const embedAnimotoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16201    viewBox: "0 0 24 24",
16202    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16203      d: "m.0206909 21 19.8160091-13.07806 3.5831 6.20826z",
16204      fill: "#4bc7ee"
16205    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16206      d: "m23.7254 19.0205-10.1074-17.18468c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418h22.5655c1.279 0 1.8019-.8905 1.1599-1.9795z",
16207      fill: "#d4cdcb"
16208    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16209      d: "m.0206909 21 15.2439091-16.38571 4.3029 7.32271z",
16210      fill: "#c3d82e"
16211    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16212      d: "m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z",
16213      fill: "#e4ecb0"
16214    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16215      d: "m.0206909 21 19.5468091-9.063 1.6621 2.8344z",
16216      fill: "#209dbd"
16217    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16218      d: "m.0206909 21 17.9209091-11.82623 1.6259 2.76323z",
16219      fill: "#7cb3c9"
16220    })]
16221  });
16222  const embedDailymotionIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16223    viewBox: "0 0 24 24",
16224    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16225      d: "M11.903 16.568c-1.82 0-3.124-1.281-3.124-2.967a2.987 2.987 0 0 1 2.989-2.989c1.663 0 2.944 1.304 2.944 3.034 0 1.663-1.281 2.922-2.81 2.922ZM17.997 3l-3.308.73v5.107c-.809-1.034-2.045-1.37-3.505-1.37-1.529 0-2.9.561-4.023 1.662-1.259 1.214-1.933 2.764-1.933 4.495 0 1.888.72 3.506 2.113 4.742 1.056.944 2.314 1.415 3.775 1.415 1.438 0 2.517-.382 3.573-1.415v1.415h3.308V3Z",
16226      fill: "#333436"
16227    })
16228  });
16229  const embedPinterestIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16230    width: "24",
16231    height: "24",
16232    viewBox: "0 0 24 24",
16233    version: "1.1",
16234    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16235      d: "M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"
16236    })
16237  });
16238  const embedWolframIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16239    viewBox: "0 0 44 44",
16240    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16241      d: "M32.59521,22.001l4.31885-4.84473-6.34131-1.38379.646-6.459-5.94336,2.61035L22,6.31934l-3.27344,5.60351L12.78418,9.3125l.645,6.458L7.08643,17.15234,11.40479,21.999,7.08594,26.84375l6.34131,1.38379-.64551,6.458,5.94287-2.60938L22,37.68066l3.27344-5.60351,5.94287,2.61035-.64551-6.458,6.34277-1.38183Zm.44385,2.75244L30.772,23.97827l-1.59558-2.07391,1.97888.735Zm-8.82147,6.1579L22.75,33.424V30.88977l1.52228-2.22168ZM18.56226,13.48816,19.819,15.09534l-2.49219-.88642L15.94037,12.337Zm6.87719.00116,2.62043-1.15027-1.38654,1.86981L24.183,15.0946Zm3.59357,2.6029-1.22546,1.7381.07525-2.73486,1.44507-1.94867ZM22,29.33008l-2.16406-3.15686L22,23.23688l2.16406,2.93634Zm-4.25458-9.582-.10528-3.836,3.60986,1.284v3.73242Zm5.00458-2.552,3.60986-1.284-.10528,3.836L22.75,20.92853Zm-7.78174-1.10559-.29352-2.94263,1.44245,1.94739.07519,2.73321Zm2.30982,5.08319,3.50817,1.18164-2.16247,2.9342-3.678-1.08447Zm2.4486,7.49285L21.25,30.88977v2.53485L19.78052,30.91Zm3.48707-6.31121,3.50817-1.18164,2.33228,3.03137-3.678,1.08447Zm10.87219-4.28113-2.714,3.04529L28.16418,19.928l1.92176-2.72565ZM24.06036,12.81769l-2.06012,2.6322-2.059-2.63318L22,9.292ZM9.91455,18.07227l4.00079-.87195,1.921,2.72735-3.20794,1.19019Zm2.93024,4.565,1.9801-.73462L13.228,23.97827l-2.26838.77429Zm-1.55591,3.58819L13.701,25.4021l2.64935.78058-2.14447.67853Zm3.64868,1.977L18.19,27.17334l.08313,3.46332L14.52979,32.2793Zm10.7876,2.43549.08447-3.464,3.25165,1.03052.407,4.07684Zm4.06824-3.77478-2.14545-.68,2.65063-.781,2.41266.825Z"
16242    })
16243  });
16244  const embedPocketCastsIcon = {
16245    foreground: '#f43e37',
16246    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16247      width: "24",
16248      height: "24",
16249      viewBox: "0 0 24 24",
16250      fill: "none",
16251      xmlns: "http://www.w3.org/2000/svg",
16252      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16253        fillRule: "evenodd",
16254        clipRule: "evenodd",
16255        d: "M24,12A12,12,0,1,1,12,0,12,12,0,0,1,24,12Z"
16256      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16257        fillRule: "evenodd",
16258        clipRule: "evenodd",
16259        d: "M2.67,12a9.33,9.33,0,0,1,18.66,0H19a7,7,0,1,0-7,7v2.33A9.33,9.33,0,0,1,2.67,12ZM12,17.6A5.6,5.6,0,1,1,17.6,12h-2A3.56,3.56,0,1,0,12,15.56Z",
16260        fill: "#fff"
16261      })]
16262    })
16263  };
16264  const embedBlueskyIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16265    viewBox: "0 0 24 24",
16266    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16267      fill: "#0a7aff",
16268      d: "M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"
16269    })
16270  });
16271  
16272  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js
16273  /**
16274   * WordPress dependencies
16275   */
16276  
16277  
16278  const EmbedLoading = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16279    className: "wp-block-embed is-loading",
16280    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
16281  });
16282  /* harmony default export */ const embed_loading = (EmbedLoading);
16283  
16284  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js
16285  /**
16286   * WordPress dependencies
16287   */
16288  
16289  
16290  
16291  
16292  
16293  const EmbedPlaceholder = ({
16294    icon,
16295    label,
16296    value,
16297    onSubmit,
16298    onChange,
16299    cannotEmbed,
16300    fallback,
16301    tryAgain
16302  }) => {
16303    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
16304      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
16305        icon: icon,
16306        showColors: true
16307      }),
16308      label: label,
16309      className: "wp-block-embed",
16310      instructions: (0,external_wp_i18n_namespaceObject.__)('Paste a link to the content you want to display on your site.'),
16311      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
16312        onSubmit: onSubmit,
16313        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
16314          __next40pxDefaultSize: true,
16315          type: "url",
16316          value: value || '',
16317          className: "wp-block-embed__placeholder-input",
16318          label: label,
16319          hideLabelFromVision: true,
16320          placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL to embed here…'),
16321          onChange: onChange
16322        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
16323          __next40pxDefaultSize: true,
16324          variant: "primary",
16325          type: "submit",
16326          children: (0,external_wp_i18n_namespaceObject._x)('Embed', 'button label')
16327        })]
16328      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16329        className: "wp-block-embed__learn-more",
16330        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
16331          href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/embeds/'),
16332          children: (0,external_wp_i18n_namespaceObject.__)('Learn more about embeds')
16333        })
16334      }), cannotEmbed && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
16335        spacing: 3,
16336        className: "components-placeholder__error",
16337        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16338          className: "components-placeholder__instructions",
16339          children: (0,external_wp_i18n_namespaceObject.__)('Sorry, this content could not be embedded.')
16340        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
16341          expanded: false,
16342          spacing: 3,
16343          justify: "flex-start",
16344          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
16345            __next40pxDefaultSize: true,
16346            variant: "secondary",
16347            onClick: tryAgain,
16348            children: (0,external_wp_i18n_namespaceObject._x)('Try again', 'button label')
16349          }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
16350            __next40pxDefaultSize: true,
16351            variant: "secondary",
16352            onClick: fallback,
16353            children: (0,external_wp_i18n_namespaceObject._x)('Convert to link', 'button label')
16354          })]
16355        })]
16356      })]
16357    });
16358  };
16359  /* harmony default export */ const embed_placeholder = (EmbedPlaceholder);
16360  
16361  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js
16362  /**
16363   * WordPress dependencies
16364   */
16365  
16366  
16367  
16368  /** @typedef {import('react').SyntheticEvent} SyntheticEvent */
16369  
16370  const attributeMap = {
16371    class: 'className',
16372    frameborder: 'frameBorder',
16373    marginheight: 'marginHeight',
16374    marginwidth: 'marginWidth'
16375  };
16376  function WpEmbedPreview({
16377    html
16378  }) {
16379    const ref = (0,external_wp_element_namespaceObject.useRef)();
16380    const props = (0,external_wp_element_namespaceObject.useMemo)(() => {
16381      const doc = new window.DOMParser().parseFromString(html, 'text/html');
16382      const iframe = doc.querySelector('iframe');
16383      const iframeProps = {};
16384      if (!iframe) {
16385        return iframeProps;
16386      }
16387      Array.from(iframe.attributes).forEach(({
16388        name,
16389        value
16390      }) => {
16391        if (name === 'style') {
16392          return;
16393        }
16394        iframeProps[attributeMap[name] || name] = value;
16395      });
16396      return iframeProps;
16397    }, [html]);
16398    (0,external_wp_element_namespaceObject.useEffect)(() => {
16399      const {
16400        ownerDocument
16401      } = ref.current;
16402      const {
16403        defaultView
16404      } = ownerDocument;
16405  
16406      /**
16407       * Checks for WordPress embed events signaling the height change when
16408       * iframe content loads or iframe's window is resized.  The event is
16409       * sent from WordPress core via the window.postMessage API.
16410       *
16411       * References:
16412       * window.postMessage:
16413       * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
16414       * WordPress core embed-template on load:
16415       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143
16416       * WordPress core embed-template on resize:
16417       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187
16418       *
16419       * @param {MessageEvent} event Message event.
16420       */
16421      function resizeWPembeds({
16422        data: {
16423          secret,
16424          message,
16425          value
16426        } = {}
16427      }) {
16428        if (message !== 'height' || secret !== props['data-secret']) {
16429          return;
16430        }
16431        ref.current.height = value;
16432      }
16433      defaultView.addEventListener('message', resizeWPembeds);
16434      return () => {
16435        defaultView.removeEventListener('message', resizeWPembeds);
16436      };
16437    }, []);
16438    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16439      className: "wp-block-embed__wrapper",
16440      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("iframe", {
16441        ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]),
16442        title: props.title,
16443        ...props
16444      })
16445    });
16446  }
16447  
16448  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js
16449  /**
16450   * Internal dependencies
16451   */
16452  
16453  
16454  /**
16455   * External dependencies
16456   */
16457  
16458  
16459  /**
16460   * WordPress dependencies
16461   */
16462  
16463  
16464  
16465  
16466  
16467  
16468  /**
16469   * Internal dependencies
16470   */
16471  
16472  
16473  
16474  
16475  function EmbedPreview({
16476    preview,
16477    previewable,
16478    url,
16479    type,
16480    isSelected,
16481    className,
16482    icon,
16483    label,
16484    insertBlocksAfter,
16485    attributes,
16486    setAttributes
16487  }) {
16488    const [interactive, setInteractive] = (0,external_wp_element_namespaceObject.useState)(false);
16489    if (!isSelected && interactive) {
16490      // We only want to change this when the block is not selected, because changing it when
16491      // the block becomes selected makes the overlap disappear too early. Hiding the overlay
16492      // happens on mouseup when the overlay is clicked.
16493      setInteractive(false);
16494    }
16495    const hideOverlay = () => {
16496      // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop
16497      // changing, because that happens on mouse down, and the overlay immediately disappears,
16498      // and the mouse event can end up in the preview content. We can't use onClick on
16499      // the overlay to hide it either, because then the editor misses the mouseup event, and
16500      // thinks we're multi-selecting blocks.
16501      setInteractive(true);
16502    };
16503    const {
16504      scripts
16505    } = preview;
16506    const html = 'photo' === type ? getPhotoHtml(preview) : preview.html;
16507    const embedSourceUrl = (0,external_wp_url_namespaceObject.getAuthority)(url);
16508    const iframeTitle = (0,external_wp_i18n_namespaceObject.sprintf)(
16509    // translators: %s: host providing embed content e.g: www.youtube.com
16510    (0,external_wp_i18n_namespaceObject.__)('Embedded content from %s'), embedSourceUrl);
16511    const sandboxClassnames = dist_clsx(type, className, 'wp-block-embed__wrapper');
16512  
16513    // Disabled because the overlay div doesn't actually have a role or functionality
16514    // as far as the user is concerned. We're just catching the first click so that
16515    // the block can be selected without interacting with the embed preview that the overlay covers.
16516    /* eslint-disable jsx-a11y/no-static-element-interactions */
16517    const embedWrapper = 'wp-embed' === type ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WpEmbedPreview, {
16518      html: html
16519    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
16520      className: "wp-block-embed__wrapper",
16521      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SandBox, {
16522        html: html,
16523        scripts: scripts,
16524        title: iframeTitle,
16525        type: sandboxClassnames,
16526        onFocus: hideOverlay
16527      }), !interactive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16528        className: "block-library-embed__interactive-overlay",
16529        onMouseUp: hideOverlay
16530      })]
16531    });
16532    /* eslint-enable jsx-a11y/no-static-element-interactions */
16533  
16534    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
16535      className: dist_clsx(className, 'wp-block-embed', {
16536        'is-type-video': 'video' === type
16537      }),
16538      children: [previewable ? embedWrapper : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
16539        icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
16540          icon: icon,
16541          showColors: true
16542        }),
16543        label: label,
16544        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
16545          className: "components-placeholder__error",
16546          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
16547            href: url,
16548            children: url
16549          })
16550        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
16551          className: "components-placeholder__error",
16552          children: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: host providing embed content e.g: www.youtube.com */
16553          (0,external_wp_i18n_namespaceObject.__)("Embedded content from %s can't be previewed in the editor."), embedSourceUrl)
16554        })]
16555      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
16556        attributes: attributes,
16557        setAttributes: setAttributes,
16558        isSelected: isSelected,
16559        insertBlocksAfter: insertBlocksAfter,
16560        label: (0,external_wp_i18n_namespaceObject.__)('Embed caption text'),
16561        showToolbarButton: isSelected
16562      })]
16563    });
16564  }
16565  
16566  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/edit.js
16567  /* wp:polyfill */
16568  /**
16569   * Internal dependencies
16570   */
16571  
16572  
16573  
16574  
16575  
16576  
16577  
16578  /**
16579   * External dependencies
16580   */
16581  
16582  
16583  /**
16584   * WordPress dependencies
16585   */
16586  
16587  
16588  
16589  
16590  
16591  
16592  
16593  
16594  
16595  
16596  const EmbedEdit = props => {
16597    const {
16598      attributes: {
16599        providerNameSlug,
16600        previewable,
16601        responsive,
16602        url: attributesUrl
16603      },
16604      attributes,
16605      isSelected,
16606      onReplace,
16607      setAttributes,
16608      insertBlocksAfter,
16609      onFocus
16610    } = props;
16611    const defaultEmbedInfo = {
16612      title: (0,external_wp_i18n_namespaceObject._x)('Embed', 'block title'),
16613      icon: embedContentIcon
16614    };
16615    const {
16616      icon,
16617      title
16618    } = getEmbedInfoByProvider(providerNameSlug) || defaultEmbedInfo;
16619    const [url, setURL] = (0,external_wp_element_namespaceObject.useState)(attributesUrl);
16620    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
16621    const {
16622      invalidateResolution
16623    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
16624    const {
16625      preview,
16626      fetching,
16627      themeSupportsResponsive,
16628      cannotEmbed,
16629      hasResolved
16630    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
16631      const {
16632        getEmbedPreview,
16633        isPreviewEmbedFallback,
16634        isRequestingEmbedPreview,
16635        getThemeSupports,
16636        hasFinishedResolution
16637      } = select(external_wp_coreData_namespaceObject.store);
16638      if (!attributesUrl) {
16639        return {
16640          fetching: false,
16641          cannotEmbed: false
16642        };
16643      }
16644      const embedPreview = getEmbedPreview(attributesUrl);
16645      const previewIsFallback = isPreviewEmbedFallback(attributesUrl);
16646  
16647      // The external oEmbed provider does not exist. We got no type info and no html.
16648      const badEmbedProvider = embedPreview?.html === false && embedPreview?.type === undefined;
16649      // Some WordPress URLs that can't be embedded will cause the API to return
16650      // a valid JSON response with no HTML and `data.status` set to 404, rather
16651      // than generating a fallback response as other embeds do.
16652      const wordpressCantEmbed = embedPreview?.data?.status === 404;
16653      const validPreview = !!embedPreview && !badEmbedProvider && !wordpressCantEmbed;
16654      return {
16655        preview: validPreview ? embedPreview : undefined,
16656        fetching: isRequestingEmbedPreview(attributesUrl),
16657        themeSupportsResponsive: getThemeSupports()['responsive-embeds'],
16658        cannotEmbed: !validPreview || previewIsFallback,
16659        hasResolved: hasFinishedResolution('getEmbedPreview', [attributesUrl])
16660      };
16661    }, [attributesUrl]);
16662  
16663    /**
16664     * Returns the attributes derived from the preview, merged with the current attributes.
16665     *
16666     * @return {Object} Merged attributes.
16667     */
16668    const getMergedAttributes = () => getMergedAttributesWithPreview(attributes, preview, title, responsive);
16669    const toggleResponsive = () => {
16670      const {
16671        allowResponsive,
16672        className
16673      } = attributes;
16674      const {
16675        html
16676      } = preview;
16677      const newAllowResponsive = !allowResponsive;
16678      setAttributes({
16679        allowResponsive: newAllowResponsive,
16680        className: getClassNames(html, className, responsive && newAllowResponsive)
16681      });
16682    };
16683    (0,external_wp_element_namespaceObject.useEffect)(() => {
16684      if (preview?.html || !cannotEmbed || !hasResolved) {
16685        return;
16686      }
16687  
16688      // At this stage, we're not fetching the preview and know it can't be embedded,
16689      // so try removing any trailing slash, and resubmit.
16690      const newURL = attributesUrl.replace(/\/$/, '');
16691      setURL(newURL);
16692      setIsEditingURL(false);
16693      setAttributes({
16694        url: newURL
16695      });
16696    }, [preview?.html, attributesUrl, cannotEmbed, hasResolved, setAttributes]);
16697  
16698    // Try a different provider in case the embed url is not supported.
16699    (0,external_wp_element_namespaceObject.useEffect)(() => {
16700      if (!cannotEmbed || fetching || !url) {
16701        return;
16702      }
16703  
16704      // Until X provider is supported in WordPress, as a workaround we use Twitter provider.
16705      if ((0,external_wp_url_namespaceObject.getAuthority)(url) === 'x.com') {
16706        const newURL = new URL(url);
16707        newURL.host = 'twitter.com';
16708        setAttributes({
16709          url: newURL.toString()
16710        });
16711      }
16712    }, [url, cannotEmbed, fetching, setAttributes]);
16713  
16714    // Handle incoming preview.
16715    (0,external_wp_element_namespaceObject.useEffect)(() => {
16716      if (preview && !isEditingURL) {
16717        // When obtaining an incoming preview,
16718        // we set the attributes derived from the preview data.
16719        const mergedAttributes = getMergedAttributes();
16720        setAttributes(mergedAttributes);
16721        if (onReplace) {
16722          const upgradedBlock = createUpgradedEmbedBlock(props, mergedAttributes);
16723          if (upgradedBlock) {
16724            onReplace(upgradedBlock);
16725          }
16726        }
16727      }
16728    }, [preview, isEditingURL]);
16729    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
16730    if (fetching) {
16731      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
16732        ...blockProps,
16733        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_loading, {})
16734      });
16735    }
16736  
16737    // translators: %s: type of embed e.g: "YouTube", "Twitter", etc. "Embed" is used when no specific type exists
16738    const label = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s URL'), title);
16739  
16740    // No preview, or we can't embed the current URL, or we've clicked the edit button.
16741    const showEmbedPlaceholder = !preview || cannotEmbed || isEditingURL;
16742    if (showEmbedPlaceholder) {
16743      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
16744        ...blockProps,
16745        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_placeholder, {
16746          icon: icon,
16747          label: label,
16748          onFocus: onFocus,
16749          onSubmit: event => {
16750            if (event) {
16751              event.preventDefault();
16752            }
16753  
16754            // If the embed URL was changed, we need to reset the aspect ratio class.
16755            // To do this we have to remove the existing ratio class so it can be recalculated.
16756            const blockClass = removeAspectRatioClasses(attributes.className);
16757            setIsEditingURL(false);
16758            setAttributes({
16759              url,
16760              className: blockClass
16761            });
16762          },
16763          value: url,
16764          cannotEmbed: cannotEmbed,
16765          onChange: value => setURL(value),
16766          fallback: () => fallback(url, onReplace),
16767          tryAgain: () => {
16768            invalidateResolution('getEmbedPreview', [url]);
16769          }
16770        })
16771      });
16772    }
16773  
16774    // Even though we set attributes that get derived from the preview,
16775    // we don't access them directly because for the initial render,
16776    // the `setAttributes` call will not have taken effect. If we're
16777    // rendering responsive content, setting the responsive classes
16778    // after the preview has been rendered can result in unwanted
16779    // clipping or scrollbars. The `getAttributesFromPreview` function
16780    // that `getMergedAttributes` uses is memoized so that we're not
16781    // calculating them on every render.
16782    const {
16783      caption,
16784      type,
16785      allowResponsive,
16786      className: classFromPreview
16787    } = getMergedAttributes();
16788    const className = dist_clsx(classFromPreview, props.className);
16789    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
16790      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_controls, {
16791        showEditButton: preview && !cannotEmbed,
16792        themeSupportsResponsive: themeSupportsResponsive,
16793        blockSupportsResponsive: responsive,
16794        allowResponsive: allowResponsive,
16795        toggleResponsive: toggleResponsive,
16796        switchBackToURLInput: () => setIsEditingURL(true)
16797      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
16798        ...blockProps,
16799        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EmbedPreview, {
16800          preview: preview,
16801          previewable: previewable,
16802          className: className,
16803          url: url,
16804          type: type,
16805          caption: caption,
16806          onCaptionChange: value => setAttributes({
16807            caption: value
16808          }),
16809          isSelected: isSelected,
16810          icon: icon,
16811          label: label,
16812          insertBlocksAfter: insertBlocksAfter,
16813          attributes: attributes,
16814          setAttributes: setAttributes
16815        })
16816      })]
16817    });
16818  };
16819  /* harmony default export */ const embed_edit = (EmbedEdit);
16820  
16821  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/save.js
16822  /**
16823   * External dependencies
16824   */
16825  
16826  
16827  /**
16828   * WordPress dependencies
16829   */
16830  
16831  
16832  
16833  function embed_save_save({
16834    attributes
16835  }) {
16836    const {
16837      url,
16838      caption,
16839      type,
16840      providerNameSlug
16841    } = attributes;
16842    if (!url) {
16843      return null;
16844    }
16845    const className = dist_clsx('wp-block-embed', {
16846      [`is-type-$type}`]: type,
16847      [`is-provider-$providerNameSlug}`]: providerNameSlug,
16848      [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
16849    });
16850    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
16851      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
16852        className
16853      }),
16854      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16855        className: "wp-block-embed__wrapper",
16856        children: `\n$url}\n` /* URL needs to be on its own line. */
16857      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
16858        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
16859        tagName: "figcaption",
16860        value: caption
16861      })]
16862    });
16863  }
16864  
16865  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/transforms.js
16866  /**
16867   * WordPress dependencies
16868   */
16869  
16870  
16871  /**
16872   * Internal dependencies
16873   */
16874  const transforms_metadata = {
16875    $schema: "https://schemas.wp.org/trunk/block.json",
16876    apiVersion: 3,
16877    name: "core/embed",
16878    title: "Embed",
16879    category: "embed",
16880    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
16881    textdomain: "default",
16882    attributes: {
16883      url: {
16884        type: "string",
16885        role: "content"
16886      },
16887      caption: {
16888        type: "rich-text",
16889        source: "rich-text",
16890        selector: "figcaption",
16891        role: "content"
16892      },
16893      type: {
16894        type: "string",
16895        role: "content"
16896      },
16897      providerNameSlug: {
16898        type: "string",
16899        role: "content"
16900      },
16901      allowResponsive: {
16902        type: "boolean",
16903        "default": true
16904      },
16905      responsive: {
16906        type: "boolean",
16907        "default": false,
16908        role: "content"
16909      },
16910      previewable: {
16911        type: "boolean",
16912        "default": true,
16913        role: "content"
16914      }
16915    },
16916    supports: {
16917      align: true,
16918      spacing: {
16919        margin: true
16920      },
16921      interactivity: {
16922        clientNavigation: true
16923      }
16924    },
16925    editorStyle: "wp-block-embed-editor",
16926    style: "wp-block-embed"
16927  };
16928  const {
16929    name: EMBED_BLOCK
16930  } = transforms_metadata;
16931  
16932  /**
16933   * Default transforms for generic embeds.
16934   */
16935  const embed_transforms_transforms = {
16936    from: [{
16937      type: 'raw',
16938      isMatch: node => node.nodeName === 'P' && /^\s*(https?:\/\/\S+)\s*$/i.test(node.textContent) && node.textContent?.match(/https/gi)?.length === 1,
16939      transform: node => {
16940        return (0,external_wp_blocks_namespaceObject.createBlock)(EMBED_BLOCK, {
16941          url: node.textContent.trim()
16942        });
16943      }
16944    }],
16945    to: [{
16946      type: 'block',
16947      blocks: ['core/paragraph'],
16948      isMatch: ({
16949        url
16950      }) => !!url,
16951      transform: ({
16952        url,
16953        caption
16954      }) => {
16955        let value = `<a href="$url}">$url}</a>`;
16956        if (caption?.trim()) {
16957          value += `<br />$caption}`;
16958        }
16959        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
16960          content: value
16961        });
16962      }
16963    }]
16964  };
16965  /* harmony default export */ const embed_transforms = (embed_transforms_transforms);
16966  
16967  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/variations.js
16968  /**
16969   * WordPress dependencies
16970   */
16971  
16972  
16973  /**
16974   * Internal dependencies
16975   */
16976  
16977  
16978  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
16979  
16980  function getTitle(providerName) {
16981    return (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: provider name */
16982    (0,external_wp_i18n_namespaceObject.__)('%s Embed'), providerName);
16983  }
16984  
16985  /**
16986   * The embed provider services.
16987   *
16988   * @type {WPBlockVariation[]}
16989   */
16990  const embed_variations_variations = [{
16991    name: 'twitter',
16992    title: getTitle('Twitter'),
16993    icon: embedTwitterIcon,
16994    keywords: ['tweet', (0,external_wp_i18n_namespaceObject.__)('social')],
16995    description: (0,external_wp_i18n_namespaceObject.__)('Embed a tweet.'),
16996    patterns: [/^https?:\/\/(www\.)?twitter\.com\/.+/i],
16997    attributes: {
16998      providerNameSlug: 'twitter',
16999      responsive: true
17000    }
17001  }, {
17002    name: 'youtube',
17003    title: getTitle('YouTube'),
17004    icon: embedYouTubeIcon,
17005    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('video')],
17006    description: (0,external_wp_i18n_namespaceObject.__)('Embed a YouTube video.'),
17007    patterns: [/^https?:\/\/((m|www)\.)?youtube\.com\/.+/i, /^https?:\/\/youtu\.be\/.+/i],
17008    attributes: {
17009      providerNameSlug: 'youtube',
17010      responsive: true
17011    }
17012  }, {
17013    // Deprecate Facebook Embed per FB policy
17014    // See: https://developers.facebook.com/docs/plugins/oembed-legacy
17015    name: 'facebook',
17016    title: getTitle('Facebook'),
17017    icon: embedFacebookIcon,
17018    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
17019    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Facebook post.'),
17020    scope: ['block'],
17021    patterns: [],
17022    attributes: {
17023      providerNameSlug: 'facebook',
17024      previewable: false,
17025      responsive: true
17026    }
17027  }, {
17028    // Deprecate Instagram per FB policy
17029    // See: https://developers.facebook.com/docs/instagram/oembed-legacy
17030    name: 'instagram',
17031    title: getTitle('Instagram'),
17032    icon: embedInstagramIcon,
17033    keywords: [(0,external_wp_i18n_namespaceObject.__)('image'), (0,external_wp_i18n_namespaceObject.__)('social')],
17034    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Instagram post.'),
17035    scope: ['block'],
17036    patterns: [],
17037    attributes: {
17038      providerNameSlug: 'instagram',
17039      responsive: true
17040    }
17041  }, {
17042    name: 'wordpress',
17043    title: getTitle('WordPress'),
17044    icon: embedWordPressIcon,
17045    keywords: [(0,external_wp_i18n_namespaceObject.__)('post'), (0,external_wp_i18n_namespaceObject.__)('blog')],
17046    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress post.'),
17047    attributes: {
17048      providerNameSlug: 'wordpress'
17049    }
17050  }, {
17051    name: 'soundcloud',
17052    title: getTitle('SoundCloud'),
17053    icon: embedAudioIcon,
17054    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17055    description: (0,external_wp_i18n_namespaceObject.__)('Embed SoundCloud content.'),
17056    patterns: [/^https?:\/\/(www\.)?soundcloud\.com\/.+/i],
17057    attributes: {
17058      providerNameSlug: 'soundcloud',
17059      responsive: true
17060    }
17061  }, {
17062    name: 'spotify',
17063    title: getTitle('Spotify'),
17064    icon: embedSpotifyIcon,
17065    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17066    description: (0,external_wp_i18n_namespaceObject.__)('Embed Spotify content.'),
17067    patterns: [/^https?:\/\/(open|play)\.spotify\.com\/.+/i],
17068    attributes: {
17069      providerNameSlug: 'spotify',
17070      responsive: true
17071    }
17072  }, {
17073    name: 'flickr',
17074    title: getTitle('Flickr'),
17075    icon: embedFlickrIcon,
17076    keywords: [(0,external_wp_i18n_namespaceObject.__)('image')],
17077    description: (0,external_wp_i18n_namespaceObject.__)('Embed Flickr content.'),
17078    patterns: [/^https?:\/\/(www\.)?flickr\.com\/.+/i, /^https?:\/\/flic\.kr\/.+/i],
17079    attributes: {
17080      providerNameSlug: 'flickr',
17081      responsive: true
17082    }
17083  }, {
17084    name: 'vimeo',
17085    title: getTitle('Vimeo'),
17086    icon: embedVimeoIcon,
17087    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17088    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Vimeo video.'),
17089    patterns: [/^https?:\/\/(www\.)?vimeo\.com\/.+/i],
17090    attributes: {
17091      providerNameSlug: 'vimeo',
17092      responsive: true
17093    }
17094  }, {
17095    name: 'animoto',
17096    title: getTitle('Animoto'),
17097    icon: embedAnimotoIcon,
17098    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Animoto video.'),
17099    patterns: [/^https?:\/\/(www\.)?(animoto|video214)\.com\/.+/i],
17100    attributes: {
17101      providerNameSlug: 'animoto',
17102      responsive: true
17103    }
17104  }, {
17105    name: 'cloudup',
17106    title: getTitle('Cloudup'),
17107    icon: embedContentIcon,
17108    description: (0,external_wp_i18n_namespaceObject.__)('Embed Cloudup content.'),
17109    patterns: [/^https?:\/\/cloudup\.com\/.+/i],
17110    attributes: {
17111      providerNameSlug: 'cloudup',
17112      responsive: true
17113    }
17114  }, {
17115    // Deprecated since CollegeHumor content is now powered by YouTube.
17116    name: 'collegehumor',
17117    title: getTitle('CollegeHumor'),
17118    icon: embedVideoIcon,
17119    description: (0,external_wp_i18n_namespaceObject.__)('Embed CollegeHumor content.'),
17120    scope: ['block'],
17121    patterns: [],
17122    attributes: {
17123      providerNameSlug: 'collegehumor',
17124      responsive: true
17125    }
17126  }, {
17127    name: 'crowdsignal',
17128    title: getTitle('Crowdsignal'),
17129    icon: embedContentIcon,
17130    keywords: ['polldaddy', (0,external_wp_i18n_namespaceObject.__)('survey')],
17131    description: (0,external_wp_i18n_namespaceObject.__)('Embed Crowdsignal (formerly Polldaddy) content.'),
17132    patterns: [/^https?:\/\/((.+\.)?polldaddy\.com|poll\.fm|.+\.crowdsignal\.net|.+\.survey\.fm)\/.+/i],
17133    attributes: {
17134      providerNameSlug: 'crowdsignal',
17135      responsive: true
17136    }
17137  }, {
17138    name: 'dailymotion',
17139    title: getTitle('Dailymotion'),
17140    icon: embedDailymotionIcon,
17141    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17142    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Dailymotion video.'),
17143    patterns: [/^https?:\/\/(www\.)?dailymotion\.com\/.+/i],
17144    attributes: {
17145      providerNameSlug: 'dailymotion',
17146      responsive: true
17147    }
17148  }, {
17149    name: 'imgur',
17150    title: getTitle('Imgur'),
17151    icon: embedPhotoIcon,
17152    description: (0,external_wp_i18n_namespaceObject.__)('Embed Imgur content.'),
17153    patterns: [/^https?:\/\/(.+\.)?imgur\.com\/.+/i],
17154    attributes: {
17155      providerNameSlug: 'imgur',
17156      responsive: true
17157    }
17158  }, {
17159    name: 'issuu',
17160    title: getTitle('Issuu'),
17161    icon: embedContentIcon,
17162    description: (0,external_wp_i18n_namespaceObject.__)('Embed Issuu content.'),
17163    patterns: [/^https?:\/\/(www\.)?issuu\.com\/.+/i],
17164    attributes: {
17165      providerNameSlug: 'issuu',
17166      responsive: true
17167    }
17168  }, {
17169    name: 'kickstarter',
17170    title: getTitle('Kickstarter'),
17171    icon: embedContentIcon,
17172    description: (0,external_wp_i18n_namespaceObject.__)('Embed Kickstarter content.'),
17173    patterns: [/^https?:\/\/(www\.)?kickstarter\.com\/.+/i, /^https?:\/\/kck\.st\/.+/i],
17174    attributes: {
17175      providerNameSlug: 'kickstarter',
17176      responsive: true
17177    }
17178  }, {
17179    name: 'mixcloud',
17180    title: getTitle('Mixcloud'),
17181    icon: embedAudioIcon,
17182    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17183    description: (0,external_wp_i18n_namespaceObject.__)('Embed Mixcloud content.'),
17184    patterns: [/^https?:\/\/(www\.)?mixcloud\.com\/.+/i],
17185    attributes: {
17186      providerNameSlug: 'mixcloud',
17187      responsive: true
17188    }
17189  }, {
17190    name: 'pocket-casts',
17191    title: getTitle('Pocket Casts'),
17192    icon: embedPocketCastsIcon,
17193    keywords: [(0,external_wp_i18n_namespaceObject.__)('podcast'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17194    description: (0,external_wp_i18n_namespaceObject.__)('Embed a podcast player from Pocket Casts.'),
17195    patterns: [/^https:\/\/pca.st\/\w+/i],
17196    attributes: {
17197      providerNameSlug: 'pocket-casts',
17198      responsive: true
17199    }
17200  }, {
17201    name: 'reddit',
17202    title: getTitle('Reddit'),
17203    icon: embedRedditIcon,
17204    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Reddit thread.'),
17205    patterns: [/^https?:\/\/(www\.)?reddit\.com\/.+/i],
17206    attributes: {
17207      providerNameSlug: 'reddit',
17208      responsive: true
17209    }
17210  }, {
17211    name: 'reverbnation',
17212    title: getTitle('ReverbNation'),
17213    icon: embedAudioIcon,
17214    description: (0,external_wp_i18n_namespaceObject.__)('Embed ReverbNation content.'),
17215    patterns: [/^https?:\/\/(www\.)?reverbnation\.com\/.+/i],
17216    attributes: {
17217      providerNameSlug: 'reverbnation',
17218      responsive: true
17219    }
17220  }, {
17221    name: 'screencast',
17222    title: getTitle('Screencast'),
17223    icon: embedVideoIcon,
17224    description: (0,external_wp_i18n_namespaceObject.__)('Embed Screencast content.'),
17225    patterns: [/^https?:\/\/(www\.)?screencast\.com\/.+/i],
17226    attributes: {
17227      providerNameSlug: 'screencast',
17228      responsive: true
17229    }
17230  }, {
17231    name: 'scribd',
17232    title: getTitle('Scribd'),
17233    icon: embedContentIcon,
17234    description: (0,external_wp_i18n_namespaceObject.__)('Embed Scribd content.'),
17235    patterns: [/^https?:\/\/(www\.)?scribd\.com\/.+/i],
17236    attributes: {
17237      providerNameSlug: 'scribd',
17238      responsive: true
17239    }
17240  }, {
17241    name: 'smugmug',
17242    title: getTitle('SmugMug'),
17243    icon: embedPhotoIcon,
17244    description: (0,external_wp_i18n_namespaceObject.__)('Embed SmugMug content.'),
17245    patterns: [/^https?:\/\/(.+\.)?smugmug\.com\/.*/i],
17246    attributes: {
17247      providerNameSlug: 'smugmug',
17248      previewable: false,
17249      responsive: true
17250    }
17251  }, {
17252    name: 'speaker-deck',
17253    title: getTitle('Speaker Deck'),
17254    icon: embedContentIcon,
17255    description: (0,external_wp_i18n_namespaceObject.__)('Embed Speaker Deck content.'),
17256    patterns: [/^https?:\/\/(www\.)?speakerdeck\.com\/.+/i],
17257    attributes: {
17258      providerNameSlug: 'speaker-deck',
17259      responsive: true
17260    }
17261  }, {
17262    name: 'tiktok',
17263    title: getTitle('TikTok'),
17264    icon: embedVideoIcon,
17265    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17266    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TikTok video.'),
17267    patterns: [/^https?:\/\/(www\.)?tiktok\.com\/.+/i],
17268    attributes: {
17269      providerNameSlug: 'tiktok',
17270      responsive: true
17271    }
17272  }, {
17273    name: 'ted',
17274    title: getTitle('TED'),
17275    icon: embedVideoIcon,
17276    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TED video.'),
17277    patterns: [/^https?:\/\/(www\.|embed\.)?ted\.com\/.+/i],
17278    attributes: {
17279      providerNameSlug: 'ted',
17280      responsive: true
17281    }
17282  }, {
17283    name: 'tumblr',
17284    title: getTitle('Tumblr'),
17285    icon: embedTumblrIcon,
17286    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
17287    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Tumblr post.'),
17288    patterns: [/^https?:\/\/(.+)\.tumblr\.com\/.+/i],
17289    attributes: {
17290      providerNameSlug: 'tumblr',
17291      responsive: true
17292    }
17293  }, {
17294    name: 'videopress',
17295    title: getTitle('VideoPress'),
17296    icon: embedVideoIcon,
17297    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17298    description: (0,external_wp_i18n_namespaceObject.__)('Embed a VideoPress video.'),
17299    patterns: [/^https?:\/\/videopress\.com\/.+/i],
17300    attributes: {
17301      providerNameSlug: 'videopress',
17302      responsive: true
17303    }
17304  }, {
17305    name: 'wordpress-tv',
17306    title: getTitle('WordPress.tv'),
17307    icon: embedVideoIcon,
17308    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress.tv video.'),
17309    patterns: [/^https?:\/\/wordpress\.tv\/.+/i],
17310    attributes: {
17311      providerNameSlug: 'wordpress-tv',
17312      responsive: true
17313    }
17314  }, {
17315    name: 'amazon-kindle',
17316    title: getTitle('Amazon Kindle'),
17317    icon: embedAmazonIcon,
17318    keywords: [(0,external_wp_i18n_namespaceObject.__)('ebook')],
17319    description: (0,external_wp_i18n_namespaceObject.__)('Embed Amazon Kindle content.'),
17320    patterns: [/^https?:\/\/([a-z0-9-]+\.)?(amazon|amzn)(\.[a-z]{2,4})+\/.+/i, /^https?:\/\/(www\.)?(a\.co|z\.cn)\/.+/i],
17321    attributes: {
17322      providerNameSlug: 'amazon-kindle'
17323    }
17324  }, {
17325    name: 'pinterest',
17326    title: getTitle('Pinterest'),
17327    icon: embedPinterestIcon,
17328    keywords: [(0,external_wp_i18n_namespaceObject.__)('social'), (0,external_wp_i18n_namespaceObject.__)('bookmark')],
17329    description: (0,external_wp_i18n_namespaceObject.__)('Embed Pinterest pins, boards, and profiles.'),
17330    patterns: [/^https?:\/\/([a-z]{2}|www)\.pinterest\.com(\.(au|mx))?\/.*/i],
17331    attributes: {
17332      providerNameSlug: 'pinterest'
17333    }
17334  }, {
17335    name: 'wolfram-cloud',
17336    title: getTitle('Wolfram'),
17337    icon: embedWolframIcon,
17338    description: (0,external_wp_i18n_namespaceObject.__)('Embed Wolfram notebook content.'),
17339    patterns: [/^https?:\/\/(www\.)?wolframcloud\.com\/obj\/.+/i],
17340    attributes: {
17341      providerNameSlug: 'wolfram-cloud',
17342      responsive: true
17343    }
17344  }, {
17345    name: 'bluesky',
17346    title: getTitle('Bluesky'),
17347    icon: embedBlueskyIcon,
17348    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Bluesky post.'),
17349    patterns: [/^https?:\/\/bsky\.app\/profile\/.+\/post\/.+/i],
17350    attributes: {
17351      providerNameSlug: 'bluesky'
17352    }
17353  }];
17354  
17355  /**
17356   * Add `isActive` function to all `embed` variations, if not defined.
17357   * `isActive` function is used to find a variation match from a created
17358   *  Block by providing its attributes.
17359   */
17360  embed_variations_variations.forEach(variation => {
17361    if (variation.isActive) {
17362      return;
17363    }
17364    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.providerNameSlug === variationAttributes.providerNameSlug;
17365  });
17366  /* harmony default export */ const embed_variations = (embed_variations_variations);
17367  
17368  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/deprecated.js
17369  /**
17370   * External dependencies
17371   */
17372  
17373  
17374  /**
17375   * Internal dependencies
17376   */
17377  const embed_deprecated_metadata = {
17378    $schema: "https://schemas.wp.org/trunk/block.json",
17379    apiVersion: 3,
17380    name: "core/embed",
17381    title: "Embed",
17382    category: "embed",
17383    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
17384    textdomain: "default",
17385    attributes: {
17386      url: {
17387        type: "string",
17388        role: "content"
17389      },
17390      caption: {
17391        type: "rich-text",
17392        source: "rich-text",
17393        selector: "figcaption",
17394        role: "content"
17395      },
17396      type: {
17397        type: "string",
17398        role: "content"
17399      },
17400      providerNameSlug: {
17401        type: "string",
17402        role: "content"
17403      },
17404      allowResponsive: {
17405        type: "boolean",
17406        "default": true
17407      },
17408      responsive: {
17409        type: "boolean",
17410        "default": false,
17411        role: "content"
17412      },
17413      previewable: {
17414        type: "boolean",
17415        "default": true,
17416        role: "content"
17417      }
17418    },
17419    supports: {
17420      align: true,
17421      spacing: {
17422        margin: true
17423      },
17424      interactivity: {
17425        clientNavigation: true
17426      }
17427    },
17428    editorStyle: "wp-block-embed-editor",
17429    style: "wp-block-embed"
17430  };
17431  /**
17432   * WordPress dependencies
17433   */
17434  
17435  
17436  
17437  const {
17438    attributes: embed_deprecated_blockAttributes
17439  } = embed_deprecated_metadata;
17440  
17441  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
17442  // to the embed figcaption element.
17443  const deprecated_v2 = {
17444    attributes: embed_deprecated_blockAttributes,
17445    save({
17446      attributes
17447    }) {
17448      const {
17449        url,
17450        caption,
17451        type,
17452        providerNameSlug
17453      } = attributes;
17454      if (!url) {
17455        return null;
17456      }
17457      const className = dist_clsx('wp-block-embed', {
17458        [`is-type-$type}`]: type,
17459        [`is-provider-$providerNameSlug}`]: providerNameSlug,
17460        [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
17461      });
17462      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
17463        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
17464          className
17465        }),
17466        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17467          className: "wp-block-embed__wrapper",
17468          children: `\n$url}\n` /* URL needs to be on its own line. */
17469        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17470          tagName: "figcaption",
17471          value: caption
17472        })]
17473      });
17474    }
17475  };
17476  const embed_deprecated_v1 = {
17477    attributes: embed_deprecated_blockAttributes,
17478    save({
17479      attributes: {
17480        url,
17481        caption,
17482        type,
17483        providerNameSlug
17484      }
17485    }) {
17486      if (!url) {
17487        return null;
17488      }
17489      const embedClassName = dist_clsx('wp-block-embed', {
17490        [`is-type-$type}`]: type,
17491        [`is-provider-$providerNameSlug}`]: providerNameSlug
17492      });
17493      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
17494        className: embedClassName,
17495        children: [`\n$url}\n` /* URL needs to be on its own line. */, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17496          tagName: "figcaption",
17497          value: caption
17498        })]
17499      });
17500    }
17501  };
17502  const embed_deprecated_deprecated = [deprecated_v2, embed_deprecated_v1];
17503  /* harmony default export */ const embed_deprecated = (embed_deprecated_deprecated);
17504  
17505  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/index.js
17506  /**
17507   * Internal dependencies
17508   */
17509  
17510  
17511  
17512  const embed_metadata = {
17513    $schema: "https://schemas.wp.org/trunk/block.json",
17514    apiVersion: 3,
17515    name: "core/embed",
17516    title: "Embed",
17517    category: "embed",
17518    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
17519    textdomain: "default",
17520    attributes: {
17521      url: {
17522        type: "string",
17523        role: "content"
17524      },
17525      caption: {
17526        type: "rich-text",
17527        source: "rich-text",
17528        selector: "figcaption",
17529        role: "content"
17530      },
17531      type: {
17532        type: "string",
17533        role: "content"
17534      },
17535      providerNameSlug: {
17536        type: "string",
17537        role: "content"
17538      },
17539      allowResponsive: {
17540        type: "boolean",
17541        "default": true
17542      },
17543      responsive: {
17544        type: "boolean",
17545        "default": false,
17546        role: "content"
17547      },
17548      previewable: {
17549        type: "boolean",
17550        "default": true,
17551        role: "content"
17552      }
17553    },
17554    supports: {
17555      align: true,
17556      spacing: {
17557        margin: true
17558      },
17559      interactivity: {
17560        clientNavigation: true
17561      }
17562    },
17563    editorStyle: "wp-block-embed-editor",
17564    style: "wp-block-embed"
17565  };
17566  
17567  
17568  
17569  
17570  const {
17571    name: embed_name
17572  } = embed_metadata;
17573  
17574  const embed_settings = {
17575    icon: embedContentIcon,
17576    edit: embed_edit,
17577    save: embed_save_save,
17578    transforms: embed_transforms,
17579    variations: embed_variations,
17580    deprecated: embed_deprecated
17581  };
17582  const embed_init = () => initBlock({
17583    name: embed_name,
17584    metadata: embed_metadata,
17585    settings: embed_settings
17586  });
17587  
17588  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js
17589  /**
17590   * WordPress dependencies
17591   */
17592  
17593  
17594  const file = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
17595    viewBox: "0 0 24 24",
17596    xmlns: "http://www.w3.org/2000/svg",
17597    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
17598      fillRule: "evenodd",
17599      clipRule: "evenodd",
17600      d: "M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z"
17601    })
17602  });
17603  /* harmony default export */ const library_file = (file);
17604  
17605  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/deprecated.js
17606  /**
17607   * External dependencies
17608   */
17609  
17610  
17611  /**
17612   * WordPress dependencies
17613   */
17614  
17615  
17616  
17617  // Version of the file block without PR#43050 removing the translated aria-label.
17618  
17619  
17620  
17621  const deprecated_v3 = {
17622    attributes: {
17623      id: {
17624        type: 'number'
17625      },
17626      href: {
17627        type: 'string'
17628      },
17629      fileId: {
17630        type: 'string',
17631        source: 'attribute',
17632        selector: 'a:not([download])',
17633        attribute: 'id'
17634      },
17635      fileName: {
17636        type: 'string',
17637        source: 'html',
17638        selector: 'a:not([download])'
17639      },
17640      textLinkHref: {
17641        type: 'string',
17642        source: 'attribute',
17643        selector: 'a:not([download])',
17644        attribute: 'href'
17645      },
17646      textLinkTarget: {
17647        type: 'string',
17648        source: 'attribute',
17649        selector: 'a:not([download])',
17650        attribute: 'target'
17651      },
17652      showDownloadButton: {
17653        type: 'boolean',
17654        default: true
17655      },
17656      downloadButtonText: {
17657        type: 'string',
17658        source: 'html',
17659        selector: 'a[download]'
17660      },
17661      displayPreview: {
17662        type: 'boolean'
17663      },
17664      previewHeight: {
17665        type: 'number',
17666        default: 600
17667      }
17668    },
17669    supports: {
17670      anchor: true,
17671      align: true
17672    },
17673    save({
17674      attributes
17675    }) {
17676      const {
17677        href,
17678        fileId,
17679        fileName,
17680        textLinkHref,
17681        textLinkTarget,
17682        showDownloadButton,
17683        downloadButtonText,
17684        displayPreview,
17685        previewHeight
17686      } = attributes;
17687      const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: filename. */
17688      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
17689      const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
17690  
17691      // Only output an `aria-describedby` when the element it's referring to is
17692      // actually rendered.
17693      const describedById = hasFilename ? fileId : undefined;
17694      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
17695        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
17696        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17697          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
17698            className: "wp-block-file__embed",
17699            data: href,
17700            type: "application/pdf",
17701            style: {
17702              width: '100%',
17703              height: `$previewHeight}px`
17704            },
17705            "aria-label": pdfEmbedLabel
17706          })
17707        }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17708          id: describedById,
17709          href: textLinkHref,
17710          target: textLinkTarget,
17711          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
17712          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17713            value: fileName
17714          })
17715        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17716          href: href,
17717          className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
17718          download: true,
17719          "aria-describedby": describedById,
17720          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17721            value: downloadButtonText
17722          })
17723        })]
17724      });
17725    }
17726  };
17727  
17728  // In #41239 the button was made an element button which added a `wp-element-button` classname
17729  // to the download link element.
17730  const file_deprecated_v2 = {
17731    attributes: {
17732      id: {
17733        type: 'number'
17734      },
17735      href: {
17736        type: 'string'
17737      },
17738      fileId: {
17739        type: 'string',
17740        source: 'attribute',
17741        selector: 'a:not([download])',
17742        attribute: 'id'
17743      },
17744      fileName: {
17745        type: 'string',
17746        source: 'html',
17747        selector: 'a:not([download])'
17748      },
17749      textLinkHref: {
17750        type: 'string',
17751        source: 'attribute',
17752        selector: 'a:not([download])',
17753        attribute: 'href'
17754      },
17755      textLinkTarget: {
17756        type: 'string',
17757        source: 'attribute',
17758        selector: 'a:not([download])',
17759        attribute: 'target'
17760      },
17761      showDownloadButton: {
17762        type: 'boolean',
17763        default: true
17764      },
17765      downloadButtonText: {
17766        type: 'string',
17767        source: 'html',
17768        selector: 'a[download]'
17769      },
17770      displayPreview: {
17771        type: 'boolean'
17772      },
17773      previewHeight: {
17774        type: 'number',
17775        default: 600
17776      }
17777    },
17778    supports: {
17779      anchor: true,
17780      align: true
17781    },
17782    save({
17783      attributes
17784    }) {
17785      const {
17786        href,
17787        fileId,
17788        fileName,
17789        textLinkHref,
17790        textLinkTarget,
17791        showDownloadButton,
17792        downloadButtonText,
17793        displayPreview,
17794        previewHeight
17795      } = attributes;
17796      const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: filename. */
17797      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
17798      const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
17799  
17800      // Only output an `aria-describedby` when the element it's referring to is
17801      // actually rendered.
17802      const describedById = hasFilename ? fileId : undefined;
17803      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
17804        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
17805        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17806          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
17807            className: "wp-block-file__embed",
17808            data: href,
17809            type: "application/pdf",
17810            style: {
17811              width: '100%',
17812              height: `$previewHeight}px`
17813            },
17814            "aria-label": pdfEmbedLabel
17815          })
17816        }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17817          id: describedById,
17818          href: textLinkHref,
17819          target: textLinkTarget,
17820          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
17821          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17822            value: fileName
17823          })
17824        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17825          href: href,
17826          className: "wp-block-file__button",
17827          download: true,
17828          "aria-describedby": describedById,
17829          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17830            value: downloadButtonText
17831          })
17832        })]
17833      });
17834    }
17835  };
17836  
17837  // Version of the file block without PR#28062 accessibility fix.
17838  const file_deprecated_v1 = {
17839    attributes: {
17840      id: {
17841        type: 'number'
17842      },
17843      href: {
17844        type: 'string'
17845      },
17846      fileName: {
17847        type: 'string',
17848        source: 'html',
17849        selector: 'a:not([download])'
17850      },
17851      textLinkHref: {
17852        type: 'string',
17853        source: 'attribute',
17854        selector: 'a:not([download])',
17855        attribute: 'href'
17856      },
17857      textLinkTarget: {
17858        type: 'string',
17859        source: 'attribute',
17860        selector: 'a:not([download])',
17861        attribute: 'target'
17862      },
17863      showDownloadButton: {
17864        type: 'boolean',
17865        default: true
17866      },
17867      downloadButtonText: {
17868        type: 'string',
17869        source: 'html',
17870        selector: 'a[download]'
17871      },
17872      displayPreview: {
17873        type: 'boolean'
17874      },
17875      previewHeight: {
17876        type: 'number',
17877        default: 600
17878      }
17879    },
17880    supports: {
17881      anchor: true,
17882      align: true
17883    },
17884    save({
17885      attributes
17886    }) {
17887      const {
17888        href,
17889        fileName,
17890        textLinkHref,
17891        textLinkTarget,
17892        showDownloadButton,
17893        downloadButtonText,
17894        displayPreview,
17895        previewHeight
17896      } = attributes;
17897      const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: filename. */
17898      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
17899      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
17900        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
17901        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17902          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
17903            className: "wp-block-file__embed",
17904            data: href,
17905            type: "application/pdf",
17906            style: {
17907              width: '100%',
17908              height: `$previewHeight}px`
17909            },
17910            "aria-label": pdfEmbedLabel
17911          })
17912        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17913          href: textLinkHref,
17914          target: textLinkTarget,
17915          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
17916          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17917            value: fileName
17918          })
17919        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17920          href: href,
17921          className: "wp-block-file__button",
17922          download: true,
17923          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17924            value: downloadButtonText
17925          })
17926        })]
17927      });
17928    }
17929  };
17930  const file_deprecated_deprecated = [deprecated_v3, file_deprecated_v2, file_deprecated_v1];
17931  /* harmony default export */ const file_deprecated = (file_deprecated_deprecated);
17932  
17933  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/inspector.js
17934  /**
17935   * WordPress dependencies
17936   */
17937  
17938  
17939  
17940  
17941  /**
17942   * Internal dependencies
17943   */
17944  
17945  
17946  
17947  
17948  function FileBlockInspector({
17949    hrefs,
17950    openInNewWindow,
17951    showDownloadButton,
17952    changeLinkDestinationOption,
17953    changeOpenInNewWindow,
17954    changeShowDownloadButton,
17955    displayPreview,
17956    changeDisplayPreview,
17957    previewHeight,
17958    changePreviewHeight
17959  }) {
17960    const {
17961      href,
17962      textLinkHref,
17963      attachmentPage
17964    } = hrefs;
17965    let linkDestinationOptions = [{
17966      value: href,
17967      label: (0,external_wp_i18n_namespaceObject.__)('URL')
17968    }];
17969    if (attachmentPage) {
17970      linkDestinationOptions = [{
17971        value: href,
17972        label: (0,external_wp_i18n_namespaceObject.__)('Media file')
17973      }, {
17974        value: attachmentPage,
17975        label: (0,external_wp_i18n_namespaceObject.__)('Attachment page')
17976      }];
17977    }
17978    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17979      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
17980        children: [href.endsWith('.pdf') && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
17981          title: (0,external_wp_i18n_namespaceObject.__)('PDF settings'),
17982          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
17983            __nextHasNoMarginBottom: true,
17984            label: (0,external_wp_i18n_namespaceObject.__)('Show inline embed'),
17985            help: displayPreview ? (0,external_wp_i18n_namespaceObject.__)("Note: Most phone and tablet browsers won't display embedded PDFs.") : null,
17986            checked: !!displayPreview,
17987            onChange: changeDisplayPreview
17988          }), displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
17989            __nextHasNoMarginBottom: true,
17990            __next40pxDefaultSize: true,
17991            label: (0,external_wp_i18n_namespaceObject.__)('Height in pixels'),
17992            min: MIN_PREVIEW_HEIGHT,
17993            max: Math.max(MAX_PREVIEW_HEIGHT, previewHeight),
17994            value: previewHeight,
17995            onChange: changePreviewHeight
17996          })]
17997        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
17998          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
17999          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
18000            __next40pxDefaultSize: true,
18001            __nextHasNoMarginBottom: true,
18002            label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
18003            value: textLinkHref,
18004            options: linkDestinationOptions,
18005            onChange: changeLinkDestinationOption
18006          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18007            __nextHasNoMarginBottom: true,
18008            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
18009            checked: openInNewWindow,
18010            onChange: changeOpenInNewWindow
18011          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18012            __nextHasNoMarginBottom: true,
18013            label: (0,external_wp_i18n_namespaceObject.__)('Show download button'),
18014            checked: showDownloadButton,
18015            onChange: changeShowDownloadButton
18016          })]
18017        })]
18018      })
18019    });
18020  }
18021  
18022  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/utils/index.js
18023  /**
18024   * Uses a combination of user agent matching and feature detection to determine whether
18025   * the current browser supports rendering PDFs inline.
18026   *
18027   * @return {boolean} Whether or not the browser supports inline PDFs.
18028   */
18029  const browserSupportsPdfs = () => {
18030    // Most mobile devices include "Mobi" in their UA.
18031    if (window.navigator.userAgent.indexOf('Mobi') > -1) {
18032      return false;
18033    }
18034  
18035    // Android tablets are the noteable exception.
18036    if (window.navigator.userAgent.indexOf('Android') > -1) {
18037      return false;
18038    }
18039  
18040    // iPad pretends to be a Mac.
18041    if (window.navigator.userAgent.indexOf('Macintosh') > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) {
18042      return false;
18043    }
18044  
18045    // IE only supports PDFs when there's an ActiveX object available for it.
18046    if (!!(window.ActiveXObject || 'ActiveXObject' in window) && !(createActiveXObject('AcroPDF.PDF') || createActiveXObject('PDF.PdfCtrl'))) {
18047      return false;
18048    }
18049    return true;
18050  };
18051  
18052  /**
18053   * Helper function for creating ActiveX objects, catching any errors that are thrown
18054   * when it's generated.
18055   *
18056   * @param {string} type The name of the ActiveX object to create.
18057   * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.
18058   */
18059  const createActiveXObject = type => {
18060    let ax;
18061    try {
18062      ax = new window.ActiveXObject(type);
18063    } catch (e) {
18064      ax = undefined;
18065    }
18066    return ax;
18067  };
18068  
18069  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/edit.js
18070  /**
18071   * External dependencies
18072   */
18073  
18074  
18075  /**
18076   * WordPress dependencies
18077   */
18078  
18079  
18080  
18081  
18082  
18083  
18084  
18085  
18086  
18087  
18088  
18089  /**
18090   * Internal dependencies
18091   */
18092  
18093  
18094  
18095  
18096  
18097  
18098  
18099  const MIN_PREVIEW_HEIGHT = 200;
18100  const MAX_PREVIEW_HEIGHT = 2000;
18101  function ClipboardToolbarButton({
18102    text,
18103    disabled
18104  }) {
18105    const {
18106      createNotice
18107    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
18108    const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
18109      createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), {
18110        isDismissible: true,
18111        type: 'snackbar'
18112      });
18113    });
18114    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
18115      className: "components-clipboard-toolbar-button",
18116      ref: ref,
18117      disabled: disabled,
18118      children: (0,external_wp_i18n_namespaceObject.__)('Copy URL')
18119    });
18120  }
18121  function FileEdit({
18122    attributes,
18123    isSelected,
18124    setAttributes,
18125    clientId
18126  }) {
18127    const {
18128      id,
18129      fileName,
18130      href,
18131      textLinkHref,
18132      textLinkTarget,
18133      showDownloadButton,
18134      downloadButtonText,
18135      displayPreview,
18136      previewHeight
18137    } = attributes;
18138    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
18139    const {
18140      media
18141    } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
18142      media: id === undefined ? undefined : select(external_wp_coreData_namespaceObject.store).getMedia(id)
18143    }), [id]);
18144    const {
18145      createErrorNotice
18146    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
18147    const {
18148      toggleSelection,
18149      __unstableMarkNextChangeAsNotPersistent
18150    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
18151    useUploadMediaFromBlobURL({
18152      url: temporaryURL,
18153      onChange: onSelectFile,
18154      onError: onUploadError
18155    });
18156  
18157    // Note: Handle setting a default value for `downloadButtonText` via HTML API
18158    // when it supports replacing text content for HTML tags.
18159    (0,external_wp_element_namespaceObject.useEffect)(() => {
18160      if (external_wp_blockEditor_namespaceObject.RichText.isEmpty(downloadButtonText)) {
18161        __unstableMarkNextChangeAsNotPersistent();
18162        setAttributes({
18163          downloadButtonText: (0,external_wp_i18n_namespaceObject._x)('Download', 'button label')
18164        });
18165      }
18166      // Reason: This effect should only run on mount.
18167      // eslint-disable-next-line react-hooks/exhaustive-deps
18168    }, []);
18169    function onSelectFile(newMedia) {
18170      if (!newMedia || !newMedia.url) {
18171        // Reset attributes.
18172        setAttributes({
18173          href: undefined,
18174          fileName: undefined,
18175          textLinkHref: undefined,
18176          id: undefined,
18177          fileId: undefined,
18178          displayPreview: undefined,
18179          previewHeight: undefined
18180        });
18181        setTemporaryURL();
18182        return;
18183      }
18184      if ((0,external_wp_blob_namespaceObject.isBlobURL)(newMedia.url)) {
18185        setTemporaryURL(newMedia.url);
18186        return;
18187      }
18188      const isPdf = newMedia.url.endsWith('.pdf');
18189      setAttributes({
18190        href: newMedia.url,
18191        fileName: newMedia.title,
18192        textLinkHref: newMedia.url,
18193        id: newMedia.id,
18194        displayPreview: isPdf ? true : undefined,
18195        previewHeight: isPdf ? 600 : undefined,
18196        fileId: `wp-block-file--media-$clientId}`,
18197        blob: undefined
18198      });
18199      setTemporaryURL();
18200    }
18201    function onUploadError(message) {
18202      setAttributes({
18203        href: undefined
18204      });
18205      createErrorNotice(message, {
18206        type: 'snackbar'
18207      });
18208    }
18209    function changeLinkDestinationOption(newHref) {
18210      // Choose Media File or Attachment Page (when file is in Media Library).
18211      setAttributes({
18212        textLinkHref: newHref
18213      });
18214    }
18215    function changeOpenInNewWindow(newValue) {
18216      setAttributes({
18217        textLinkTarget: newValue ? '_blank' : false
18218      });
18219    }
18220    function changeShowDownloadButton(newValue) {
18221      setAttributes({
18222        showDownloadButton: newValue
18223      });
18224    }
18225    function changeDisplayPreview(newValue) {
18226      setAttributes({
18227        displayPreview: newValue
18228      });
18229    }
18230    function handleOnResizeStop(event, direction, elt, delta) {
18231      toggleSelection(true);
18232      const newHeight = parseInt(previewHeight + delta.height, 10);
18233      setAttributes({
18234        previewHeight: newHeight
18235      });
18236    }
18237    function changePreviewHeight(newValue) {
18238      const newHeight = Math.max(parseInt(newValue, 10), MIN_PREVIEW_HEIGHT);
18239      setAttributes({
18240        previewHeight: newHeight
18241      });
18242    }
18243    const attachmentPage = media && media.link;
18244    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
18245      className: dist_clsx(!!temporaryURL && (0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({
18246        type: 'loading'
18247      }), {
18248        'is-transient': !!temporaryURL
18249      })
18250    });
18251    const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;
18252    if (!href && !temporaryURL) {
18253      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18254        ...blockProps,
18255        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
18256          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
18257            icon: library_file
18258          }),
18259          labels: {
18260            title: (0,external_wp_i18n_namespaceObject.__)('File'),
18261            instructions: (0,external_wp_i18n_namespaceObject.__)('Upload a file or pick one from your media library.')
18262          },
18263          onSelect: onSelectFile,
18264          onError: onUploadError,
18265          accept: "*"
18266        })
18267      });
18268    }
18269    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18270      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FileBlockInspector, {
18271        hrefs: {
18272          href: href || temporaryURL,
18273          textLinkHref,
18274          attachmentPage
18275        },
18276        openInNewWindow: !!textLinkTarget,
18277        showDownloadButton,
18278        changeLinkDestinationOption,
18279        changeOpenInNewWindow,
18280        changeShowDownloadButton,
18281        displayPreview,
18282        changeDisplayPreview,
18283        previewHeight,
18284        changePreviewHeight
18285      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
18286        group: "other",
18287        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
18288          mediaId: id,
18289          mediaURL: href,
18290          accept: "*",
18291          onSelect: onSelectFile,
18292          onError: onUploadError,
18293          onReset: () => onSelectFile(undefined)
18294        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ClipboardToolbarButton, {
18295          text: href,
18296          disabled: (0,external_wp_blob_namespaceObject.isBlobURL)(href)
18297        })]
18298      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18299        ...blockProps,
18300        children: [displayPreviewInEditor && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ResizableBox, {
18301          size: {
18302            height: previewHeight
18303          },
18304          minHeight: MIN_PREVIEW_HEIGHT,
18305          maxHeight: MAX_PREVIEW_HEIGHT,
18306          minWidth: "100%",
18307          grid: [10, 10],
18308          enable: {
18309            top: false,
18310            right: false,
18311            bottom: true,
18312            left: false,
18313            topRight: false,
18314            bottomRight: false,
18315            bottomLeft: false,
18316            topLeft: false
18317          },
18318          onResizeStart: () => toggleSelection(false),
18319          onResizeStop: handleOnResizeStop,
18320          showHandle: isSelected,
18321          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18322            className: "wp-block-file__preview",
18323            data: href,
18324            type: "application/pdf",
18325            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Embed of the selected PDF file.')
18326          }), !isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18327            className: "wp-block-file__preview-overlay"
18328          })]
18329        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18330          className: "wp-block-file__content-wrapper",
18331          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
18332            identifier: "fileName",
18333            tagName: "a",
18334            value: fileName,
18335            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write file name…'),
18336            withoutInteractiveFormatting: true,
18337            onChange: text => setAttributes({
18338              fileName: removeAnchorTag(text)
18339            }),
18340            href: textLinkHref
18341          }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18342            className: "wp-block-file__button-richtext-wrapper",
18343            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
18344              identifier: "downloadButtonText",
18345              tagName: "div" // Must be block-level or else cursor disappears.
18346              ,
18347              "aria-label": (0,external_wp_i18n_namespaceObject.__)('Download button text'),
18348              className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
18349              value: downloadButtonText,
18350              withoutInteractiveFormatting: true,
18351              placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text…'),
18352              onChange: text => setAttributes({
18353                downloadButtonText: removeAnchorTag(text)
18354              })
18355            })
18356          })]
18357        })]
18358      })]
18359    });
18360  }
18361  /* harmony default export */ const file_edit = (FileEdit);
18362  
18363  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/save.js
18364  /**
18365   * External dependencies
18366   */
18367  
18368  
18369  /**
18370   * WordPress dependencies
18371   */
18372  
18373  
18374  
18375  
18376  function file_save_save({
18377    attributes
18378  }) {
18379    const {
18380      href,
18381      fileId,
18382      fileName,
18383      textLinkHref,
18384      textLinkTarget,
18385      showDownloadButton,
18386      downloadButtonText,
18387      displayPreview,
18388      previewHeight
18389    } = attributes;
18390    const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? 'PDF embed' :
18391    // To do: use toPlainText, but we need ensure it's RichTextData. See
18392    // https://github.com/WordPress/gutenberg/pull/56710.
18393    fileName.toString();
18394    const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
18395  
18396    // Only output an `aria-describedby` when the element it's referring to is
18397    // actually rendered.
18398    const describedById = hasFilename ? fileId : undefined;
18399    return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18400      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18401      children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18402        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18403          className: "wp-block-file__embed",
18404          data: href,
18405          type: "application/pdf",
18406          style: {
18407            width: '100%',
18408            height: `$previewHeight}px`
18409          },
18410          "aria-label": pdfEmbedLabel
18411        })
18412      }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18413        id: describedById,
18414        href: textLinkHref,
18415        target: textLinkTarget,
18416        rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18417        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18418          value: fileName
18419        })
18420      }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18421        href: href,
18422        className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
18423        download: true,
18424        "aria-describedby": describedById,
18425        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18426          value: downloadButtonText
18427        })
18428      })]
18429    });
18430  }
18431  
18432  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/transforms.js
18433  /**
18434   * WordPress dependencies
18435   */
18436  
18437  
18438  
18439  
18440  
18441  const file_transforms_transforms = {
18442    from: [{
18443      type: 'files',
18444      isMatch(files) {
18445        return files.length > 0;
18446      },
18447      // We define a lower priorty (higher number) than the default of 10. This
18448      // ensures that the File block is only created as a fallback.
18449      priority: 15,
18450      transform: files => {
18451        const blocks = [];
18452        files.forEach(file => {
18453          const blobURL = (0,external_wp_blob_namespaceObject.createBlobURL)(file);
18454  
18455          // File will be uploaded in componentDidMount()
18456          if (file.type.startsWith('video/')) {
18457            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
18458              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
18459            }));
18460          } else if (file.type.startsWith('image/')) {
18461            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
18462              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
18463            }));
18464          } else if (file.type.startsWith('audio/')) {
18465            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
18466              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
18467            }));
18468          } else {
18469            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
18470              blob: blobURL,
18471              fileName: file.name
18472            }));
18473          }
18474        });
18475        return blocks;
18476      }
18477    }, {
18478      type: 'block',
18479      blocks: ['core/audio'],
18480      transform: attributes => {
18481        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
18482          href: attributes.src,
18483          fileName: attributes.caption,
18484          textLinkHref: attributes.src,
18485          id: attributes.id,
18486          anchor: attributes.anchor
18487        });
18488      }
18489    }, {
18490      type: 'block',
18491      blocks: ['core/video'],
18492      transform: attributes => {
18493        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
18494          href: attributes.src,
18495          fileName: attributes.caption,
18496          textLinkHref: attributes.src,
18497          id: attributes.id,
18498          anchor: attributes.anchor
18499        });
18500      }
18501    }, {
18502      type: 'block',
18503      blocks: ['core/image'],
18504      transform: attributes => {
18505        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
18506          href: attributes.url,
18507          fileName: attributes.caption || (0,external_wp_url_namespaceObject.getFilename)(attributes.url),
18508          textLinkHref: attributes.url,
18509          id: attributes.id,
18510          anchor: attributes.anchor
18511        });
18512      }
18513    }],
18514    to: [{
18515      type: 'block',
18516      blocks: ['core/audio'],
18517      isMatch: ({
18518        id
18519      }) => {
18520        if (!id) {
18521          return false;
18522        }
18523        const {
18524          getMedia
18525        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
18526        const media = getMedia(id);
18527        return !!media && media.mime_type.includes('audio');
18528      },
18529      transform: attributes => {
18530        return (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
18531          src: attributes.href,
18532          caption: attributes.fileName,
18533          id: attributes.id,
18534          anchor: attributes.anchor
18535        });
18536      }
18537    }, {
18538      type: 'block',
18539      blocks: ['core/video'],
18540      isMatch: ({
18541        id
18542      }) => {
18543        if (!id) {
18544          return false;
18545        }
18546        const {
18547          getMedia
18548        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
18549        const media = getMedia(id);
18550        return !!media && media.mime_type.includes('video');
18551      },
18552      transform: attributes => {
18553        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
18554          src: attributes.href,
18555          caption: attributes.fileName,
18556          id: attributes.id,
18557          anchor: attributes.anchor
18558        });
18559      }
18560    }, {
18561      type: 'block',
18562      blocks: ['core/image'],
18563      isMatch: ({
18564        id
18565      }) => {
18566        if (!id) {
18567          return false;
18568        }
18569        const {
18570          getMedia
18571        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
18572        const media = getMedia(id);
18573        return !!media && media.mime_type.includes('image');
18574      },
18575      transform: attributes => {
18576        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
18577          url: attributes.href,
18578          caption: attributes.fileName,
18579          id: attributes.id,
18580          anchor: attributes.anchor
18581        });
18582      }
18583    }]
18584  };
18585  /* harmony default export */ const file_transforms = (file_transforms_transforms);
18586  
18587  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/index.js
18588  /**
18589   * WordPress dependencies
18590   */
18591  
18592  
18593  
18594  /**
18595   * Internal dependencies
18596   */
18597  
18598  
18599  
18600  const file_metadata = {
18601    $schema: "https://schemas.wp.org/trunk/block.json",
18602    apiVersion: 3,
18603    name: "core/file",
18604    title: "File",
18605    category: "media",
18606    description: "Add a link to a downloadable file.",
18607    keywords: ["document", "pdf", "download"],
18608    textdomain: "default",
18609    attributes: {
18610      id: {
18611        type: "number"
18612      },
18613      blob: {
18614        type: "string",
18615        role: "local"
18616      },
18617      href: {
18618        type: "string"
18619      },
18620      fileId: {
18621        type: "string",
18622        source: "attribute",
18623        selector: "a:not([download])",
18624        attribute: "id"
18625      },
18626      fileName: {
18627        type: "rich-text",
18628        source: "rich-text",
18629        selector: "a:not([download])"
18630      },
18631      textLinkHref: {
18632        type: "string",
18633        source: "attribute",
18634        selector: "a:not([download])",
18635        attribute: "href"
18636      },
18637      textLinkTarget: {
18638        type: "string",
18639        source: "attribute",
18640        selector: "a:not([download])",
18641        attribute: "target"
18642      },
18643      showDownloadButton: {
18644        type: "boolean",
18645        "default": true
18646      },
18647      downloadButtonText: {
18648        type: "rich-text",
18649        source: "rich-text",
18650        selector: "a[download]"
18651      },
18652      displayPreview: {
18653        type: "boolean"
18654      },
18655      previewHeight: {
18656        type: "number",
18657        "default": 600
18658      }
18659    },
18660    supports: {
18661      anchor: true,
18662      align: true,
18663      spacing: {
18664        margin: true,
18665        padding: true
18666      },
18667      color: {
18668        gradients: true,
18669        link: true,
18670        text: false,
18671        __experimentalDefaultControls: {
18672          background: true,
18673          link: true
18674        }
18675      },
18676      __experimentalBorder: {
18677        radius: true,
18678        color: true,
18679        width: true,
18680        style: true,
18681        __experimentalDefaultControls: {
18682          radius: true,
18683          color: true,
18684          width: true,
18685          style: true
18686        }
18687      },
18688      interactivity: true
18689    },
18690    editorStyle: "wp-block-file-editor",
18691    style: "wp-block-file"
18692  };
18693  
18694  
18695  const {
18696    name: file_name
18697  } = file_metadata;
18698  
18699  const file_settings = {
18700    icon: library_file,
18701    example: {
18702      attributes: {
18703        href: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',
18704        fileName: (0,external_wp_i18n_namespaceObject._x)('Armstrong_Small_Step', 'Name of the file')
18705      }
18706    },
18707    transforms: file_transforms,
18708    deprecated: file_deprecated,
18709    edit: file_edit,
18710    save: file_save_save
18711  };
18712  const file_init = () => initBlock({
18713    name: file_name,
18714    metadata: file_metadata,
18715    settings: file_settings
18716  });
18717  
18718  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form/utils.js
18719  /**
18720   * WordPress dependencies
18721   */
18722  
18723  const formSubmissionNotificationSuccess = ['core/form-submission-notification', {
18724    type: 'success'
18725  }, [['core/paragraph', {
18726    content: '<mark style="background-color:rgba(0, 0, 0, 0);color:#345C00" class="has-inline-color">' + (0,external_wp_i18n_namespaceObject.__)('Your form has been submitted successfully') + '</mark>'
18727  }]]];
18728  const formSubmissionNotificationError = ['core/form-submission-notification', {
18729    type: 'error'
18730  }, [['core/paragraph', {
18731    content: '<mark style="background-color:rgba(0, 0, 0, 0);color:#CF2E2E" class="has-inline-color">' + (0,external_wp_i18n_namespaceObject.__)('There was an error submitting your form.') + '</mark>'
18732  }]]];
18733  
18734  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form/edit.js
18735  /**
18736   * WordPress dependencies
18737   */
18738  
18739  
18740  
18741  
18742  
18743  /**
18744   * Internal dependencies
18745   */
18746  
18747  
18748  
18749  
18750  const form_edit_TEMPLATE = [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/form-input', {
18751    type: 'text',
18752    label: (0,external_wp_i18n_namespaceObject.__)('Name'),
18753    required: true
18754  }], ['core/form-input', {
18755    type: 'email',
18756    label: (0,external_wp_i18n_namespaceObject.__)('Email'),
18757    required: true
18758  }], ['core/form-input', {
18759    type: 'textarea',
18760    label: (0,external_wp_i18n_namespaceObject.__)('Comment'),
18761    required: true
18762  }], ['core/form-submit-button', {}]];
18763  const form_edit_Edit = ({
18764    attributes,
18765    setAttributes,
18766    clientId
18767  }) => {
18768    const {
18769      action,
18770      method,
18771      email,
18772      submissionMethod
18773    } = attributes;
18774    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
18775    const {
18776      hasInnerBlocks
18777    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
18778      const {
18779        getBlock
18780      } = select(external_wp_blockEditor_namespaceObject.store);
18781      const block = getBlock(clientId);
18782      return {
18783        hasInnerBlocks: !!(block && block.innerBlocks.length)
18784      };
18785    }, [clientId]);
18786    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
18787      template: form_edit_TEMPLATE,
18788      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
18789    });
18790    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18791      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
18792        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
18793          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
18794          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
18795            __nextHasNoMarginBottom: true,
18796            __next40pxDefaultSize: true,
18797            label: (0,external_wp_i18n_namespaceObject.__)('Submissions method'),
18798            options: [
18799            // TODO: Allow plugins to add their own submission methods.
18800            {
18801              label: (0,external_wp_i18n_namespaceObject.__)('Send email'),
18802              value: 'email'
18803            }, {
18804              label: (0,external_wp_i18n_namespaceObject.__)('- Custom -'),
18805              value: 'custom'
18806            }],
18807            value: submissionMethod,
18808            onChange: value => setAttributes({
18809              submissionMethod: value
18810            }),
18811            help: submissionMethod === 'custom' ? (0,external_wp_i18n_namespaceObject.__)('Select the method to use for form submissions. Additional options for the "custom" mode can be found in the "Advanced" section.') : (0,external_wp_i18n_namespaceObject.__)('Select the method to use for form submissions.')
18812          }), submissionMethod === 'email' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
18813            __nextHasNoMarginBottom: true,
18814            __next40pxDefaultSize: true,
18815            autoComplete: "off",
18816            label: (0,external_wp_i18n_namespaceObject.__)('Email for form submissions'),
18817            value: email,
18818            required: true,
18819            onChange: value => {
18820              setAttributes({
18821                email: value
18822              });
18823              setAttributes({
18824                action: `mailto:$value}`
18825              });
18826              setAttributes({
18827                method: 'post'
18828              });
18829            },
18830            help: (0,external_wp_i18n_namespaceObject.__)('The email address where form submissions will be sent. Separate multiple email addresses with a comma.')
18831          })]
18832        })
18833      }), submissionMethod !== 'email' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
18834        group: "advanced",
18835        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
18836          __next40pxDefaultSize: true,
18837          __nextHasNoMarginBottom: true,
18838          label: (0,external_wp_i18n_namespaceObject.__)('Method'),
18839          options: [{
18840            label: 'Get',
18841            value: 'get'
18842          }, {
18843            label: 'Post',
18844            value: 'post'
18845          }],
18846          value: method,
18847          onChange: value => setAttributes({
18848            method: value
18849          }),
18850          help: (0,external_wp_i18n_namespaceObject.__)('Select the method to use for form submissions.')
18851        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
18852          __next40pxDefaultSize: true,
18853          __nextHasNoMarginBottom: true,
18854          autoComplete: "off",
18855          label: (0,external_wp_i18n_namespaceObject.__)('Form action'),
18856          value: action,
18857          onChange: newVal => {
18858            setAttributes({
18859              action: newVal
18860            });
18861          },
18862          help: (0,external_wp_i18n_namespaceObject.__)('The URL where the form should be submitted.')
18863        })]
18864      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
18865        ...innerBlocksProps,
18866        className: "wp-block-form",
18867        encType: submissionMethod === 'email' ? 'text/plain' : null
18868      })]
18869    });
18870  };
18871  /* harmony default export */ const form_edit = (form_edit_Edit);
18872  
18873  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form/save.js
18874  /**
18875   * WordPress dependencies
18876   */
18877  
18878  
18879  function form_save_save({
18880    attributes
18881  }) {
18882    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
18883    const {
18884      submissionMethod
18885    } = attributes;
18886    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
18887      ...blockProps,
18888      className: "wp-block-form",
18889      encType: submissionMethod === 'email' ? 'text/plain' : null,
18890      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
18891    });
18892  }
18893  
18894  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form/variations.js
18895  /**
18896   * WordPress dependencies
18897   */
18898  
18899  /**
18900   * Internal dependencies
18901   */
18902  
18903  const form_variations_variations = [{
18904    name: 'comment-form',
18905    title: (0,external_wp_i18n_namespaceObject.__)('Experimental Comment form'),
18906    description: (0,external_wp_i18n_namespaceObject.__)('A comment form for posts and pages.'),
18907    attributes: {
18908      submissionMethod: 'custom',
18909      action: '{SITE_URL}/wp-comments-post.php',
18910      method: 'post',
18911      anchor: 'comment-form'
18912    },
18913    isDefault: false,
18914    innerBlocks: [['core/form-input', {
18915      type: 'text',
18916      name: 'author',
18917      label: (0,external_wp_i18n_namespaceObject.__)('Name'),
18918      required: true,
18919      visibilityPermissions: 'logged-out'
18920    }], ['core/form-input', {
18921      type: 'email',
18922      name: 'email',
18923      label: (0,external_wp_i18n_namespaceObject.__)('Email'),
18924      required: true,
18925      visibilityPermissions: 'logged-out'
18926    }], ['core/form-input', {
18927      type: 'textarea',
18928      name: 'comment',
18929      label: (0,external_wp_i18n_namespaceObject.__)('Comment'),
18930      required: true,
18931      visibilityPermissions: 'all'
18932    }], ['core/form-submit-button', {}]],
18933    scope: ['inserter', 'transform'],
18934    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
18935  }, {
18936    name: 'wp-privacy-form',
18937    title: (0,external_wp_i18n_namespaceObject.__)('Experimental privacy request form'),
18938    keywords: ['GDPR'],
18939    description: (0,external_wp_i18n_namespaceObject.__)('A form to request data exports and/or deletion.'),
18940    attributes: {
18941      submissionMethod: 'custom',
18942      action: '',
18943      method: 'post',
18944      anchor: 'gdpr-form'
18945    },
18946    isDefault: false,
18947    innerBlocks: [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/paragraph', {
18948      content: (0,external_wp_i18n_namespaceObject.__)('To request an export or deletion of your personal data on this site, please fill-in the form below. You can define the type of request you wish to perform, and your email address. Once the form is submitted, you will receive a confirmation email with instructions on the next steps.')
18949    }], ['core/form-input', {
18950      type: 'email',
18951      name: 'email',
18952      label: (0,external_wp_i18n_namespaceObject.__)('Enter your email address.'),
18953      required: true,
18954      visibilityPermissions: 'all'
18955    }], ['core/form-input', {
18956      type: 'checkbox',
18957      name: 'export_personal_data',
18958      label: (0,external_wp_i18n_namespaceObject.__)('Request data export'),
18959      required: false,
18960      visibilityPermissions: 'all'
18961    }], ['core/form-input', {
18962      type: 'checkbox',
18963      name: 'remove_personal_data',
18964      label: (0,external_wp_i18n_namespaceObject.__)('Request data deletion'),
18965      required: false,
18966      visibilityPermissions: 'all'
18967    }], ['core/form-submit-button', {}], ['core/form-input', {
18968      type: 'hidden',
18969      name: 'wp-action',
18970      value: 'wp_privacy_send_request'
18971    }], ['core/form-input', {
18972      type: 'hidden',
18973      name: 'wp-privacy-request',
18974      value: '1'
18975    }]],
18976    scope: ['inserter', 'transform'],
18977    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
18978  }];
18979  /* harmony default export */ const form_variations = (form_variations_variations);
18980  
18981  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form/index.js
18982  /**
18983   * Internal dependencies
18984   */
18985  
18986  
18987  const form_metadata = {
18988    $schema: "https://schemas.wp.org/trunk/block.json",
18989    apiVersion: 3,
18990    __experimental: true,
18991    name: "core/form",
18992    title: "Form",
18993    category: "common",
18994    allowedBlocks: ["core/paragraph", "core/heading", "core/form-input", "core/form-submit-button", "core/form-submission-notification", "core/group", "core/columns"],
18995    description: "A form.",
18996    keywords: ["container", "wrapper", "row", "section"],
18997    textdomain: "default",
18998    icon: "feedback",
18999    attributes: {
19000      submissionMethod: {
19001        type: "string",
19002        "default": "email"
19003      },
19004      method: {
19005        type: "string",
19006        "default": "post"
19007      },
19008      action: {
19009        type: "string"
19010      },
19011      email: {
19012        type: "string"
19013      }
19014    },
19015    supports: {
19016      anchor: true,
19017      className: false,
19018      color: {
19019        gradients: true,
19020        link: true,
19021        __experimentalDefaultControls: {
19022          background: true,
19023          text: true,
19024          link: true
19025        }
19026      },
19027      spacing: {
19028        margin: true,
19029        padding: true
19030      },
19031      typography: {
19032        fontSize: true,
19033        lineHeight: true,
19034        __experimentalFontFamily: true,
19035        __experimentalTextDecoration: true,
19036        __experimentalFontStyle: true,
19037        __experimentalFontWeight: true,
19038        __experimentalLetterSpacing: true,
19039        __experimentalTextTransform: true,
19040        __experimentalDefaultControls: {
19041          fontSize: true
19042        }
19043      },
19044      __experimentalSelector: "form"
19045    },
19046    viewScript: "file:./view.min.js"
19047  };
19048  
19049  
19050  
19051  /**
19052   * WordPress dependencies
19053   */
19054  
19055  const {
19056    name: form_name
19057  } = form_metadata;
19058  
19059  const form_settings = {
19060    edit: form_edit,
19061    save: form_save_save,
19062    variations: form_variations
19063  };
19064  const form_init = () => {
19065    // Prevent adding forms inside forms.
19066    const DISALLOWED_PARENTS = ['core/form'];
19067    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'core/block-library/preventInsertingFormIntoAnotherForm', (canInsert, blockType, rootClientId, {
19068      getBlock,
19069      getBlockParentsByBlockName
19070    }) => {
19071      if (blockType.name !== 'core/form') {
19072        return canInsert;
19073      }
19074      for (const disallowedParentType of DISALLOWED_PARENTS) {
19075        const hasDisallowedParent = getBlock(rootClientId)?.name === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
19076        if (hasDisallowedParent) {
19077          return false;
19078        }
19079      }
19080      return true;
19081    });
19082    return initBlock({
19083      name: form_name,
19084      metadata: form_metadata,
19085      settings: form_settings
19086    });
19087  };
19088  
19089  // EXTERNAL MODULE: ./node_modules/remove-accents/index.js
19090  var remove_accents = __webpack_require__(9681);
19091  var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents);
19092  ;// CONCATENATED MODULE: external ["wp","dom"]
19093  const external_wp_dom_namespaceObject = window["wp"]["dom"];
19094  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-input/deprecated.js
19095  /**
19096   * External dependencies
19097   */
19098  
19099  
19100  
19101  /**
19102   * WordPress dependencies
19103   */
19104  
19105  
19106  
19107  
19108  const getNameFromLabelV1 = content => {
19109    return remove_accents_default()((0,external_wp_dom_namespaceObject.__unstableStripHTML)(content))
19110    // Convert anything that's not a letter or number to a hyphen.
19111    .replace(/[^\p{L}\p{N}]+/gu, '-')
19112    // Convert to lowercase
19113    .toLowerCase()
19114    // Remove any remaining leading or trailing hyphens.
19115    .replace(/(^-+)|(-+$)/g, '');
19116  };
19117  const form_input_deprecated_v2 = {
19118    attributes: {
19119      type: {
19120        type: 'string',
19121        default: 'text'
19122      },
19123      name: {
19124        type: 'string'
19125      },
19126      label: {
19127        type: 'string',
19128        default: 'Label',
19129        selector: '.wp-block-form-input__label-content',
19130        source: 'html',
19131        role: 'content'
19132      },
19133      inlineLabel: {
19134        type: 'boolean',
19135        default: false
19136      },
19137      required: {
19138        type: 'boolean',
19139        default: false,
19140        selector: '.wp-block-form-input__input',
19141        source: 'attribute',
19142        attribute: 'required'
19143      },
19144      placeholder: {
19145        type: 'string',
19146        selector: '.wp-block-form-input__input',
19147        source: 'attribute',
19148        attribute: 'placeholder',
19149        role: 'content'
19150      },
19151      value: {
19152        type: 'string',
19153        default: '',
19154        selector: 'input',
19155        source: 'attribute',
19156        attribute: 'value'
19157      },
19158      visibilityPermissions: {
19159        type: 'string',
19160        default: 'all'
19161      }
19162    },
19163    supports: {
19164      anchor: true,
19165      reusable: false,
19166      spacing: {
19167        margin: ['top', 'bottom']
19168      },
19169      __experimentalBorder: {
19170        radius: true,
19171        __experimentalSkipSerialization: true,
19172        __experimentalDefaultControls: {
19173          radius: true
19174        }
19175      }
19176    },
19177    save({
19178      attributes
19179    }) {
19180      const {
19181        type,
19182        name,
19183        label,
19184        inlineLabel,
19185        required,
19186        placeholder,
19187        value
19188      } = attributes;
19189      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
19190      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
19191      const inputStyle = {
19192        ...borderProps.style,
19193        ...colorProps.style
19194      };
19195      const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
19196      const TagName = type === 'textarea' ? 'textarea' : 'input';
19197      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19198      if ('hidden' === type) {
19199        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
19200          type: type,
19201          name: name,
19202          value: value
19203        });
19204      }
19205      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19206        ...blockProps,
19207        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
19208          className: dist_clsx('wp-block-form-input__label', {
19209            'is-label-inline': inlineLabel
19210          }),
19211          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
19212            className: "wp-block-form-input__label-content",
19213            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19214              value: label
19215            })
19216          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
19217            className: inputClasses,
19218            type: 'textarea' === type ? undefined : type,
19219            name: name || getNameFromLabelV1(label),
19220            required: required,
19221            "aria-required": required,
19222            placeholder: placeholder || undefined,
19223            style: inputStyle
19224          })]
19225        })
19226      });
19227    }
19228  };
19229  
19230  // Version without wrapper div in saved markup
19231  // See: https://github.com/WordPress/gutenberg/pull/56507
19232  const form_input_deprecated_v1 = {
19233    attributes: {
19234      type: {
19235        type: 'string',
19236        default: 'text'
19237      },
19238      name: {
19239        type: 'string'
19240      },
19241      label: {
19242        type: 'string',
19243        default: 'Label',
19244        selector: '.wp-block-form-input__label-content',
19245        source: 'html',
19246        role: 'content'
19247      },
19248      inlineLabel: {
19249        type: 'boolean',
19250        default: false
19251      },
19252      required: {
19253        type: 'boolean',
19254        default: false,
19255        selector: '.wp-block-form-input__input',
19256        source: 'attribute',
19257        attribute: 'required'
19258      },
19259      placeholder: {
19260        type: 'string',
19261        selector: '.wp-block-form-input__input',
19262        source: 'attribute',
19263        attribute: 'placeholder',
19264        role: 'content'
19265      },
19266      value: {
19267        type: 'string',
19268        default: '',
19269        selector: 'input',
19270        source: 'attribute',
19271        attribute: 'value'
19272      },
19273      visibilityPermissions: {
19274        type: 'string',
19275        default: 'all'
19276      }
19277    },
19278    supports: {
19279      className: false,
19280      anchor: true,
19281      reusable: false,
19282      spacing: {
19283        margin: ['top', 'bottom']
19284      },
19285      __experimentalBorder: {
19286        radius: true,
19287        __experimentalSkipSerialization: true,
19288        __experimentalDefaultControls: {
19289          radius: true
19290        }
19291      }
19292    },
19293    save({
19294      attributes
19295    }) {
19296      const {
19297        type,
19298        name,
19299        label,
19300        inlineLabel,
19301        required,
19302        placeholder,
19303        value
19304      } = attributes;
19305      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
19306      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
19307      const inputStyle = {
19308        ...borderProps.style,
19309        ...colorProps.style
19310      };
19311      const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
19312      const TagName = type === 'textarea' ? 'textarea' : 'input';
19313      if ('hidden' === type) {
19314        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
19315          type: type,
19316          name: name,
19317          value: value
19318        });
19319      }
19320  
19321      /* eslint-disable jsx-a11y/label-has-associated-control */
19322      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
19323        className: dist_clsx('wp-block-form-input__label', {
19324          'is-label-inline': inlineLabel
19325        }),
19326        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
19327          className: "wp-block-form-input__label-content",
19328          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19329            value: label
19330          })
19331        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
19332          className: inputClasses,
19333          type: 'textarea' === type ? undefined : type,
19334          name: name || getNameFromLabelV1(label),
19335          required: required,
19336          "aria-required": required,
19337          placeholder: placeholder || undefined,
19338          style: inputStyle
19339        })]
19340      });
19341      /* eslint-enable jsx-a11y/label-has-associated-control */
19342    }
19343  };
19344  const form_input_deprecated_deprecated = [form_input_deprecated_v2, form_input_deprecated_v1];
19345  /* harmony default export */ const form_input_deprecated = (form_input_deprecated_deprecated);
19346  
19347  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-input/edit.js
19348  /**
19349   * External dependencies
19350   */
19351  
19352  
19353  /**
19354   * WordPress dependencies
19355   */
19356  
19357  
19358  
19359  
19360  
19361  
19362  
19363  function InputFieldBlock({
19364    attributes,
19365    setAttributes,
19366    className
19367  }) {
19368    const {
19369      type,
19370      name,
19371      label,
19372      inlineLabel,
19373      required,
19374      placeholder,
19375      value
19376    } = attributes;
19377    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
19378    const ref = (0,external_wp_element_namespaceObject.useRef)();
19379    const TagName = type === 'textarea' ? 'textarea' : 'input';
19380    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
19381    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
19382    if (ref.current) {
19383      ref.current.focus();
19384    }
19385  
19386    // Note: radio inputs aren't implemented yet.
19387    const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
19388    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
19389      children: ['hidden' !== type && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
19390        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
19391          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
19392          children: ['checkbox' !== type && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
19393            __nextHasNoMarginBottom: true,
19394            label: (0,external_wp_i18n_namespaceObject.__)('Inline label'),
19395            checked: inlineLabel,
19396            onChange: newVal => {
19397              setAttributes({
19398                inlineLabel: newVal
19399              });
19400            }
19401          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
19402            __nextHasNoMarginBottom: true,
19403            label: (0,external_wp_i18n_namespaceObject.__)('Required'),
19404            checked: required,
19405            onChange: newVal => {
19406              setAttributes({
19407                required: newVal
19408              });
19409            }
19410          })]
19411        })
19412      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
19413        group: "advanced",
19414        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
19415          __next40pxDefaultSize: true,
19416          __nextHasNoMarginBottom: true,
19417          autoComplete: "off",
19418          label: (0,external_wp_i18n_namespaceObject.__)('Name'),
19419          value: name,
19420          onChange: newVal => {
19421            setAttributes({
19422              name: newVal
19423            });
19424          },
19425          help: (0,external_wp_i18n_namespaceObject.__)('Affects the "name" atribute of the input element, and is used as a name for the form submission results.')
19426        })
19427      })]
19428    });
19429    const content = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
19430      tagName: "span",
19431      className: "wp-block-form-input__label-content",
19432      value: label,
19433      onChange: newLabel => setAttributes({
19434        label: newLabel
19435      }),
19436      "aria-label": label ? (0,external_wp_i18n_namespaceObject.__)('Label') : (0,external_wp_i18n_namespaceObject.__)('Empty label'),
19437      "data-empty": !label,
19438      placeholder: (0,external_wp_i18n_namespaceObject.__)('Type the label for this input')
19439    });
19440    if ('hidden' === type) {
19441      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
19442        children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
19443          type: "hidden",
19444          className: dist_clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
19445          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Value'),
19446          value: value,
19447          onChange: event => setAttributes({
19448            value: event.target.value
19449          })
19450        })]
19451      });
19452    }
19453    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19454      ...blockProps,
19455      children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
19456        className: dist_clsx('wp-block-form-input__label', {
19457          'is-label-inline': inlineLabel || 'checkbox' === type
19458        }),
19459        children: [!isCheckboxOrRadio && content, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
19460          type: 'textarea' === type ? undefined : type,
19461          className: dist_clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
19462          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text')
19463          // We hide the placeholder field's placeholder when there is a value. This
19464          // stops screen readers from reading the placeholder field's placeholder
19465          // which is confusing.
19466          ,
19467          placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
19468          value: placeholder,
19469          onChange: event => setAttributes({
19470            placeholder: event.target.value
19471          }),
19472          "aria-required": required,
19473          style: {
19474            ...borderProps.style,
19475            ...colorProps.style
19476          }
19477        }), isCheckboxOrRadio && content]
19478      })]
19479    });
19480  }
19481  /* harmony default export */ const form_input_edit = (InputFieldBlock);
19482  
19483  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-input/save.js
19484  /**
19485   * External dependencies
19486   */
19487  
19488  
19489  
19490  /**
19491   * WordPress dependencies
19492   */
19493  
19494  
19495  
19496  /**
19497   * Get the name attribute from a content string.
19498   *
19499   * @param {string} content The block content.
19500   *
19501   * @return {string} Returns the slug.
19502   */
19503  
19504  
19505  const getNameFromLabel = content => {
19506    return remove_accents_default()((0,external_wp_dom_namespaceObject.__unstableStripHTML)(content))
19507    // Convert anything that's not a letter or number to a hyphen.
19508    .replace(/[^\p{L}\p{N}]+/gu, '-')
19509    // Convert to lowercase
19510    .toLowerCase()
19511    // Remove any remaining leading or trailing hyphens.
19512    .replace(/(^-+)|(-+$)/g, '');
19513  };
19514  function form_input_save_save({
19515    attributes
19516  }) {
19517    const {
19518      type,
19519      name,
19520      label,
19521      inlineLabel,
19522      required,
19523      placeholder,
19524      value
19525    } = attributes;
19526    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
19527    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
19528    const inputStyle = {
19529      ...borderProps.style,
19530      ...colorProps.style
19531    };
19532    const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
19533    const TagName = type === 'textarea' ? 'textarea' : 'input';
19534    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19535  
19536    // Note: radio inputs aren't implemented yet.
19537    const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
19538    if ('hidden' === type) {
19539      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
19540        type: type,
19541        name: name,
19542        value: value
19543      });
19544    }
19545    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19546      ...blockProps,
19547      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
19548        className: dist_clsx('wp-block-form-input__label', {
19549          'is-label-inline': inlineLabel
19550        }),
19551        children: [!isCheckboxOrRadio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
19552          className: "wp-block-form-input__label-content",
19553          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19554            value: label
19555          })
19556        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
19557          className: inputClasses,
19558          type: 'textarea' === type ? undefined : type,
19559          name: name || getNameFromLabel(label),
19560          required: required,
19561          "aria-required": required,
19562          placeholder: placeholder || undefined,
19563          style: inputStyle
19564        }), isCheckboxOrRadio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
19565          className: "wp-block-form-input__label-content",
19566          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19567            value: label
19568          })
19569        })]
19570      })
19571    });
19572  }
19573  
19574  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-input/variations.js
19575  /**
19576   * WordPress dependencies
19577   */
19578  
19579  const form_input_variations_variations = [{
19580    name: 'text',
19581    title: (0,external_wp_i18n_namespaceObject.__)('Text Input'),
19582    icon: 'edit-page',
19583    description: (0,external_wp_i18n_namespaceObject.__)('A generic text input.'),
19584    attributes: {
19585      type: 'text'
19586    },
19587    isDefault: true,
19588    scope: ['inserter', 'transform'],
19589    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
19590  }, {
19591    name: 'textarea',
19592    title: (0,external_wp_i18n_namespaceObject.__)('Textarea Input'),
19593    icon: 'testimonial',
19594    description: (0,external_wp_i18n_namespaceObject.__)('A textarea input to allow entering multiple lines of text.'),
19595    attributes: {
19596      type: 'textarea'
19597    },
19598    isDefault: true,
19599    scope: ['inserter', 'transform'],
19600    isActive: blockAttributes => blockAttributes?.type === 'textarea'
19601  }, {
19602    name: 'checkbox',
19603    title: (0,external_wp_i18n_namespaceObject.__)('Checkbox Input'),
19604    description: (0,external_wp_i18n_namespaceObject.__)('A simple checkbox input.'),
19605    icon: 'forms',
19606    attributes: {
19607      type: 'checkbox',
19608      inlineLabel: true
19609    },
19610    isDefault: true,
19611    scope: ['inserter', 'transform'],
19612    isActive: blockAttributes => blockAttributes?.type === 'checkbox'
19613  }, {
19614    name: 'email',
19615    title: (0,external_wp_i18n_namespaceObject.__)('Email Input'),
19616    icon: 'email',
19617    description: (0,external_wp_i18n_namespaceObject.__)('Used for email addresses.'),
19618    attributes: {
19619      type: 'email'
19620    },
19621    isDefault: true,
19622    scope: ['inserter', 'transform'],
19623    isActive: blockAttributes => blockAttributes?.type === 'email'
19624  }, {
19625    name: 'url',
19626    title: (0,external_wp_i18n_namespaceObject.__)('URL Input'),
19627    icon: 'admin-site',
19628    description: (0,external_wp_i18n_namespaceObject.__)('Used for URLs.'),
19629    attributes: {
19630      type: 'url'
19631    },
19632    isDefault: true,
19633    scope: ['inserter', 'transform'],
19634    isActive: blockAttributes => blockAttributes?.type === 'url'
19635  }, {
19636    name: 'tel',
19637    title: (0,external_wp_i18n_namespaceObject.__)('Telephone Input'),
19638    icon: 'phone',
19639    description: (0,external_wp_i18n_namespaceObject.__)('Used for phone numbers.'),
19640    attributes: {
19641      type: 'tel'
19642    },
19643    isDefault: true,
19644    scope: ['inserter', 'transform'],
19645    isActive: blockAttributes => blockAttributes?.type === 'tel'
19646  }, {
19647    name: 'number',
19648    title: (0,external_wp_i18n_namespaceObject.__)('Number Input'),
19649    icon: 'edit-page',
19650    description: (0,external_wp_i18n_namespaceObject.__)('A numeric input.'),
19651    attributes: {
19652      type: 'number'
19653    },
19654    isDefault: true,
19655    scope: ['inserter', 'transform'],
19656    isActive: blockAttributes => blockAttributes?.type === 'number'
19657  }];
19658  /* harmony default export */ const form_input_variations = (form_input_variations_variations);
19659  
19660  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-input/index.js
19661  /**
19662   * Internal dependencies
19663   */
19664  
19665  
19666  
19667  const form_input_metadata = {
19668    $schema: "https://schemas.wp.org/trunk/block.json",
19669    apiVersion: 3,
19670    __experimental: true,
19671    name: "core/form-input",
19672    title: "Input Field",
19673    category: "common",
19674    ancestor: ["core/form"],
19675    description: "The basic building block for forms.",
19676    keywords: ["input", "form"],
19677    textdomain: "default",
19678    icon: "forms",
19679    attributes: {
19680      type: {
19681        type: "string",
19682        "default": "text"
19683      },
19684      name: {
19685        type: "string"
19686      },
19687      label: {
19688        type: "rich-text",
19689        "default": "Label",
19690        selector: ".wp-block-form-input__label-content",
19691        source: "rich-text",
19692        role: "content"
19693      },
19694      inlineLabel: {
19695        type: "boolean",
19696        "default": false
19697      },
19698      required: {
19699        type: "boolean",
19700        "default": false,
19701        selector: ".wp-block-form-input__input",
19702        source: "attribute",
19703        attribute: "required"
19704      },
19705      placeholder: {
19706        type: "string",
19707        selector: ".wp-block-form-input__input",
19708        source: "attribute",
19709        attribute: "placeholder",
19710        role: "content"
19711      },
19712      value: {
19713        type: "string",
19714        "default": "",
19715        selector: "input",
19716        source: "attribute",
19717        attribute: "value"
19718      },
19719      visibilityPermissions: {
19720        type: "string",
19721        "default": "all"
19722      }
19723    },
19724    supports: {
19725      anchor: true,
19726      reusable: false,
19727      spacing: {
19728        margin: ["top", "bottom"]
19729      },
19730      __experimentalBorder: {
19731        radius: true,
19732        __experimentalSkipSerialization: true,
19733        __experimentalDefaultControls: {
19734          radius: true
19735        }
19736      }
19737    },
19738    style: ["wp-block-form-input"]
19739  };
19740  
19741  
19742  const {
19743    name: form_input_name
19744  } = form_input_metadata;
19745  
19746  const form_input_settings = {
19747    deprecated: form_input_deprecated,
19748    edit: form_input_edit,
19749    save: form_input_save_save,
19750    variations: form_input_variations
19751  };
19752  const form_input_init = () => initBlock({
19753    name: form_input_name,
19754    metadata: form_input_metadata,
19755    settings: form_input_settings
19756  });
19757  
19758  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submit-button/edit.js
19759  /**
19760   * WordPress dependencies
19761   */
19762  
19763  
19764  
19765  const form_submit_button_edit_TEMPLATE = [['core/buttons', {}, [['core/button', {
19766    text: (0,external_wp_i18n_namespaceObject.__)('Submit'),
19767    tagName: 'button',
19768    type: 'submit'
19769  }]]]];
19770  const form_submit_button_edit_Edit = () => {
19771    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
19772    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
19773      template: form_submit_button_edit_TEMPLATE,
19774      templateLock: 'all'
19775    });
19776    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19777      className: "wp-block-form-submit-wrapper",
19778      ...innerBlocksProps
19779    });
19780  };
19781  /* harmony default export */ const form_submit_button_edit = (form_submit_button_edit_Edit);
19782  
19783  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submit-button/save.js
19784  /**
19785   * WordPress dependencies
19786   */
19787  
19788  
19789  function form_submit_button_save_save() {
19790    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19791    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19792      className: "wp-block-form-submit-wrapper",
19793      ...blockProps,
19794      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
19795    });
19796  }
19797  
19798  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submit-button/index.js
19799  /**
19800   * Internal dependencies
19801   */
19802  
19803  
19804  const form_submit_button_metadata = {
19805    $schema: "https://schemas.wp.org/trunk/block.json",
19806    apiVersion: 3,
19807    __experimental: true,
19808    name: "core/form-submit-button",
19809    title: "Form Submit Button",
19810    category: "common",
19811    icon: "button",
19812    ancestor: ["core/form"],
19813    allowedBlocks: ["core/buttons", "core/button"],
19814    description: "A submission button for forms.",
19815    keywords: ["submit", "button", "form"],
19816    textdomain: "default",
19817    style: ["wp-block-form-submit-button"]
19818  };
19819  
19820  const {
19821    name: form_submit_button_name
19822  } = form_submit_button_metadata;
19823  
19824  const form_submit_button_settings = {
19825    edit: form_submit_button_edit,
19826    save: form_submit_button_save_save
19827  };
19828  const form_submit_button_init = () => initBlock({
19829    name: form_submit_button_name,
19830    metadata: form_submit_button_metadata,
19831    settings: form_submit_button_settings
19832  });
19833  
19834  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js
19835  /**
19836   * WordPress dependencies
19837   */
19838  
19839  
19840  const group = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
19841    viewBox: "0 0 24 24",
19842    xmlns: "http://www.w3.org/2000/svg",
19843    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
19844      d: "M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z"
19845    })
19846  });
19847  /* harmony default export */ const library_group = (group);
19848  
19849  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submission-notification/edit.js
19850  /**
19851   * WordPress dependencies
19852   */
19853  
19854  
19855  
19856  
19857  /**
19858   * External dependencies
19859   */
19860  
19861  
19862  const form_submission_notification_edit_TEMPLATE = [['core/paragraph', {
19863    content: (0,external_wp_i18n_namespaceObject.__)("Enter the message you wish displayed for form submission error/success, and select the type of the message (success/error) from the block's options.")
19864  }]];
19865  const form_submission_notification_edit_Edit = ({
19866    attributes,
19867    clientId
19868  }) => {
19869    const {
19870      type
19871    } = attributes;
19872    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
19873      className: dist_clsx('wp-block-form-submission-notification', {
19874        [`form-notification-type-$type}`]: type
19875      })
19876    });
19877    const {
19878      hasInnerBlocks
19879    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
19880      const {
19881        getBlock
19882      } = select(external_wp_blockEditor_namespaceObject.store);
19883      const block = getBlock(clientId);
19884      return {
19885        hasInnerBlocks: !!(block && block.innerBlocks.length)
19886      };
19887    }, [clientId]);
19888    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
19889      template: form_submission_notification_edit_TEMPLATE,
19890      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
19891    });
19892    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19893      ...innerBlocksProps,
19894      "data-message-success": (0,external_wp_i18n_namespaceObject.__)('Submission success notification'),
19895      "data-message-error": (0,external_wp_i18n_namespaceObject.__)('Submission error notification')
19896    });
19897  };
19898  /* harmony default export */ const form_submission_notification_edit = (form_submission_notification_edit_Edit);
19899  
19900  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submission-notification/save.js
19901  /**
19902   * WordPress dependencies
19903   */
19904  
19905  
19906  /**
19907   * External dependencies
19908   */
19909  
19910  
19911  function form_submission_notification_save_save({
19912    attributes
19913  }) {
19914    const {
19915      type
19916    } = attributes;
19917    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19918      ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save({
19919        className: dist_clsx('wp-block-form-submission-notification', {
19920          [`form-notification-type-$type}`]: type
19921        })
19922      }))
19923    });
19924  }
19925  
19926  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submission-notification/variations.js
19927  /**
19928   * WordPress dependencies
19929   */
19930  
19931  const form_submission_notification_variations_variations = [{
19932    name: 'form-submission-success',
19933    title: (0,external_wp_i18n_namespaceObject.__)('Form Submission Success'),
19934    description: (0,external_wp_i18n_namespaceObject.__)('Success message for form submissions.'),
19935    attributes: {
19936      type: 'success'
19937    },
19938    isDefault: true,
19939    innerBlocks: [['core/paragraph', {
19940      content: (0,external_wp_i18n_namespaceObject.__)('Your form has been submitted successfully.'),
19941      backgroundColor: '#00D084',
19942      textColor: '#000000',
19943      style: {
19944        elements: {
19945          link: {
19946            color: {
19947              text: '#000000'
19948            }
19949          }
19950        }
19951      }
19952    }]],
19953    scope: ['inserter', 'transform'],
19954    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'success'
19955  }, {
19956    name: 'form-submission-error',
19957    title: (0,external_wp_i18n_namespaceObject.__)('Form Submission Error'),
19958    description: (0,external_wp_i18n_namespaceObject.__)('Error/failure message for form submissions.'),
19959    attributes: {
19960      type: 'error'
19961    },
19962    isDefault: false,
19963    innerBlocks: [['core/paragraph', {
19964      content: (0,external_wp_i18n_namespaceObject.__)('There was an error submitting your form.'),
19965      backgroundColor: '#CF2E2E',
19966      textColor: '#FFFFFF',
19967      style: {
19968        elements: {
19969          link: {
19970            color: {
19971              text: '#FFFFFF'
19972            }
19973          }
19974        }
19975      }
19976    }]],
19977    scope: ['inserter', 'transform'],
19978    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'error'
19979  }];
19980  /* harmony default export */ const form_submission_notification_variations = (form_submission_notification_variations_variations);
19981  
19982  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/form-submission-notification/index.js
19983  /**
19984   * WordPress dependencies
19985   */
19986  
19987  
19988  /**
19989   * Internal dependencies
19990   */
19991  
19992  
19993  const form_submission_notification_metadata = {
19994    $schema: "https://schemas.wp.org/trunk/block.json",
19995    apiVersion: 3,
19996    __experimental: true,
19997    name: "core/form-submission-notification",
19998    title: "Form Submission Notification",
19999    category: "common",
20000    ancestor: ["core/form"],
20001    description: "Provide a notification message after the form has been submitted.",
20002    keywords: ["form", "feedback", "notification", "message"],
20003    textdomain: "default",
20004    icon: "feedback",
20005    attributes: {
20006      type: {
20007        type: "string",
20008        "default": "success"
20009      }
20010    }
20011  };
20012  
20013  
20014  const {
20015    name: form_submission_notification_name
20016  } = form_submission_notification_metadata;
20017  
20018  const form_submission_notification_settings = {
20019    icon: library_group,
20020    edit: form_submission_notification_edit,
20021    save: form_submission_notification_save_save,
20022    variations: form_submission_notification_variations
20023  };
20024  const form_submission_notification_init = () => initBlock({
20025    name: form_submission_notification_name,
20026    metadata: form_submission_notification_metadata,
20027    settings: form_submission_notification_settings
20028  });
20029  
20030  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/gallery.js
20031  /**
20032   * WordPress dependencies
20033   */
20034  
20035  
20036  const gallery = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
20037    viewBox: "0 0 24 24",
20038    xmlns: "http://www.w3.org/2000/svg",
20039    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
20040      d: "M16.375 4.5H4.625a.125.125 0 0 0-.125.125v8.254l2.859-1.54a.75.75 0 0 1 .68-.016l2.384 1.142 2.89-2.074a.75.75 0 0 1 .874 0l2.313 1.66V4.625a.125.125 0 0 0-.125-.125Zm.125 9.398-2.75-1.975-2.813 2.02a.75.75 0 0 1-.76.067l-2.444-1.17L4.5 14.583v1.792c0 .069.056.125.125.125h11.75a.125.125 0 0 0 .125-.125v-2.477ZM4.625 3C3.728 3 3 3.728 3 4.625v11.75C3 17.273 3.728 18 4.625 18h11.75c.898 0 1.625-.727 1.625-1.625V4.625C18 3.728 17.273 3 16.375 3H4.625ZM20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z",
20041      fillRule: "evenodd",
20042      clipRule: "evenodd"
20043    })
20044  });
20045  /* harmony default export */ const library_gallery = (gallery);
20046  
20047  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/constants.js
20048  const LINK_DESTINATION_NONE = 'none';
20049  const LINK_DESTINATION_MEDIA = 'media';
20050  const LINK_DESTINATION_ATTACHMENT = 'attachment';
20051  const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
20052  const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';
20053  
20054  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js
20055  /**
20056   * External dependencies
20057   */
20058  
20059  
20060  /**
20061   * WordPress dependencies
20062   */
20063  
20064  
20065  
20066  /**
20067   * Internal dependencies
20068   */
20069  
20070  
20071  
20072  const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
20073  const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
20074  
20075  /**
20076   * Original function to determine default number of columns from a block's
20077   * attributes.
20078   *
20079   * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks.
20080   *
20081   * @param {Object} attributes Block attributes.
20082   * @return {number}           Default number of columns for the gallery.
20083   */
20084  function defaultColumnsNumberV1(attributes) {
20085    return Math.min(3, attributes?.images?.length);
20086  }
20087  
20088  /**
20089   * Original function to determine new href and linkDestination values for an image block from the
20090   * supplied Gallery link destination.
20091   *
20092   * Used in deprecations: v1-6.
20093   *
20094   * @param {Object} image       Gallery image.
20095   * @param {string} destination Gallery's selected link destination.
20096   * @return {Object}            New attributes to assign to image block.
20097   */
20098  function getHrefAndDestination(image, destination) {
20099    // Need to determine the URL that the selected destination maps to.
20100    // Gutenberg and WordPress use different constants so the new link
20101    // destination also needs to be tweaked.
20102    switch (destination) {
20103      case DEPRECATED_LINK_DESTINATION_MEDIA:
20104        return {
20105          href: image?.source_url || image?.url,
20106          // eslint-disable-line camelcase
20107          linkDestination: LINK_DESTINATION_MEDIA
20108        };
20109      case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
20110        return {
20111          href: image?.link,
20112          linkDestination: LINK_DESTINATION_ATTACHMENT
20113        };
20114      case LINK_DESTINATION_MEDIA:
20115        return {
20116          href: image?.source_url || image?.url,
20117          // eslint-disable-line camelcase
20118          linkDestination: LINK_DESTINATION_MEDIA
20119        };
20120      case LINK_DESTINATION_ATTACHMENT:
20121        return {
20122          href: image?.link,
20123          linkDestination: LINK_DESTINATION_ATTACHMENT
20124        };
20125      case LINK_DESTINATION_NONE:
20126        return {
20127          href: undefined,
20128          linkDestination: LINK_DESTINATION_NONE
20129        };
20130    }
20131    return {};
20132  }
20133  function runV2Migration(attributes) {
20134    let linkTo = attributes.linkTo ? attributes.linkTo : 'none';
20135    if (linkTo === 'post') {
20136      linkTo = 'attachment';
20137    } else if (linkTo === 'file') {
20138      linkTo = 'media';
20139    }
20140    const imageBlocks = attributes.images.map(image => {
20141      return getImageBlock(image, attributes.sizeSlug, linkTo);
20142    });
20143    const {
20144      images,
20145      ids,
20146      ...restAttributes
20147    } = attributes;
20148    return [{
20149      ...restAttributes,
20150      linkTo,
20151      allowResize: false
20152    }, imageBlocks];
20153  }
20154  /**
20155   * Gets an Image block from gallery image data
20156   *
20157   * Used to migrate Galleries to nested Image InnerBlocks.
20158   *
20159   * @param {Object} image    Image properties.
20160   * @param {string} sizeSlug Gallery sizeSlug attribute.
20161   * @param {string} linkTo   Gallery linkTo attribute.
20162   * @return {Object}         Image block.
20163   */
20164  function getImageBlock(image, sizeSlug, linkTo) {
20165    return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
20166      ...(image.id && {
20167        id: parseInt(image.id)
20168      }),
20169      url: image.url,
20170      alt: image.alt,
20171      caption: image.caption,
20172      sizeSlug,
20173      ...getHrefAndDestination(image, linkTo)
20174    });
20175  }
20176  
20177  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
20178  // to the gallery figcaption element.
20179  const deprecated_v7 = {
20180    attributes: {
20181      images: {
20182        type: 'array',
20183        default: [],
20184        source: 'query',
20185        selector: '.blocks-gallery-item',
20186        query: {
20187          url: {
20188            type: 'string',
20189            source: 'attribute',
20190            selector: 'img',
20191            attribute: 'src'
20192          },
20193          fullUrl: {
20194            type: 'string',
20195            source: 'attribute',
20196            selector: 'img',
20197            attribute: 'data-full-url'
20198          },
20199          link: {
20200            type: 'string',
20201            source: 'attribute',
20202            selector: 'img',
20203            attribute: 'data-link'
20204          },
20205          alt: {
20206            type: 'string',
20207            source: 'attribute',
20208            selector: 'img',
20209            attribute: 'alt',
20210            default: ''
20211          },
20212          id: {
20213            type: 'string',
20214            source: 'attribute',
20215            selector: 'img',
20216            attribute: 'data-id'
20217          },
20218          caption: {
20219            type: 'string',
20220            source: 'html',
20221            selector: '.blocks-gallery-item__caption'
20222          }
20223        }
20224      },
20225      ids: {
20226        type: 'array',
20227        items: {
20228          type: 'number'
20229        },
20230        default: []
20231      },
20232      shortCodeTransforms: {
20233        type: 'array',
20234        default: [],
20235        items: {
20236          type: 'object'
20237        }
20238      },
20239      columns: {
20240        type: 'number',
20241        minimum: 1,
20242        maximum: 8
20243      },
20244      caption: {
20245        type: 'string',
20246        source: 'html',
20247        selector: '.blocks-gallery-caption'
20248      },
20249      imageCrop: {
20250        type: 'boolean',
20251        default: true
20252      },
20253      fixedHeight: {
20254        type: 'boolean',
20255        default: true
20256      },
20257      linkTarget: {
20258        type: 'string'
20259      },
20260      linkTo: {
20261        type: 'string'
20262      },
20263      sizeSlug: {
20264        type: 'string',
20265        default: 'large'
20266      },
20267      allowResize: {
20268        type: 'boolean',
20269        default: false
20270      }
20271    },
20272    save({
20273      attributes
20274    }) {
20275      const {
20276        caption,
20277        columns,
20278        imageCrop
20279      } = attributes;
20280      const className = dist_clsx('has-nested-images', {
20281        [`columns-$columns}`]: columns !== undefined,
20282        [`columns-default`]: columns === undefined,
20283        'is-cropped': imageCrop
20284      });
20285      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
20286        className
20287      });
20288      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
20289      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20290        ...innerBlocksProps,
20291        children: [innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20292          tagName: "figcaption",
20293          className: "blocks-gallery-caption",
20294          value: caption
20295        })]
20296      });
20297    }
20298  };
20299  const deprecated_v6 = {
20300    attributes: {
20301      images: {
20302        type: 'array',
20303        default: [],
20304        source: 'query',
20305        selector: '.blocks-gallery-item',
20306        query: {
20307          url: {
20308            type: 'string',
20309            source: 'attribute',
20310            selector: 'img',
20311            attribute: 'src'
20312          },
20313          fullUrl: {
20314            type: 'string',
20315            source: 'attribute',
20316            selector: 'img',
20317            attribute: 'data-full-url'
20318          },
20319          link: {
20320            type: 'string',
20321            source: 'attribute',
20322            selector: 'img',
20323            attribute: 'data-link'
20324          },
20325          alt: {
20326            type: 'string',
20327            source: 'attribute',
20328            selector: 'img',
20329            attribute: 'alt',
20330            default: ''
20331          },
20332          id: {
20333            type: 'string',
20334            source: 'attribute',
20335            selector: 'img',
20336            attribute: 'data-id'
20337          },
20338          caption: {
20339            type: 'string',
20340            source: 'html',
20341            selector: '.blocks-gallery-item__caption'
20342          }
20343        }
20344      },
20345      ids: {
20346        type: 'array',
20347        items: {
20348          type: 'number'
20349        },
20350        default: []
20351      },
20352      columns: {
20353        type: 'number',
20354        minimum: 1,
20355        maximum: 8
20356      },
20357      caption: {
20358        type: 'string',
20359        source: 'html',
20360        selector: '.blocks-gallery-caption'
20361      },
20362      imageCrop: {
20363        type: 'boolean',
20364        default: true
20365      },
20366      fixedHeight: {
20367        type: 'boolean',
20368        default: true
20369      },
20370      linkTo: {
20371        type: 'string'
20372      },
20373      sizeSlug: {
20374        type: 'string',
20375        default: 'large'
20376      }
20377    },
20378    supports: {
20379      anchor: true,
20380      align: true
20381    },
20382    save({
20383      attributes
20384    }) {
20385      const {
20386        images,
20387        columns = defaultColumnsNumberV1(attributes),
20388        imageCrop,
20389        caption,
20390        linkTo
20391      } = attributes;
20392      const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`;
20393      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20394        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
20395          className
20396        }),
20397        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
20398          className: "blocks-gallery-grid",
20399          children: images.map(image => {
20400            let href;
20401            switch (linkTo) {
20402              case DEPRECATED_LINK_DESTINATION_MEDIA:
20403                href = image.fullUrl || image.url;
20404                break;
20405              case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
20406                href = image.link;
20407                break;
20408            }
20409            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
20410              src: image.url,
20411              alt: image.alt,
20412              "data-id": image.id,
20413              "data-full-url": image.fullUrl,
20414              "data-link": image.link,
20415              className: image.id ? `wp-image-$image.id}` : null
20416            });
20417            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
20418              className: "blocks-gallery-item",
20419              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20420                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
20421                  href: href,
20422                  children: img
20423                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20424                  tagName: "figcaption",
20425                  className: "blocks-gallery-item__caption",
20426                  value: image.caption
20427                })]
20428              })
20429            }, image.id || image.url);
20430          })
20431        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20432          tagName: "figcaption",
20433          className: "blocks-gallery-caption",
20434          value: caption
20435        })]
20436      });
20437    },
20438    migrate(attributes) {
20439      return runV2Migration(attributes);
20440    }
20441  };
20442  const deprecated_v5 = {
20443    attributes: {
20444      images: {
20445        type: 'array',
20446        default: [],
20447        source: 'query',
20448        selector: '.blocks-gallery-item',
20449        query: {
20450          url: {
20451            type: 'string',
20452            source: 'attribute',
20453            selector: 'img',
20454            attribute: 'src'
20455          },
20456          fullUrl: {
20457            type: 'string',
20458            source: 'attribute',
20459            selector: 'img',
20460            attribute: 'data-full-url'
20461          },
20462          link: {
20463            type: 'string',
20464            source: 'attribute',
20465            selector: 'img',
20466            attribute: 'data-link'
20467          },
20468          alt: {
20469            type: 'string',
20470            source: 'attribute',
20471            selector: 'img',
20472            attribute: 'alt',
20473            default: ''
20474          },
20475          id: {
20476            type: 'string',
20477            source: 'attribute',
20478            selector: 'img',
20479            attribute: 'data-id'
20480          },
20481          caption: {
20482            type: 'string',
20483            source: 'html',
20484            selector: '.blocks-gallery-item__caption'
20485          }
20486        }
20487      },
20488      ids: {
20489        type: 'array',
20490        items: {
20491          type: 'number'
20492        },
20493        default: []
20494      },
20495      columns: {
20496        type: 'number',
20497        minimum: 1,
20498        maximum: 8
20499      },
20500      caption: {
20501        type: 'string',
20502        source: 'html',
20503        selector: '.blocks-gallery-caption'
20504      },
20505      imageCrop: {
20506        type: 'boolean',
20507        default: true
20508      },
20509      linkTo: {
20510        type: 'string',
20511        default: 'none'
20512      },
20513      sizeSlug: {
20514        type: 'string',
20515        default: 'large'
20516      }
20517    },
20518    supports: {
20519      align: true
20520    },
20521    isEligible({
20522      linkTo
20523    }) {
20524      return !linkTo || linkTo === 'attachment' || linkTo === 'media';
20525    },
20526    migrate(attributes) {
20527      return runV2Migration(attributes);
20528    },
20529    save({
20530      attributes
20531    }) {
20532      const {
20533        images,
20534        columns = defaultColumnsNumberV1(attributes),
20535        imageCrop,
20536        caption,
20537        linkTo
20538      } = attributes;
20539      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20540        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
20541        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
20542          className: "blocks-gallery-grid",
20543          children: images.map(image => {
20544            let href;
20545            switch (linkTo) {
20546              case 'media':
20547                href = image.fullUrl || image.url;
20548                break;
20549              case 'attachment':
20550                href = image.link;
20551                break;
20552            }
20553            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
20554              src: image.url,
20555              alt: image.alt,
20556              "data-id": image.id,
20557              "data-full-url": image.fullUrl,
20558              "data-link": image.link,
20559              className: image.id ? `wp-image-$image.id}` : null
20560            });
20561            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
20562              className: "blocks-gallery-item",
20563              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20564                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
20565                  href: href,
20566                  children: img
20567                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20568                  tagName: "figcaption",
20569                  className: "blocks-gallery-item__caption",
20570                  value: image.caption
20571                })]
20572              })
20573            }, image.id || image.url);
20574          })
20575        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20576          tagName: "figcaption",
20577          className: "blocks-gallery-caption",
20578          value: caption
20579        })]
20580      });
20581    }
20582  };
20583  const deprecated_v4 = {
20584    attributes: {
20585      images: {
20586        type: 'array',
20587        default: [],
20588        source: 'query',
20589        selector: '.blocks-gallery-item',
20590        query: {
20591          url: {
20592            source: 'attribute',
20593            selector: 'img',
20594            attribute: 'src'
20595          },
20596          fullUrl: {
20597            source: 'attribute',
20598            selector: 'img',
20599            attribute: 'data-full-url'
20600          },
20601          link: {
20602            source: 'attribute',
20603            selector: 'img',
20604            attribute: 'data-link'
20605          },
20606          alt: {
20607            source: 'attribute',
20608            selector: 'img',
20609            attribute: 'alt',
20610            default: ''
20611          },
20612          id: {
20613            source: 'attribute',
20614            selector: 'img',
20615            attribute: 'data-id'
20616          },
20617          caption: {
20618            type: 'string',
20619            source: 'html',
20620            selector: '.blocks-gallery-item__caption'
20621          }
20622        }
20623      },
20624      ids: {
20625        type: 'array',
20626        default: []
20627      },
20628      columns: {
20629        type: 'number'
20630      },
20631      caption: {
20632        type: 'string',
20633        source: 'html',
20634        selector: '.blocks-gallery-caption'
20635      },
20636      imageCrop: {
20637        type: 'boolean',
20638        default: true
20639      },
20640      linkTo: {
20641        type: 'string',
20642        default: 'none'
20643      }
20644    },
20645    supports: {
20646      align: true
20647    },
20648    isEligible({
20649      ids
20650    }) {
20651      return ids && ids.some(id => typeof id === 'string');
20652    },
20653    migrate(attributes) {
20654      return runV2Migration(attributes);
20655    },
20656    save({
20657      attributes
20658    }) {
20659      const {
20660        images,
20661        columns = defaultColumnsNumberV1(attributes),
20662        imageCrop,
20663        caption,
20664        linkTo
20665      } = attributes;
20666      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20667        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
20668        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
20669          className: "blocks-gallery-grid",
20670          children: images.map(image => {
20671            let href;
20672            switch (linkTo) {
20673              case 'media':
20674                href = image.fullUrl || image.url;
20675                break;
20676              case 'attachment':
20677                href = image.link;
20678                break;
20679            }
20680            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
20681              src: image.url,
20682              alt: image.alt,
20683              "data-id": image.id,
20684              "data-full-url": image.fullUrl,
20685              "data-link": image.link,
20686              className: image.id ? `wp-image-$image.id}` : null
20687            });
20688            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
20689              className: "blocks-gallery-item",
20690              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20691                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
20692                  href: href,
20693                  children: img
20694                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20695                  tagName: "figcaption",
20696                  className: "blocks-gallery-item__caption",
20697                  value: image.caption
20698                })]
20699              })
20700            }, image.id || image.url);
20701          })
20702        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20703          tagName: "figcaption",
20704          className: "blocks-gallery-caption",
20705          value: caption
20706        })]
20707      });
20708    }
20709  };
20710  const gallery_deprecated_v3 = {
20711    attributes: {
20712      images: {
20713        type: 'array',
20714        default: [],
20715        source: 'query',
20716        selector: 'ul.wp-block-gallery .blocks-gallery-item',
20717        query: {
20718          url: {
20719            source: 'attribute',
20720            selector: 'img',
20721            attribute: 'src'
20722          },
20723          fullUrl: {
20724            source: 'attribute',
20725            selector: 'img',
20726            attribute: 'data-full-url'
20727          },
20728          alt: {
20729            source: 'attribute',
20730            selector: 'img',
20731            attribute: 'alt',
20732            default: ''
20733          },
20734          id: {
20735            source: 'attribute',
20736            selector: 'img',
20737            attribute: 'data-id'
20738          },
20739          link: {
20740            source: 'attribute',
20741            selector: 'img',
20742            attribute: 'data-link'
20743          },
20744          caption: {
20745            type: 'string',
20746            source: 'html',
20747            selector: 'figcaption'
20748          }
20749        }
20750      },
20751      ids: {
20752        type: 'array',
20753        default: []
20754      },
20755      columns: {
20756        type: 'number'
20757      },
20758      imageCrop: {
20759        type: 'boolean',
20760        default: true
20761      },
20762      linkTo: {
20763        type: 'string',
20764        default: 'none'
20765      }
20766    },
20767    supports: {
20768      align: true
20769    },
20770    save({
20771      attributes
20772    }) {
20773      const {
20774        images,
20775        columns = defaultColumnsNumberV1(attributes),
20776        imageCrop,
20777        linkTo
20778      } = attributes;
20779      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
20780        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
20781        children: images.map(image => {
20782          let href;
20783          switch (linkTo) {
20784            case 'media':
20785              href = image.fullUrl || image.url;
20786              break;
20787            case 'attachment':
20788              href = image.link;
20789              break;
20790          }
20791          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
20792            src: image.url,
20793            alt: image.alt,
20794            "data-id": image.id,
20795            "data-full-url": image.fullUrl,
20796            "data-link": image.link,
20797            className: image.id ? `wp-image-$image.id}` : null
20798          });
20799          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
20800            className: "blocks-gallery-item",
20801            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20802              children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
20803                href: href,
20804                children: img
20805              }) : img, image.caption && image.caption.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20806                tagName: "figcaption",
20807                value: image.caption
20808              })]
20809            })
20810          }, image.id || image.url);
20811        })
20812      });
20813    },
20814    migrate(attributes) {
20815      return runV2Migration(attributes);
20816    }
20817  };
20818  const gallery_deprecated_v2 = {
20819    attributes: {
20820      images: {
20821        type: 'array',
20822        default: [],
20823        source: 'query',
20824        selector: 'ul.wp-block-gallery .blocks-gallery-item',
20825        query: {
20826          url: {
20827            source: 'attribute',
20828            selector: 'img',
20829            attribute: 'src'
20830          },
20831          alt: {
20832            source: 'attribute',
20833            selector: 'img',
20834            attribute: 'alt',
20835            default: ''
20836          },
20837          id: {
20838            source: 'attribute',
20839            selector: 'img',
20840            attribute: 'data-id'
20841          },
20842          link: {
20843            source: 'attribute',
20844            selector: 'img',
20845            attribute: 'data-link'
20846          },
20847          caption: {
20848            type: 'string',
20849            source: 'html',
20850            selector: 'figcaption'
20851          }
20852        }
20853      },
20854      columns: {
20855        type: 'number'
20856      },
20857      imageCrop: {
20858        type: 'boolean',
20859        default: true
20860      },
20861      linkTo: {
20862        type: 'string',
20863        default: 'none'
20864      }
20865    },
20866    isEligible({
20867      images,
20868      ids
20869    }) {
20870      return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || images.some((id, index) => {
20871        if (!id && ids[index] !== null) {
20872          return true;
20873        }
20874        return parseInt(id, 10) !== ids[index];
20875      }));
20876    },
20877    migrate(attributes) {
20878      return runV2Migration(attributes);
20879    },
20880    supports: {
20881      align: true
20882    },
20883    save({
20884      attributes
20885    }) {
20886      const {
20887        images,
20888        columns = defaultColumnsNumberV1(attributes),
20889        imageCrop,
20890        linkTo
20891      } = attributes;
20892      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
20893        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
20894        children: images.map(image => {
20895          let href;
20896          switch (linkTo) {
20897            case 'media':
20898              href = image.url;
20899              break;
20900            case 'attachment':
20901              href = image.link;
20902              break;
20903          }
20904          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
20905            src: image.url,
20906            alt: image.alt,
20907            "data-id": image.id,
20908            "data-link": image.link,
20909            className: image.id ? `wp-image-$image.id}` : null
20910          });
20911          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
20912            className: "blocks-gallery-item",
20913            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
20914              children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
20915                href: href,
20916                children: img
20917              }) : img, image.caption && image.caption.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20918                tagName: "figcaption",
20919                value: image.caption
20920              })]
20921            })
20922          }, image.id || image.url);
20923        })
20924      });
20925    }
20926  };
20927  const gallery_deprecated_v1 = {
20928    attributes: {
20929      images: {
20930        type: 'array',
20931        default: [],
20932        source: 'query',
20933        selector: 'div.wp-block-gallery figure.blocks-gallery-image img',
20934        query: {
20935          url: {
20936            source: 'attribute',
20937            attribute: 'src'
20938          },
20939          alt: {
20940            source: 'attribute',
20941            attribute: 'alt',
20942            default: ''
20943          },
20944          id: {
20945            source: 'attribute',
20946            attribute: 'data-id'
20947          }
20948        }
20949      },
20950      columns: {
20951        type: 'number'
20952      },
20953      imageCrop: {
20954        type: 'boolean',
20955        default: true
20956      },
20957      linkTo: {
20958        type: 'string',
20959        default: 'none'
20960      },
20961      align: {
20962        type: 'string',
20963        default: 'none'
20964      }
20965    },
20966    supports: {
20967      align: true
20968    },
20969    save({
20970      attributes
20971    }) {
20972      const {
20973        images,
20974        columns = defaultColumnsNumberV1(attributes),
20975        align,
20976        imageCrop,
20977        linkTo
20978      } = attributes;
20979      const className = dist_clsx(`columns-$columns}`, {
20980        alignnone: align === 'none',
20981        'is-cropped': imageCrop
20982      });
20983      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20984        className: className,
20985        children: images.map(image => {
20986          let href;
20987          switch (linkTo) {
20988            case 'media':
20989              href = image.url;
20990              break;
20991            case 'attachment':
20992              href = image.link;
20993              break;
20994          }
20995          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
20996            src: image.url,
20997            alt: image.alt,
20998            "data-id": image.id
20999          });
21000          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
21001            className: "blocks-gallery-image",
21002            children: href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21003              href: href,
21004              children: img
21005            }) : img
21006          }, image.id || image.url);
21007        })
21008      });
21009    },
21010    migrate(attributes) {
21011      return runV2Migration(attributes);
21012    }
21013  };
21014  /* harmony default export */ const gallery_deprecated = ([deprecated_v7, deprecated_v6, deprecated_v5, deprecated_v4, gallery_deprecated_v3, gallery_deprecated_v2, gallery_deprecated_v1]);
21015  
21016  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-link.js
21017  /**
21018   * WordPress dependencies
21019   */
21020  
21021  
21022  const customLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
21023    xmlns: "http://www.w3.org/2000/svg",
21024    viewBox: "0 0 24 24",
21025    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
21026      d: "M12.5 14.5h-1V16h1c2.2 0 4-1.8 4-4s-1.8-4-4-4h-1v1.5h1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5zm-4 1.5v-1.5h-1C6.1 14.5 5 13.4 5 12s1.1-2.5 2.5-2.5h1V8h-1c-2.2 0-4 1.8-4 4s1.8 4 4 4h1zm-1-3.2h5v-1.5h-5v1.5zM18 4H9c-1.1 0-2 .9-2 2v.5h1.5V6c0-.3.2-.5.5-.5h9c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H9c-.3 0-.5-.2-.5-.5v-.5H7v.5c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2z"
21027    })
21028  });
21029  /* harmony default export */ const custom_link = (customLink);
21030  
21031  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/image.js
21032  /**
21033   * WordPress dependencies
21034   */
21035  
21036  
21037  const image_image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
21038    viewBox: "0 0 24 24",
21039    xmlns: "http://www.w3.org/2000/svg",
21040    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
21041      d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"
21042    })
21043  });
21044  /* harmony default export */ const library_image = (image_image);
21045  
21046  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js
21047  /**
21048   * WordPress dependencies
21049   */
21050  
21051  
21052  
21053  const sharedIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
21054    icon: library_gallery
21055  });
21056  
21057  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared.js
21058  function defaultColumnsNumber(imageCount) {
21059    return imageCount ? Math.min(3, imageCount) : 3;
21060  }
21061  const pickRelevantMediaFiles = (image, sizeSlug = 'large') => {
21062    const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link'].includes(key)));
21063    imageProps.url = image?.sizes?.[sizeSlug]?.url || image?.media_details?.sizes?.[sizeSlug]?.source_url || image?.url || image?.source_url;
21064    const fullUrl = image?.sizes?.full?.url || image?.media_details?.sizes?.full?.source_url;
21065    if (fullUrl) {
21066      imageProps.fullUrl = fullUrl;
21067    }
21068    return imageProps;
21069  };
21070  
21071  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/constants.js
21072  const constants_MIN_SIZE = 20;
21073  const constants_LINK_DESTINATION_NONE = 'none';
21074  const constants_LINK_DESTINATION_MEDIA = 'media';
21075  const constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
21076  const LINK_DESTINATION_CUSTOM = 'custom';
21077  const constants_NEW_TAB_REL = ['noreferrer', 'noopener'];
21078  const constants_ALLOWED_MEDIA_TYPES = ['image'];
21079  const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0;
21080  
21081  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/utils.js
21082  /**
21083   * Internal dependencies
21084   */
21085  
21086  
21087  
21088  /**
21089   * Determines new href and linkDestination values for an Image block from the
21090   * supplied Gallery link destination, or falls back to the Image blocks link.
21091   *
21092   * @param {Object} image              Gallery image.
21093   * @param {string} galleryDestination Gallery's selected link destination.
21094   * @param {Object} imageDestination   Image blocks attributes.
21095   * @return {Object}            New attributes to assign to image block.
21096   */
21097  function utils_getHrefAndDestination(image, galleryDestination, imageDestination) {
21098    // Gutenberg and WordPress use different constants so if image_default_link_type
21099    // option is set we need to map from the WP Core values.
21100    switch (imageDestination ? imageDestination : galleryDestination) {
21101      case LINK_DESTINATION_MEDIA_WP_CORE:
21102      case LINK_DESTINATION_MEDIA:
21103        return {
21104          href: image?.source_url || image?.url,
21105          // eslint-disable-line camelcase
21106          linkDestination: constants_LINK_DESTINATION_MEDIA
21107        };
21108      case LINK_DESTINATION_ATTACHMENT_WP_CORE:
21109      case LINK_DESTINATION_ATTACHMENT:
21110        return {
21111          href: image?.link,
21112          linkDestination: constants_LINK_DESTINATION_ATTACHMENT
21113        };
21114      case LINK_DESTINATION_NONE:
21115        return {
21116          href: undefined,
21117          linkDestination: constants_LINK_DESTINATION_NONE
21118        };
21119    }
21120    return {};
21121  }
21122  
21123  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/utils.js
21124  /**
21125   * Internal dependencies
21126   */
21127  
21128  
21129  /**
21130   * Evaluates a CSS aspect-ratio property value as a number.
21131   *
21132   * Degenerate or invalid ratios behave as 'auto'. And 'auto' ratios return NaN.
21133   *
21134   * @see https://drafts.csswg.org/css-sizing-4/#aspect-ratio
21135   *
21136   * @param {string} value CSS aspect-ratio property value.
21137   * @return {number} Numerical aspect ratio or NaN if invalid.
21138   */
21139  function evalAspectRatio(value) {
21140    const [width, height = 1] = value.split('/').map(Number);
21141    const aspectRatio = width / height;
21142    return aspectRatio === Infinity || aspectRatio === 0 ? NaN : aspectRatio;
21143  }
21144  function removeNewTabRel(currentRel) {
21145    let newRel = currentRel;
21146    if (currentRel !== undefined && newRel) {
21147      constants_NEW_TAB_REL.forEach(relVal => {
21148        const regExp = new RegExp('\\b' + relVal + '\\b', 'gi');
21149        newRel = newRel.replace(regExp, '');
21150      });
21151  
21152      // Only trim if NEW_TAB_REL values was replaced.
21153      if (newRel !== currentRel) {
21154        newRel = newRel.trim();
21155      }
21156      if (!newRel) {
21157        newRel = undefined;
21158      }
21159    }
21160    return newRel;
21161  }
21162  
21163  /**
21164   * Helper to get the link target settings to be stored.
21165   *
21166   * @param {boolean} value          The new link target value.
21167   * @param {Object}  attributes     Block attributes.
21168   * @param {Object}  attributes.rel Image block's rel attribute.
21169   *
21170   * @return {Object} Updated link target settings.
21171   */
21172  function getUpdatedLinkTargetSettings(value, {
21173    rel
21174  }) {
21175    const linkTarget = value ? '_blank' : undefined;
21176    let updatedRel;
21177    if (!linkTarget && !rel) {
21178      updatedRel = undefined;
21179    } else {
21180      updatedRel = removeNewTabRel(rel);
21181    }
21182    return {
21183      linkTarget,
21184      rel: updatedRel
21185    };
21186  }
21187  
21188  /**
21189   * Determines new Image block attributes size selection.
21190   *
21191   * @param {Object} image Media file object for gallery image.
21192   * @param {string} size  Selected size slug to apply.
21193   */
21194  function getImageSizeAttributes(image, size) {
21195    const url = image?.media_details?.sizes?.[size]?.source_url;
21196    if (url) {
21197      return {
21198        url,
21199        width: undefined,
21200        height: undefined,
21201        sizeSlug: size
21202      };
21203    }
21204    return {};
21205  }
21206  
21207  /**
21208   * Checks if the file has a valid file type.
21209   *
21210   * @param {File} file - The file to check.
21211   * @return {boolean} - Returns true if the file has a valid file type, otherwise false.
21212   */
21213  function isValidFileType(file) {
21214    return constants_ALLOWED_MEDIA_TYPES.some(mediaType => file.type.indexOf(mediaType) === 0);
21215  }
21216  
21217  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js
21218  /**
21219   * External dependencies
21220   */
21221  
21222  
21223  /**
21224   * WordPress dependencies
21225   */
21226  
21227  
21228  
21229  /**
21230   * Internal dependencies
21231   */
21232  
21233  
21234  
21235  function Gallery(props) {
21236    const {
21237      attributes,
21238      isSelected,
21239      setAttributes,
21240      mediaPlaceholder,
21241      insertBlocksAfter,
21242      blockProps,
21243      __unstableLayoutClassNames: layoutClassNames,
21244      isContentLocked,
21245      multiGallerySelection
21246    } = props;
21247    const {
21248      align,
21249      columns,
21250      imageCrop
21251    } = attributes;
21252    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21253      ...blockProps,
21254      className: dist_clsx(blockProps.className, layoutClassNames, 'blocks-gallery-grid', {
21255        [`align$align}`]: align,
21256        [`columns-$columns}`]: columns !== undefined,
21257        [`columns-default`]: columns === undefined,
21258        'is-cropped': imageCrop
21259      }),
21260      children: [blockProps.children, isSelected && !blockProps.children && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
21261        className: "blocks-gallery-media-placeholder-wrapper",
21262        children: mediaPlaceholder
21263      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
21264        attributes: attributes,
21265        setAttributes: setAttributes,
21266        isSelected: isSelected,
21267        insertBlocksAfter: insertBlocksAfter,
21268        showToolbarButton: !multiGallerySelection && !isContentLocked,
21269        className: "blocks-gallery-caption",
21270        label: (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
21271        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add gallery caption')
21272      })]
21273    });
21274  }
21275  
21276  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-image-sizes.js
21277  /**
21278   * WordPress dependencies
21279   */
21280  
21281  
21282  /**
21283   * Calculates the image sizes that are available for the current gallery images in order to
21284   * populate the 'Resolution' selector.
21285   *
21286   * @param {Array}    images      Basic image block data taken from current gallery innerBlock.
21287   * @param {boolean}  isSelected  Is the block currently selected in the editor.
21288   * @param {Function} getSettings Block editor store selector.
21289   *
21290   * @return {Array} An array of image size options.
21291   */
21292  function useImageSizes(images, isSelected, getSettings) {
21293    return (0,external_wp_element_namespaceObject.useMemo)(() => getImageSizing(), [images, isSelected]);
21294    function getImageSizing() {
21295      if (!images || images.length === 0) {
21296        return;
21297      }
21298      const {
21299        imageSizes
21300      } = getSettings();
21301      let resizedImages = {};
21302      if (isSelected) {
21303        resizedImages = images.reduce((currentResizedImages, img) => {
21304          if (!img.id) {
21305            return currentResizedImages;
21306          }
21307          const sizes = imageSizes.reduce((currentSizes, size) => {
21308            const defaultUrl = img.sizes?.[size.slug]?.url;
21309            const mediaDetailsUrl = img.media_details?.sizes?.[size.slug]?.source_url;
21310            return {
21311              ...currentSizes,
21312              [size.slug]: defaultUrl || mediaDetailsUrl
21313            };
21314          }, {});
21315          return {
21316            ...currentResizedImages,
21317            [parseInt(img.id, 10)]: sizes
21318          };
21319        }, {});
21320      }
21321      const resizedImageSizes = Object.values(resizedImages);
21322      return imageSizes.filter(({
21323        slug
21324      }) => resizedImageSizes.some(sizes => sizes[slug])).map(({
21325        name,
21326        slug
21327      }) => ({
21328        value: slug,
21329        label: name
21330      }));
21331    }
21332  }
21333  
21334  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-new-images.js
21335  /**
21336   * WordPress dependencies
21337   */
21338  
21339  
21340  /**
21341   * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This
21342   * is required so default gallery attributes can be applied without overwriting any custom
21343   * attributes applied to existing images.
21344   *
21345   * @param {Array} images    Basic image block data taken from current gallery innerBlock
21346   * @param {Array} imageData The related image data for each of the current gallery images.
21347   *
21348   * @return {Array} An array of any new images that have been added to the gallery.
21349   */
21350  function useGetNewImages(images, imageData) {
21351    const [currentImages, setCurrentImages] = (0,external_wp_element_namespaceObject.useState)([]);
21352    return (0,external_wp_element_namespaceObject.useMemo)(() => getNewImages(), [images, imageData]);
21353    function getNewImages() {
21354      let imagesUpdated = false;
21355  
21356      // First lets check if any images have been deleted.
21357      const newCurrentImages = currentImages.filter(currentImg => images.find(img => {
21358        return currentImg.clientId === img.clientId;
21359      }));
21360      if (newCurrentImages.length < currentImages.length) {
21361        imagesUpdated = true;
21362      }
21363  
21364      // Now lets see if we have any images hydrated from saved content and if so
21365      // add them to currentImages state.
21366      images.forEach(image => {
21367        if (image.fromSavedContent && !newCurrentImages.find(currentImage => currentImage.id === image.id)) {
21368          imagesUpdated = true;
21369          newCurrentImages.push(image);
21370        }
21371      });
21372  
21373      // Now check for any new images that have been added to InnerBlocks and for which
21374      // we have the imageData we need for setting default block attributes.
21375      const newImages = images.filter(image => !newCurrentImages.find(currentImage => image.clientId && currentImage.clientId === image.clientId) && imageData?.find(img => img.id === image.id) && !image.fromSavedConent);
21376      if (imagesUpdated || newImages?.length > 0) {
21377        setCurrentImages([...newCurrentImages, ...newImages]);
21378      }
21379      return newImages.length > 0 ? newImages : null;
21380    }
21381  }
21382  
21383  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-media.js
21384  /**
21385   * WordPress dependencies
21386   */
21387  
21388  
21389  const EMPTY_IMAGE_MEDIA = [];
21390  
21391  /**
21392   * Retrieves the extended media info for each gallery image from the store. This is used to
21393   * determine which image size options are available for the current gallery.
21394   *
21395   * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.
21396   *
21397   * @return {Array} An array of media info options for each gallery image.
21398   */
21399  function useGetMedia(innerBlockImages) {
21400    return (0,external_wp_data_namespaceObject.useSelect)(select => {
21401      var _select$getMediaItems;
21402      const imageIds = innerBlockImages.map(imageBlock => imageBlock.attributes.id).filter(id => id !== undefined);
21403      if (imageIds.length === 0) {
21404        return EMPTY_IMAGE_MEDIA;
21405      }
21406      return (_select$getMediaItems = select(external_wp_coreData_namespaceObject.store).getMediaItems({
21407        include: imageIds.join(','),
21408        per_page: -1,
21409        orderby: 'include'
21410      })) !== null && _select$getMediaItems !== void 0 ? _select$getMediaItems : EMPTY_IMAGE_MEDIA;
21411    }, [innerBlockImages]);
21412  }
21413  
21414  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gap-styles.js
21415  /**
21416   * WordPress dependencies
21417   */
21418  
21419  function GapStyles({
21420    blockGap,
21421    clientId
21422  }) {
21423    // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
21424    // gap on the gallery.
21425    const fallbackValue = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
21426    let gapValue = fallbackValue;
21427    let column = fallbackValue;
21428    let row;
21429  
21430    // Check for the possibility of split block gap values. See: https://github.com/WordPress/gutenberg/pull/37736
21431    if (!!blockGap) {
21432      row = typeof blockGap === 'string' ? (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap) : (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap?.top) || fallbackValue;
21433      column = typeof blockGap === 'string' ? (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap) : (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap?.left) || fallbackValue;
21434      gapValue = row === column ? row : `$row} $column}`;
21435    }
21436  
21437    // The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.
21438    const gap = `#block-$clientId} {
21439          --wp--style--unstable-gallery-gap: $column === '0' ? '0px' : column};
21440          gap: $gapValue}
21441      }`;
21442    (0,external_wp_blockEditor_namespaceObject.useStyleOverride)({
21443      css: gap
21444    });
21445    return null;
21446  }
21447  
21448  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit.js
21449  /**
21450   * External dependencies
21451   */
21452  
21453  
21454  /**
21455   * WordPress dependencies
21456   */
21457  
21458  
21459  
21460  
21461  
21462  
21463  
21464  
21465  
21466  
21467  
21468  /**
21469   * Internal dependencies
21470   */
21471  
21472  
21473  
21474  
21475  
21476  
21477  
21478  
21479  
21480  
21481  
21482  
21483  
21484  const MAX_COLUMNS = 8;
21485  const linkOptions = [{
21486    icon: custom_link,
21487    label: (0,external_wp_i18n_namespaceObject.__)('Link images to attachment pages'),
21488    value: LINK_DESTINATION_ATTACHMENT,
21489    noticeText: (0,external_wp_i18n_namespaceObject.__)('Attachment Pages')
21490  }, {
21491    icon: library_image,
21492    label: (0,external_wp_i18n_namespaceObject.__)('Link images to media files'),
21493    value: LINK_DESTINATION_MEDIA,
21494    noticeText: (0,external_wp_i18n_namespaceObject.__)('Media Files')
21495  }, {
21496    icon: link_off,
21497    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Media item link option'),
21498    value: LINK_DESTINATION_NONE,
21499    noticeText: (0,external_wp_i18n_namespaceObject.__)('None')
21500  }];
21501  const edit_ALLOWED_MEDIA_TYPES = ['image'];
21502  const PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.isNative ? (0,external_wp_i18n_namespaceObject.__)('Add media') : (0,external_wp_i18n_namespaceObject.__)('Drag images, upload new ones or select files from your library.');
21503  const MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.isNative ? {
21504    type: 'stepper'
21505  } : {};
21506  const gallery_edit_DEFAULT_BLOCK = {
21507    name: 'core/image'
21508  };
21509  const EMPTY_ARRAY = [];
21510  function GalleryEdit(props) {
21511    const {
21512      setAttributes,
21513      attributes,
21514      className,
21515      clientId,
21516      isSelected,
21517      insertBlocksAfter,
21518      isContentLocked,
21519      onFocus
21520    } = props;
21521    const {
21522      columns,
21523      imageCrop,
21524      randomOrder,
21525      linkTarget,
21526      linkTo,
21527      sizeSlug
21528    } = attributes;
21529    const {
21530      __unstableMarkNextChangeAsNotPersistent,
21531      replaceInnerBlocks,
21532      updateBlockAttributes,
21533      selectBlock
21534    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
21535    const {
21536      createSuccessNotice,
21537      createErrorNotice
21538    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
21539    const {
21540      getBlock,
21541      getSettings,
21542      innerBlockImages,
21543      blockWasJustInserted,
21544      multiGallerySelection
21545    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
21546      var _getBlock$innerBlocks;
21547      const {
21548        getBlockName,
21549        getMultiSelectedBlockClientIds,
21550        getSettings: _getSettings,
21551        getBlock: _getBlock,
21552        wasBlockJustInserted
21553      } = select(external_wp_blockEditor_namespaceObject.store);
21554      const multiSelectedClientIds = getMultiSelectedBlockClientIds();
21555      return {
21556        getBlock: _getBlock,
21557        getSettings: _getSettings,
21558        innerBlockImages: (_getBlock$innerBlocks = _getBlock(clientId)?.innerBlocks) !== null && _getBlock$innerBlocks !== void 0 ? _getBlock$innerBlocks : EMPTY_ARRAY,
21559        blockWasJustInserted: wasBlockJustInserted(clientId, 'inserter_menu'),
21560        multiGallerySelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/gallery')
21561      };
21562    }, [clientId]);
21563    const images = (0,external_wp_element_namespaceObject.useMemo)(() => innerBlockImages?.map(block => ({
21564      clientId: block.clientId,
21565      id: block.attributes.id,
21566      url: block.attributes.url,
21567      attributes: block.attributes,
21568      fromSavedContent: Boolean(block.originalContent)
21569    })), [innerBlockImages]);
21570    const imageData = useGetMedia(innerBlockImages);
21571    const newImages = useGetNewImages(images, imageData);
21572    (0,external_wp_element_namespaceObject.useEffect)(() => {
21573      newImages?.forEach(newImage => {
21574        // Update the images data without creating new undo levels.
21575        __unstableMarkNextChangeAsNotPersistent();
21576        updateBlockAttributes(newImage.clientId, {
21577          ...buildImageAttributes(newImage.attributes),
21578          id: newImage.id,
21579          align: undefined
21580        });
21581      });
21582    }, [newImages]);
21583    const imageSizeOptions = useImageSizes(imageData, isSelected, getSettings);
21584  
21585    /**
21586     * Determines the image attributes that should be applied to an image block
21587     * after the gallery updates.
21588     *
21589     * The gallery will receive the full collection of images when a new image
21590     * is added. As a result we need to reapply the image's original settings if
21591     * it already existed in the gallery. If the image is in fact new, we need
21592     * to apply the gallery's current settings to the image.
21593     *
21594     * @param {Object} imageAttributes Media object for the actual image.
21595     * @return {Object}                Attributes to set on the new image block.
21596     */
21597    function buildImageAttributes(imageAttributes) {
21598      const image = imageAttributes.id ? imageData.find(({
21599        id
21600      }) => id === imageAttributes.id) : null;
21601      let newClassName;
21602      if (imageAttributes.className && imageAttributes.className !== '') {
21603        newClassName = imageAttributes.className;
21604      }
21605      let newLinkTarget;
21606      if (imageAttributes.linkTarget || imageAttributes.rel) {
21607        // When transformed from image blocks, the link destination and rel attributes are inherited.
21608        newLinkTarget = {
21609          linkTarget: imageAttributes.linkTarget,
21610          rel: imageAttributes.rel
21611        };
21612      } else {
21613        // When an image is added, update the link destination and rel attributes according to the gallery settings
21614        newLinkTarget = getUpdatedLinkTargetSettings(linkTarget, attributes);
21615      }
21616      return {
21617        ...pickRelevantMediaFiles(image, sizeSlug),
21618        ...utils_getHrefAndDestination(image, linkTo, imageAttributes?.linkDestination),
21619        ...newLinkTarget,
21620        className: newClassName,
21621        sizeSlug,
21622        caption: imageAttributes.caption || image.caption?.raw,
21623        alt: imageAttributes.alt || image.alt_text
21624      };
21625    }
21626    function isValidFileType(file) {
21627      // It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.
21628      const nativeFileData = external_wp_element_namespaceObject.Platform.isNative && file.id ? imageData.find(({
21629        id
21630      }) => id === file.id) : null;
21631      const mediaTypeSelector = nativeFileData ? nativeFileData?.media_type : file.type;
21632      return edit_ALLOWED_MEDIA_TYPES.some(mediaType => mediaTypeSelector?.indexOf(mediaType) === 0) || file.blob;
21633    }
21634    function updateImages(selectedImages) {
21635      const newFileUploads = Object.prototype.toString.call(selectedImages) === '[object FileList]';
21636      const imageArray = newFileUploads ? Array.from(selectedImages).map(file => {
21637        if (!file.url) {
21638          return {
21639            blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
21640          };
21641        }
21642        return file;
21643      }) : selectedImages;
21644      if (!imageArray.every(isValidFileType)) {
21645        createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
21646          id: 'gallery-upload-invalid-file',
21647          type: 'snackbar'
21648        });
21649      }
21650      const processedImages = imageArray.filter(file => file.url || isValidFileType(file)).map(file => {
21651        if (!file.url) {
21652          return {
21653            blob: file.blob || (0,external_wp_blob_namespaceObject.createBlobURL)(file)
21654          };
21655        }
21656        return file;
21657      });
21658  
21659      // Because we are reusing existing innerImage blocks any reordering
21660      // done in the media library will be lost so we need to reapply that ordering
21661      // once the new image blocks are merged in with existing.
21662      const newOrderMap = processedImages.reduce((result, image, index) => (result[image.id] = index, result), {});
21663      const existingImageBlocks = !newFileUploads ? innerBlockImages.filter(block => processedImages.find(img => img.id === block.attributes.id)) : innerBlockImages;
21664      const newImageList = processedImages.filter(img => !existingImageBlocks.find(existingImg => img.id === existingImg.attributes.id));
21665      const newBlocks = newImageList.map(image => {
21666        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
21667          id: image.id,
21668          blob: image.blob,
21669          url: image.url,
21670          caption: image.caption,
21671          alt: image.alt
21672        });
21673      });
21674      replaceInnerBlocks(clientId, existingImageBlocks.concat(newBlocks).sort((a, b) => newOrderMap[a.attributes.id] - newOrderMap[b.attributes.id]));
21675  
21676      // Select the first block to scroll into view when new blocks are added.
21677      if (newBlocks?.length > 0) {
21678        selectBlock(newBlocks[0].clientId);
21679      }
21680    }
21681    function onUploadError(message) {
21682      createErrorNotice(message, {
21683        type: 'snackbar'
21684      });
21685    }
21686    function setLinkTo(value) {
21687      setAttributes({
21688        linkTo: value
21689      });
21690      const changedAttributes = {};
21691      const blocks = [];
21692      getBlock(clientId).innerBlocks.forEach(block => {
21693        blocks.push(block.clientId);
21694        const image = block.attributes.id ? imageData.find(({
21695          id
21696        }) => id === block.attributes.id) : null;
21697        changedAttributes[block.clientId] = utils_getHrefAndDestination(image, value);
21698      });
21699      updateBlockAttributes(blocks, changedAttributes, true);
21700      const linkToText = [...linkOptions].find(linkType => linkType.value === value);
21701      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: image size settings */
21702      (0,external_wp_i18n_namespaceObject.__)('All gallery image links updated to: %s'), linkToText.noticeText), {
21703        id: 'gallery-attributes-linkTo',
21704        type: 'snackbar'
21705      });
21706    }
21707    function setColumnsNumber(value) {
21708      setAttributes({
21709        columns: value
21710      });
21711    }
21712    function toggleImageCrop() {
21713      setAttributes({
21714        imageCrop: !imageCrop
21715      });
21716    }
21717    function toggleRandomOrder() {
21718      setAttributes({
21719        randomOrder: !randomOrder
21720      });
21721    }
21722    function toggleOpenInNewTab(openInNewTab) {
21723      const newLinkTarget = openInNewTab ? '_blank' : undefined;
21724      setAttributes({
21725        linkTarget: newLinkTarget
21726      });
21727      const changedAttributes = {};
21728      const blocks = [];
21729      getBlock(clientId).innerBlocks.forEach(block => {
21730        blocks.push(block.clientId);
21731        changedAttributes[block.clientId] = getUpdatedLinkTargetSettings(newLinkTarget, block.attributes);
21732      });
21733      updateBlockAttributes(blocks, changedAttributes, true);
21734      const noticeText = openInNewTab ? (0,external_wp_i18n_namespaceObject.__)('All gallery images updated to open in new tab') : (0,external_wp_i18n_namespaceObject.__)('All gallery images updated to not open in new tab');
21735      createSuccessNotice(noticeText, {
21736        id: 'gallery-attributes-openInNewTab',
21737        type: 'snackbar'
21738      });
21739    }
21740    function updateImagesSize(newSizeSlug) {
21741      setAttributes({
21742        sizeSlug: newSizeSlug
21743      });
21744      const changedAttributes = {};
21745      const blocks = [];
21746      getBlock(clientId).innerBlocks.forEach(block => {
21747        blocks.push(block.clientId);
21748        const image = block.attributes.id ? imageData.find(({
21749          id
21750        }) => id === block.attributes.id) : null;
21751        changedAttributes[block.clientId] = getImageSizeAttributes(image, newSizeSlug);
21752      });
21753      updateBlockAttributes(blocks, changedAttributes, true);
21754      const imageSize = imageSizeOptions.find(size => size.value === newSizeSlug);
21755      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: image size settings */
21756      (0,external_wp_i18n_namespaceObject.__)('All gallery image sizes updated to: %s'), imageSize.label), {
21757        id: 'gallery-attributes-sizeSlug',
21758        type: 'snackbar'
21759      });
21760    }
21761    (0,external_wp_element_namespaceObject.useEffect)(() => {
21762      // linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.
21763      if (!linkTo) {
21764        __unstableMarkNextChangeAsNotPersistent();
21765        setAttributes({
21766          linkTo: window?.wp?.media?.view?.settings?.defaultProps?.link || LINK_DESTINATION_NONE
21767        });
21768      }
21769    }, [linkTo]);
21770    const hasImages = !!images.length;
21771    const hasImageIds = hasImages && images.some(image => !!image.id);
21772    const imagesUploading = images.some(img => !external_wp_element_namespaceObject.Platform.isNative ? !img.id && img.url?.indexOf('blob:') === 0 : img.url?.indexOf('file:') === 0);
21773  
21774    // MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.
21775    const mediaPlaceholderProps = external_wp_element_namespaceObject.Platform.select({
21776      web: {
21777        addToGallery: false,
21778        disableMediaButtons: imagesUploading,
21779        value: {}
21780      },
21781      native: {
21782        addToGallery: hasImageIds,
21783        isAppender: hasImages,
21784        disableMediaButtons: hasImages && !isSelected || imagesUploading,
21785        value: hasImageIds ? images : {},
21786        autoOpenMediaUpload: !hasImages && isSelected && blockWasJustInserted,
21787        onFocus
21788      }
21789    });
21790    const mediaPlaceholder = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
21791      handleUpload: false,
21792      icon: sharedIcon,
21793      labels: {
21794        title: (0,external_wp_i18n_namespaceObject.__)('Gallery'),
21795        instructions: PLACEHOLDER_TEXT
21796      },
21797      onSelect: updateImages,
21798      accept: "image/*",
21799      allowedTypes: edit_ALLOWED_MEDIA_TYPES,
21800      multiple: true,
21801      onError: onUploadError,
21802      ...mediaPlaceholderProps
21803    });
21804    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
21805      className: dist_clsx(className, 'has-nested-images')
21806    });
21807    const nativeInnerBlockProps = external_wp_element_namespaceObject.Platform.isNative && {
21808      marginHorizontal: 0,
21809      marginVertical: 0
21810    };
21811    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
21812      defaultBlock: gallery_edit_DEFAULT_BLOCK,
21813      directInsert: true,
21814      orientation: 'horizontal',
21815      renderAppender: false,
21816      ...nativeInnerBlockProps
21817    });
21818    if (!hasImages) {
21819      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
21820        ...innerBlocksProps,
21821        children: [innerBlocksProps.children, mediaPlaceholder]
21822      });
21823    }
21824    const hasLinkTo = linkTo && linkTo !== 'none';
21825    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
21826      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
21827        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
21828          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
21829          children: [images.length > 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
21830            __nextHasNoMarginBottom: true,
21831            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
21832            value: columns ? columns : defaultColumnsNumber(images.length),
21833            onChange: setColumnsNumber,
21834            min: 1,
21835            max: Math.min(MAX_COLUMNS, images.length),
21836            ...MOBILE_CONTROL_PROPS_RANGE_CONTROL,
21837            required: true,
21838            __next40pxDefaultSize: true
21839          }), imageSizeOptions?.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
21840            __nextHasNoMarginBottom: true,
21841            label: (0,external_wp_i18n_namespaceObject.__)('Resolution'),
21842            help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source images.'),
21843            value: sizeSlug,
21844            options: imageSizeOptions,
21845            onChange: updateImagesSize,
21846            hideCancelButton: true,
21847            size: "__unstable-large"
21848          }), external_wp_element_namespaceObject.Platform.isNative ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
21849            __nextHasNoMarginBottom: true,
21850            label: (0,external_wp_i18n_namespaceObject.__)('Link'),
21851            value: linkTo,
21852            onChange: setLinkTo,
21853            options: linkOptions,
21854            hideCancelButton: true,
21855            size: "__unstable-large"
21856          }) : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
21857            __nextHasNoMarginBottom: true,
21858            label: (0,external_wp_i18n_namespaceObject.__)('Crop images to fit'),
21859            checked: !!imageCrop,
21860            onChange: toggleImageCrop
21861          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
21862            __nextHasNoMarginBottom: true,
21863            label: (0,external_wp_i18n_namespaceObject.__)('Randomize order'),
21864            checked: !!randomOrder,
21865            onChange: toggleRandomOrder
21866          }), hasLinkTo && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
21867            __nextHasNoMarginBottom: true,
21868            label: (0,external_wp_i18n_namespaceObject.__)('Open images in new tab'),
21869            checked: linkTarget === '_blank',
21870            onChange: toggleOpenInNewTab
21871          }), external_wp_element_namespaceObject.Platform.isWeb && !imageSizeOptions && hasImageIds && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.BaseControl, {
21872            className: "gallery-image-sizes",
21873            __nextHasNoMarginBottom: true,
21874            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
21875              children: (0,external_wp_i18n_namespaceObject.__)('Resolution')
21876            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
21877              className: "gallery-image-sizes__loading",
21878              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), (0,external_wp_i18n_namespaceObject.__)('Loading options…')]
21879            })]
21880          })]
21881        })
21882      }), external_wp_element_namespaceObject.Platform.isWeb ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
21883        group: "block",
21884        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
21885          icon: library_link,
21886          label: (0,external_wp_i18n_namespaceObject.__)('Link'),
21887          children: ({
21888            onClose
21889          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
21890            children: linkOptions.map(linkItem => {
21891              const isOptionSelected = linkTo === linkItem.value;
21892              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
21893                isSelected: isOptionSelected,
21894                className: dist_clsx('components-dropdown-menu__menu-item', {
21895                  'is-active': isOptionSelected
21896                }),
21897                iconPosition: "left",
21898                icon: linkItem.icon,
21899                onClick: () => {
21900                  setLinkTo(linkItem.value);
21901                  onClose();
21902                },
21903                role: "menuitemradio",
21904                children: linkItem.label
21905              }, linkItem.value);
21906            })
21907          })
21908        })
21909      }) : null, external_wp_element_namespaceObject.Platform.isWeb && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
21910        children: [!multiGallerySelection && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
21911          group: "other",
21912          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
21913            allowedTypes: edit_ALLOWED_MEDIA_TYPES,
21914            accept: "image/*",
21915            handleUpload: false,
21916            onSelect: updateImages,
21917            name: (0,external_wp_i18n_namespaceObject.__)('Add'),
21918            multiple: true,
21919            mediaIds: images.filter(image => image.id).map(image => image.id),
21920            addToGallery: hasImageIds
21921          })
21922        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GapStyles, {
21923          blockGap: attributes.style?.spacing?.blockGap,
21924          clientId: clientId
21925        })]
21926      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Gallery, {
21927        ...props,
21928        isContentLocked: isContentLocked,
21929        images: images,
21930        mediaPlaceholder: !hasImages || external_wp_element_namespaceObject.Platform.isNative ? mediaPlaceholder : undefined,
21931        blockProps: innerBlocksProps,
21932        insertBlocksAfter: insertBlocksAfter,
21933        multiGallerySelection: multiGallerySelection
21934      })]
21935    });
21936  }
21937  
21938  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/save.js
21939  /**
21940   * External dependencies
21941   */
21942  
21943  
21944  /**
21945   * WordPress dependencies
21946   */
21947  
21948  
21949  
21950  function saveWithInnerBlocks({
21951    attributes
21952  }) {
21953    const {
21954      caption,
21955      columns,
21956      imageCrop
21957    } = attributes;
21958    const className = dist_clsx('has-nested-images', {
21959      [`columns-$columns}`]: columns !== undefined,
21960      [`columns-default`]: columns === undefined,
21961      'is-cropped': imageCrop
21962    });
21963    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
21964      className
21965    });
21966    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
21967    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21968      ...innerBlocksProps,
21969      children: [innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21970        tagName: "figcaption",
21971        className: dist_clsx('blocks-gallery-caption', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')),
21972        value: caption
21973      })]
21974    });
21975  }
21976  
21977  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js
21978  /**
21979   * WordPress dependencies
21980   */
21981  
21982  
21983  
21984  
21985  /**
21986   * Internal dependencies
21987   */
21988  
21989  const parseShortcodeIds = ids => {
21990    if (!ids) {
21991      return [];
21992    }
21993    return ids.split(',').map(id => parseInt(id, 10));
21994  };
21995  
21996  /**
21997   * Third party block plugins don't have an easy way to detect if the
21998   * innerBlocks version of the Gallery is running when they run a
21999   * 3rdPartyBlock -> GalleryBlock transform so this tranform filter
22000   * will handle this. Once the innerBlocks version is the default
22001   * in a core release, this could be deprecated and removed after
22002   * plugin authors have been given time to update transforms.
22003   *
22004   * @typedef  {Object} Attributes
22005   * @typedef  {Object} Block
22006   * @property {Attributes} attributes The attributes of the block.
22007   * @param    {Block}      block      The transformed block.
22008   * @return   {Block}                 The transformed block.
22009   */
22010  function updateThirdPartyTransformToGallery(block) {
22011    if (block.name === 'core/gallery' && block.attributes?.images.length > 0) {
22012      const innerBlocks = block.attributes.images.map(({
22013        url,
22014        id,
22015        alt
22016      }) => {
22017        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22018          url,
22019          id: id ? parseInt(id, 10) : null,
22020          alt,
22021          sizeSlug: block.attributes.sizeSlug,
22022          linkDestination: block.attributes.linkDestination
22023        });
22024      });
22025      delete block.attributes.ids;
22026      delete block.attributes.images;
22027      block.innerBlocks = innerBlocks;
22028    }
22029    return block;
22030  }
22031  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-to', updateThirdPartyTransformToGallery);
22032  
22033  /**
22034   * Third party block plugins don't have an easy way to detect if the
22035   * innerBlocks version of the Gallery is running when they run a
22036   * GalleryBlock -> 3rdPartyBlock transform so this transform filter
22037   * will handle this. Once the innerBlocks version is the default
22038   * in a core release, this could be deprecated and removed after
22039   * plugin authors have been given time to update transforms.
22040   *
22041   * @typedef  {Object} Attributes
22042   * @typedef  {Object} Block
22043   * @property {Attributes} attributes The attributes of the block.
22044   * @param    {Block}      toBlock    The block to transform to.
22045   * @param    {Block[]}    fromBlocks The blocks to transform from.
22046   * @return   {Block}                 The transformed block.
22047   */
22048  function updateThirdPartyTransformFromGallery(toBlock, fromBlocks) {
22049    const from = Array.isArray(fromBlocks) ? fromBlocks : [fromBlocks];
22050    const galleryBlock = from.find(transformedBlock => transformedBlock.name === 'core/gallery' && transformedBlock.innerBlocks.length > 0 && !transformedBlock.attributes.images?.length > 0 && !toBlock.name.includes('core/'));
22051    if (galleryBlock) {
22052      const images = galleryBlock.innerBlocks.map(({
22053        attributes: {
22054          url,
22055          id,
22056          alt
22057        }
22058      }) => ({
22059        url,
22060        id: id ? parseInt(id, 10) : null,
22061        alt
22062      }));
22063      const ids = images.map(({
22064        id
22065      }) => id);
22066      galleryBlock.attributes.images = images;
22067      galleryBlock.attributes.ids = ids;
22068    }
22069    return toBlock;
22070  }
22071  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-from', updateThirdPartyTransformFromGallery);
22072  const gallery_transforms_transforms = {
22073    from: [{
22074      type: 'block',
22075      isMultiBlock: true,
22076      blocks: ['core/image'],
22077      transform: attributes => {
22078        // Init the align and size from the first item which may be either the placeholder or an image.
22079        let {
22080          align,
22081          sizeSlug
22082        } = attributes[0];
22083        // Loop through all the images and check if they have the same align and size.
22084        align = attributes.every(attribute => attribute.align === align) ? align : undefined;
22085        sizeSlug = attributes.every(attribute => attribute.sizeSlug === sizeSlug) ? sizeSlug : undefined;
22086        const validImages = attributes.filter(({
22087          url
22088        }) => url);
22089        const innerBlocks = validImages.map(image => {
22090          // Gallery images can't currently be resized so make sure height and width are undefined.
22091          image.width = undefined;
22092          image.height = undefined;
22093          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', image);
22094        });
22095        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
22096          align,
22097          sizeSlug
22098        }, innerBlocks);
22099      }
22100    }, {
22101      type: 'shortcode',
22102      tag: 'gallery',
22103      transform({
22104        named: {
22105          ids,
22106          columns = 3,
22107          link,
22108          orderby
22109        }
22110      }) {
22111        const imageIds = parseShortcodeIds(ids).map(id => parseInt(id, 10));
22112        let linkTo = LINK_DESTINATION_NONE;
22113        if (link === 'post') {
22114          linkTo = LINK_DESTINATION_ATTACHMENT;
22115        } else if (link === 'file') {
22116          linkTo = LINK_DESTINATION_MEDIA;
22117        }
22118        const galleryBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
22119          columns: parseInt(columns, 10),
22120          linkTo,
22121          randomOrder: orderby === 'rand'
22122        }, imageIds.map(imageId => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22123          id: imageId
22124        })));
22125        return galleryBlock;
22126      },
22127      isMatch({
22128        named
22129      }) {
22130        return undefined !== named.ids;
22131      }
22132    }, {
22133      // When created by drag and dropping multiple files on an insertion point. Because multiple
22134      // files must not be transformed to a gallery when dropped within a gallery there is another transform
22135      // within the image block to handle that case. Therefore this transform has to have priority 1
22136      // set so that it overrrides the image block transformation when mulitple images are dropped outside
22137      // of a gallery block.
22138      type: 'files',
22139      priority: 1,
22140      isMatch(files) {
22141        return files.length !== 1 && files.every(file => file.type.indexOf('image/') === 0);
22142      },
22143      transform(files) {
22144        const innerBlocks = files.map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22145          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22146        }));
22147        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, innerBlocks);
22148      }
22149    }],
22150    to: [{
22151      type: 'block',
22152      blocks: ['core/image'],
22153      transform: ({
22154        align
22155      }, innerBlocks) => {
22156        if (innerBlocks.length > 0) {
22157          return innerBlocks.map(({
22158            attributes: {
22159              url,
22160              alt,
22161              caption,
22162              title,
22163              href,
22164              rel,
22165              linkClass,
22166              id,
22167              sizeSlug: imageSizeSlug,
22168              linkDestination,
22169              linkTarget,
22170              anchor,
22171              className
22172            }
22173          }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22174            align,
22175            url,
22176            alt,
22177            caption,
22178            title,
22179            href,
22180            rel,
22181            linkClass,
22182            id,
22183            sizeSlug: imageSizeSlug,
22184            linkDestination,
22185            linkTarget,
22186            anchor,
22187            className
22188          }));
22189        }
22190        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22191          align
22192        });
22193      }
22194    }]
22195  };
22196  /* harmony default export */ const gallery_transforms = (gallery_transforms_transforms);
22197  
22198  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/index.js
22199  /**
22200   * WordPress dependencies
22201   */
22202  
22203  
22204  /**
22205   * Internal dependencies
22206   */
22207  
22208  
22209  
22210  const gallery_metadata = {
22211    $schema: "https://schemas.wp.org/trunk/block.json",
22212    apiVersion: 3,
22213    name: "core/gallery",
22214    title: "Gallery",
22215    category: "media",
22216    allowedBlocks: ["core/image"],
22217    description: "Display multiple images in a rich gallery.",
22218    keywords: ["images", "photos"],
22219    textdomain: "default",
22220    attributes: {
22221      images: {
22222        type: "array",
22223        "default": [],
22224        source: "query",
22225        selector: ".blocks-gallery-item",
22226        query: {
22227          url: {
22228            type: "string",
22229            source: "attribute",
22230            selector: "img",
22231            attribute: "src"
22232          },
22233          fullUrl: {
22234            type: "string",
22235            source: "attribute",
22236            selector: "img",
22237            attribute: "data-full-url"
22238          },
22239          link: {
22240            type: "string",
22241            source: "attribute",
22242            selector: "img",
22243            attribute: "data-link"
22244          },
22245          alt: {
22246            type: "string",
22247            source: "attribute",
22248            selector: "img",
22249            attribute: "alt",
22250            "default": ""
22251          },
22252          id: {
22253            type: "string",
22254            source: "attribute",
22255            selector: "img",
22256            attribute: "data-id"
22257          },
22258          caption: {
22259            type: "rich-text",
22260            source: "rich-text",
22261            selector: ".blocks-gallery-item__caption"
22262          }
22263        }
22264      },
22265      ids: {
22266        type: "array",
22267        items: {
22268          type: "number"
22269        },
22270        "default": []
22271      },
22272      shortCodeTransforms: {
22273        type: "array",
22274        items: {
22275          type: "object"
22276        },
22277        "default": []
22278      },
22279      columns: {
22280        type: "number",
22281        minimum: 1,
22282        maximum: 8
22283      },
22284      caption: {
22285        type: "rich-text",
22286        source: "rich-text",
22287        selector: ".blocks-gallery-caption"
22288      },
22289      imageCrop: {
22290        type: "boolean",
22291        "default": true
22292      },
22293      randomOrder: {
22294        type: "boolean",
22295        "default": false
22296      },
22297      fixedHeight: {
22298        type: "boolean",
22299        "default": true
22300      },
22301      linkTarget: {
22302        type: "string"
22303      },
22304      linkTo: {
22305        type: "string"
22306      },
22307      sizeSlug: {
22308        type: "string",
22309        "default": "large"
22310      },
22311      allowResize: {
22312        type: "boolean",
22313        "default": false
22314      }
22315    },
22316    providesContext: {
22317      allowResize: "allowResize",
22318      imageCrop: "imageCrop",
22319      fixedHeight: "fixedHeight"
22320    },
22321    supports: {
22322      anchor: true,
22323      align: true,
22324      __experimentalBorder: {
22325        radius: true,
22326        color: true,
22327        width: true,
22328        style: true,
22329        __experimentalDefaultControls: {
22330          color: true,
22331          radius: true
22332        }
22333      },
22334      html: false,
22335      units: ["px", "em", "rem", "vh", "vw"],
22336      spacing: {
22337        margin: true,
22338        padding: true,
22339        blockGap: ["horizontal", "vertical"],
22340        __experimentalSkipSerialization: ["blockGap"],
22341        __experimentalDefaultControls: {
22342          blockGap: true,
22343          margin: false,
22344          padding: false
22345        }
22346      },
22347      color: {
22348        text: false,
22349        background: true,
22350        gradients: true
22351      },
22352      layout: {
22353        allowSwitching: false,
22354        allowInheriting: false,
22355        allowEditing: false,
22356        "default": {
22357          type: "flex"
22358        }
22359      },
22360      interactivity: {
22361        clientNavigation: true
22362      }
22363    },
22364    editorStyle: "wp-block-gallery-editor",
22365    style: "wp-block-gallery"
22366  };
22367  
22368  
22369  const {
22370    name: gallery_name
22371  } = gallery_metadata;
22372  
22373  const gallery_settings = {
22374    icon: library_gallery,
22375    example: {
22376      attributes: {
22377        columns: 2
22378      },
22379      innerBlocks: [{
22380        name: 'core/image',
22381        attributes: {
22382          url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg'
22383        }
22384      }, {
22385        name: 'core/image',
22386        attributes: {
22387          url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg'
22388        }
22389      }]
22390    },
22391    transforms: gallery_transforms,
22392    edit: GalleryEdit,
22393    save: saveWithInnerBlocks,
22394    deprecated: gallery_deprecated
22395  };
22396  const gallery_init = () => initBlock({
22397    name: gallery_name,
22398    metadata: gallery_metadata,
22399    settings: gallery_settings
22400  });
22401  
22402  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/deprecated.js
22403  /**
22404   * External dependencies
22405   */
22406  
22407  
22408  /**
22409   * WordPress dependencies
22410   */
22411  
22412  
22413  const migrateAttributes = attributes => {
22414    if (!attributes.tagName) {
22415      attributes = {
22416        ...attributes,
22417        tagName: 'div'
22418      };
22419    }
22420    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
22421      return attributes;
22422    }
22423    const style = {
22424      color: {}
22425    };
22426    if (attributes.customTextColor) {
22427      style.color.text = attributes.customTextColor;
22428    }
22429    if (attributes.customBackgroundColor) {
22430      style.color.background = attributes.customBackgroundColor;
22431    }
22432    const {
22433      customTextColor,
22434      customBackgroundColor,
22435      ...restAttributes
22436    } = attributes;
22437    return {
22438      ...restAttributes,
22439      style
22440    };
22441  };
22442  const group_deprecated_deprecated = [
22443  // Version with default layout.
22444  {
22445    attributes: {
22446      tagName: {
22447        type: 'string',
22448        default: 'div'
22449      },
22450      templateLock: {
22451        type: ['string', 'boolean'],
22452        enum: ['all', 'insert', false]
22453      }
22454    },
22455    supports: {
22456      __experimentalOnEnter: true,
22457      __experimentalSettings: true,
22458      align: ['wide', 'full'],
22459      anchor: true,
22460      ariaLabel: true,
22461      html: false,
22462      color: {
22463        gradients: true,
22464        link: true,
22465        __experimentalDefaultControls: {
22466          background: true,
22467          text: true
22468        }
22469      },
22470      spacing: {
22471        margin: ['top', 'bottom'],
22472        padding: true,
22473        blockGap: true,
22474        __experimentalDefaultControls: {
22475          padding: true,
22476          blockGap: true
22477        }
22478      },
22479      __experimentalBorder: {
22480        color: true,
22481        radius: true,
22482        style: true,
22483        width: true,
22484        __experimentalDefaultControls: {
22485          color: true,
22486          radius: true,
22487          style: true,
22488          width: true
22489        }
22490      },
22491      typography: {
22492        fontSize: true,
22493        lineHeight: true,
22494        __experimentalFontStyle: true,
22495        __experimentalFontWeight: true,
22496        __experimentalLetterSpacing: true,
22497        __experimentalTextTransform: true,
22498        __experimentalDefaultControls: {
22499          fontSize: true
22500        }
22501      },
22502      layout: true
22503    },
22504    save({
22505      attributes: {
22506        tagName: Tag
22507      }
22508    }) {
22509      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
22510        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())
22511      });
22512    },
22513    isEligible: ({
22514      layout
22515    }) => layout?.inherit || layout?.contentSize && layout?.type !== 'constrained',
22516    migrate: attributes => {
22517      const {
22518        layout = null
22519      } = attributes;
22520      if (layout?.inherit || layout?.contentSize) {
22521        return {
22522          ...attributes,
22523          layout: {
22524            ...layout,
22525            type: 'constrained'
22526          }
22527        };
22528      }
22529    }
22530  },
22531  // Version of the block with the double div.
22532  {
22533    attributes: {
22534      tagName: {
22535        type: 'string',
22536        default: 'div'
22537      },
22538      templateLock: {
22539        type: ['string', 'boolean'],
22540        enum: ['all', 'insert', false]
22541      }
22542    },
22543    supports: {
22544      align: ['wide', 'full'],
22545      anchor: true,
22546      color: {
22547        gradients: true,
22548        link: true
22549      },
22550      spacing: {
22551        padding: true
22552      },
22553      __experimentalBorder: {
22554        radius: true
22555      }
22556    },
22557    save({
22558      attributes
22559    }) {
22560      const {
22561        tagName: Tag
22562      } = attributes;
22563      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
22564        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
22565        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22566          className: "wp-block-group__inner-container",
22567          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
22568        })
22569      });
22570    }
22571  },
22572  // Version of the block without global styles support
22573  {
22574    attributes: {
22575      backgroundColor: {
22576        type: 'string'
22577      },
22578      customBackgroundColor: {
22579        type: 'string'
22580      },
22581      textColor: {
22582        type: 'string'
22583      },
22584      customTextColor: {
22585        type: 'string'
22586      }
22587    },
22588    supports: {
22589      align: ['wide', 'full'],
22590      anchor: true,
22591      html: false
22592    },
22593    migrate: migrateAttributes,
22594    save({
22595      attributes
22596    }) {
22597      const {
22598        backgroundColor,
22599        customBackgroundColor,
22600        textColor,
22601        customTextColor
22602      } = attributes;
22603      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
22604      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
22605      const className = dist_clsx(backgroundClass, textClass, {
22606        'has-text-color': textColor || customTextColor,
22607        'has-background': backgroundColor || customBackgroundColor
22608      });
22609      const styles = {
22610        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
22611        color: textClass ? undefined : customTextColor
22612      };
22613      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22614        className: className,
22615        style: styles,
22616        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22617          className: "wp-block-group__inner-container",
22618          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
22619        })
22620      });
22621    }
22622  },
22623  // Version of the group block with a bug that made text color class not applied.
22624  {
22625    attributes: {
22626      backgroundColor: {
22627        type: 'string'
22628      },
22629      customBackgroundColor: {
22630        type: 'string'
22631      },
22632      textColor: {
22633        type: 'string'
22634      },
22635      customTextColor: {
22636        type: 'string'
22637      }
22638    },
22639    migrate: migrateAttributes,
22640    supports: {
22641      align: ['wide', 'full'],
22642      anchor: true,
22643      html: false
22644    },
22645    save({
22646      attributes
22647    }) {
22648      const {
22649        backgroundColor,
22650        customBackgroundColor,
22651        textColor,
22652        customTextColor
22653      } = attributes;
22654      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
22655      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
22656      const className = dist_clsx(backgroundClass, {
22657        'has-text-color': textColor || customTextColor,
22658        'has-background': backgroundColor || customBackgroundColor
22659      });
22660      const styles = {
22661        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
22662        color: textClass ? undefined : customTextColor
22663      };
22664      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22665        className: className,
22666        style: styles,
22667        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22668          className: "wp-block-group__inner-container",
22669          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
22670        })
22671      });
22672    }
22673  },
22674  // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.
22675  {
22676    attributes: {
22677      backgroundColor: {
22678        type: 'string'
22679      },
22680      customBackgroundColor: {
22681        type: 'string'
22682      }
22683    },
22684    supports: {
22685      align: ['wide', 'full'],
22686      anchor: true,
22687      html: false
22688    },
22689    migrate: migrateAttributes,
22690    save({
22691      attributes
22692    }) {
22693      const {
22694        backgroundColor,
22695        customBackgroundColor
22696      } = attributes;
22697      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
22698      const className = dist_clsx(backgroundClass, {
22699        'has-background': backgroundColor || customBackgroundColor
22700      });
22701      const styles = {
22702        backgroundColor: backgroundClass ? undefined : customBackgroundColor
22703      };
22704      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22705        className: className,
22706        style: styles,
22707        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
22708      });
22709    }
22710  }];
22711  /* harmony default export */ const group_deprecated = (group_deprecated_deprecated);
22712  
22713  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/placeholder.js
22714  /**
22715   * WordPress dependencies
22716   */
22717  
22718  
22719  
22720  
22721  
22722  
22723  
22724  /**
22725   * Returns a custom variation icon.
22726   *
22727   * @param {string} name The block variation name.
22728   *
22729   * @return {JSX.Element} The SVG element.
22730   */
22731  
22732  const getGroupPlaceholderIcons = (name = 'group') => {
22733    const icons = {
22734      group: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
22735        xmlns: "http://www.w3.org/2000/svg",
22736        width: "48",
22737        height: "48",
22738        viewBox: "0 0 48 48",
22739        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
22740          d: "M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z"
22741        })
22742      }),
22743      'group-row': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
22744        xmlns: "http://www.w3.org/2000/svg",
22745        width: "48",
22746        height: "48",
22747        viewBox: "0 0 48 48",
22748        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
22749          d: "M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z"
22750        })
22751      }),
22752      'group-stack': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
22753        xmlns: "http://www.w3.org/2000/svg",
22754        width: "48",
22755        height: "48",
22756        viewBox: "0 0 48 48",
22757        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
22758          d: "M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm0 17a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Z"
22759        })
22760      }),
22761      'group-grid': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
22762        xmlns: "http://www.w3.org/2000/svg",
22763        width: "48",
22764        height: "48",
22765        viewBox: "0 0 48 48",
22766        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
22767          d: "M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10ZM0 27a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V27Z"
22768        })
22769      })
22770    };
22771    return icons?.[name];
22772  };
22773  
22774  /**
22775   * A custom hook to tell the Group block whether to show the variation placeholder.
22776   *
22777   * @param {Object}  props                  Arguments to pass to hook.
22778   * @param {Object}  [props.attributes]     The block's attributes.
22779   * @param {string}  [props.usedLayoutType] The block's current layout type.
22780   * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.
22781   *
22782   * @return {[boolean, Function]} A state value and setter function.
22783   */
22784  function useShouldShowPlaceHolder({
22785    attributes = {
22786      style: undefined,
22787      backgroundColor: undefined,
22788      textColor: undefined,
22789      fontSize: undefined
22790    },
22791    usedLayoutType = '',
22792    hasInnerBlocks = false
22793  }) {
22794    const {
22795      style,
22796      backgroundColor,
22797      textColor,
22798      fontSize
22799    } = attributes;
22800    /*
22801     * Shows the placeholder when no known styles are set,
22802     * or when a non-default layout has been selected.
22803     * Should the Group block support more style presets in the
22804     * future, e.g., attributes.spacingSize, we can add them to the
22805     * condition.
22806     */
22807    const [showPlaceholder, setShowPlaceholder] = (0,external_wp_element_namespaceObject.useState)(!hasInnerBlocks && !backgroundColor && !fontSize && !textColor && !style && usedLayoutType !== 'flex' && usedLayoutType !== 'grid');
22808    (0,external_wp_element_namespaceObject.useEffect)(() => {
22809      if (!!hasInnerBlocks || !!backgroundColor || !!fontSize || !!textColor || !!style || usedLayoutType === 'flex') {
22810        setShowPlaceholder(false);
22811      }
22812    }, [backgroundColor, fontSize, textColor, style, usedLayoutType, hasInnerBlocks]);
22813    return [showPlaceholder, setShowPlaceholder];
22814  }
22815  
22816  /**
22817   * Display group variations if none is selected.
22818   *
22819   * @param {Object}   props          Component props.
22820   * @param {string}   props.name     The block's name.
22821   * @param {Function} props.onSelect Function to set block's attributes.
22822   *
22823   * @return {JSX.Element}                The placeholder.
22824   */
22825  function GroupPlaceHolder({
22826    name,
22827    onSelect
22828  }) {
22829    const variations = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getBlockVariations(name, 'block'), [name]);
22830    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
22831      className: 'wp-block-group__placeholder'
22832    });
22833    (0,external_wp_element_namespaceObject.useEffect)(() => {
22834      if (variations && variations.length === 1) {
22835        onSelect(variations[0]);
22836      }
22837    }, [onSelect, variations]);
22838    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
22839      ...blockProps,
22840      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
22841        instructions: (0,external_wp_i18n_namespaceObject.__)('Group blocks together. Select a layout:'),
22842        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
22843          role: "list",
22844          className: "wp-block-group-placeholder__variations",
22845          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block variations'),
22846          children: variations.map(variation => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
22847            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
22848              __next40pxDefaultSize: true,
22849              variant: "tertiary",
22850              icon: getGroupPlaceholderIcons(variation.name),
22851              iconSize: 48,
22852              onClick: () => onSelect(variation),
22853              className: "wp-block-group-placeholder__variation-button",
22854              label: `$variation.title}: $variation.description}`
22855            })
22856          }, variation.name))
22857        })
22858      })
22859    });
22860  }
22861  /* harmony default export */ const placeholder = (GroupPlaceHolder);
22862  
22863  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/edit.js
22864  /**
22865   * WordPress dependencies
22866   */
22867  
22868  
22869  
22870  
22871  
22872  
22873  
22874  /**
22875   * Internal dependencies
22876   */
22877  
22878  
22879  /**
22880   * Render inspector controls for the Group block.
22881   *
22882   * @param {Object}   props                 Component props.
22883   * @param {string}   props.tagName         The HTML tag name.
22884   * @param {Function} props.onSelectTagName onChange function for the SelectControl.
22885   *
22886   * @return {JSX.Element}                The control group.
22887   */
22888  
22889  
22890  
22891  function GroupEditControls({
22892    tagName,
22893    onSelectTagName
22894  }) {
22895    const htmlElementMessages = {
22896      header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
22897      main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only.'),
22898      section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
22899      article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self-contained, syndicatable portion of the document.'),
22900      aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
22901      footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
22902    };
22903    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
22904      group: "advanced",
22905      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
22906        __nextHasNoMarginBottom: true,
22907        __next40pxDefaultSize: true,
22908        label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
22909        options: [{
22910          label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
22911          value: 'div'
22912        }, {
22913          label: '<header>',
22914          value: 'header'
22915        }, {
22916          label: '<main>',
22917          value: 'main'
22918        }, {
22919          label: '<section>',
22920          value: 'section'
22921        }, {
22922          label: '<article>',
22923          value: 'article'
22924        }, {
22925          label: '<aside>',
22926          value: 'aside'
22927        }, {
22928          label: '<footer>',
22929          value: 'footer'
22930        }],
22931        value: tagName,
22932        onChange: onSelectTagName,
22933        help: htmlElementMessages[tagName]
22934      })
22935    });
22936  }
22937  function GroupEdit({
22938    attributes,
22939    name,
22940    setAttributes,
22941    clientId
22942  }) {
22943    const {
22944      hasInnerBlocks,
22945      themeSupportsLayout
22946    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
22947      const {
22948        getBlock,
22949        getSettings
22950      } = select(external_wp_blockEditor_namespaceObject.store);
22951      const block = getBlock(clientId);
22952      return {
22953        hasInnerBlocks: !!(block && block.innerBlocks.length),
22954        themeSupportsLayout: getSettings()?.supportsLayout
22955      };
22956    }, [clientId]);
22957    const {
22958      tagName: TagName = 'div',
22959      templateLock,
22960      allowedBlocks,
22961      layout = {}
22962    } = attributes;
22963  
22964    // Layout settings.
22965    const {
22966      type = 'default'
22967    } = layout;
22968    const layoutSupportEnabled = themeSupportsLayout || type === 'flex' || type === 'grid';
22969  
22970    // Hooks.
22971    const ref = (0,external_wp_element_namespaceObject.useRef)();
22972    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
22973      ref
22974    });
22975    const [showPlaceholder, setShowPlaceholder] = useShouldShowPlaceHolder({
22976      attributes,
22977      usedLayoutType: type,
22978      hasInnerBlocks
22979    });
22980  
22981    // Default to the regular appender being rendered.
22982    let renderAppender;
22983    if (showPlaceholder) {
22984      // In the placeholder state, ensure the appender is not rendered.
22985      // This is needed because `...innerBlocksProps` is used in the placeholder
22986      // state so that blocks can dragged onto the placeholder area
22987      // from both the list view and in the editor canvas.
22988      renderAppender = false;
22989    } else if (!hasInnerBlocks) {
22990      // When there is no placeholder, but the block is also empty,
22991      // use the larger button appender.
22992      renderAppender = external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender;
22993    }
22994    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(layoutSupportEnabled ? blockProps : {
22995      className: 'wp-block-group__inner-container'
22996    }, {
22997      dropZoneElement: ref.current,
22998      templateLock,
22999      allowedBlocks,
23000      renderAppender
23001    });
23002    const {
23003      selectBlock
23004    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
23005    const selectVariation = nextVariation => {
23006      setAttributes(nextVariation.attributes);
23007      selectBlock(clientId, -1);
23008      setShowPlaceholder(false);
23009    };
23010    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
23011      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GroupEditControls, {
23012        tagName: TagName,
23013        onSelectTagName: value => setAttributes({
23014          tagName: value
23015        })
23016      }), showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
23017        children: [innerBlocksProps.children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder, {
23018          name: name,
23019          onSelect: selectVariation
23020        })]
23021      }), layoutSupportEnabled && !showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23022        ...innerBlocksProps
23023      }), !layoutSupportEnabled && !showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23024        ...blockProps,
23025        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23026          ...innerBlocksProps
23027        })
23028      })]
23029    });
23030  }
23031  /* harmony default export */ const group_edit = (GroupEdit);
23032  
23033  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/save.js
23034  /**
23035   * WordPress dependencies
23036   */
23037  
23038  
23039  function group_save_save({
23040    attributes: {
23041      tagName: Tag
23042    }
23043  }) {
23044    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23045      ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())
23046    });
23047  }
23048  
23049  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/transforms.js
23050  /**
23051   * WordPress dependencies
23052   */
23053  
23054  const group_transforms_transforms = {
23055    from: [{
23056      type: 'block',
23057      isMultiBlock: true,
23058      blocks: ['*'],
23059      __experimentalConvert(blocks) {
23060        const alignments = ['wide', 'full'];
23061  
23062        // Determine the widest setting of all the blocks to be grouped
23063        const widestAlignment = blocks.reduce((accumulator, block) => {
23064          const {
23065            align
23066          } = block.attributes;
23067          return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator;
23068        }, undefined);
23069  
23070        // Clone the Blocks to be Grouped
23071        // Failing to create new block references causes the original blocks
23072        // to be replaced in the switchToBlockType call thereby meaning they
23073        // are removed both from their original location and within the
23074        // new group block.
23075        const groupInnerBlocks = blocks.map(block => {
23076          return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks);
23077        });
23078        return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
23079          align: widestAlignment,
23080          layout: {
23081            type: 'constrained'
23082          }
23083        }, groupInnerBlocks);
23084      }
23085    }]
23086  };
23087  /* harmony default export */ const group_transforms = (group_transforms_transforms);
23088  
23089  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/row.js
23090  /**
23091   * WordPress dependencies
23092   */
23093  
23094  
23095  const row = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23096    xmlns: "http://www.w3.org/2000/svg",
23097    viewBox: "0 0 24 24",
23098    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23099      d: "M4 6.5h5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H4V16h5a.5.5 0 0 0 .5-.5v-7A.5.5 0 0 0 9 8H4V6.5Zm16 0h-5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h5V16h-5a.5.5 0 0 1-.5-.5v-7A.5.5 0 0 1 15 8h5V6.5Z"
23100    })
23101  });
23102  /* harmony default export */ const library_row = (row);
23103  
23104  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js
23105  /**
23106   * WordPress dependencies
23107   */
23108  
23109  
23110  const stack = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23111    xmlns: "http://www.w3.org/2000/svg",
23112    viewBox: "0 0 24 24",
23113    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23114      d: "M17.5 4v5a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V4H8v5a.5.5 0 0 0 .5.5h7A.5.5 0 0 0 16 9V4h1.5Zm0 16v-5a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v5H8v-5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v5h1.5Z"
23115    })
23116  });
23117  /* harmony default export */ const library_stack = (stack);
23118  
23119  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js
23120  /**
23121   * WordPress dependencies
23122   */
23123  
23124  
23125  const grid = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23126    xmlns: "http://www.w3.org/2000/svg",
23127    viewBox: "0 0 24 24",
23128    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23129      d: "m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z",
23130      fillRule: "evenodd",
23131      clipRule: "evenodd"
23132    })
23133  });
23134  /* harmony default export */ const library_grid = (grid);
23135  
23136  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/variations.js
23137  /**
23138   * WordPress dependencies
23139   */
23140  
23141  
23142  const example = {
23143    innerBlocks: [{
23144      name: 'core/paragraph',
23145      attributes: {
23146        customTextColor: '#cf2e2e',
23147        fontSize: 'large',
23148        content: (0,external_wp_i18n_namespaceObject.__)('One.')
23149      }
23150    }, {
23151      name: 'core/paragraph',
23152      attributes: {
23153        customTextColor: '#ff6900',
23154        fontSize: 'large',
23155        content: (0,external_wp_i18n_namespaceObject.__)('Two.')
23156      }
23157    }, {
23158      name: 'core/paragraph',
23159      attributes: {
23160        customTextColor: '#fcb900',
23161        fontSize: 'large',
23162        content: (0,external_wp_i18n_namespaceObject.__)('Three.')
23163      }
23164    }, {
23165      name: 'core/paragraph',
23166      attributes: {
23167        customTextColor: '#00d084',
23168        fontSize: 'large',
23169        content: (0,external_wp_i18n_namespaceObject.__)('Four.')
23170      }
23171    }, {
23172      name: 'core/paragraph',
23173      attributes: {
23174        customTextColor: '#0693e3',
23175        fontSize: 'large',
23176        content: (0,external_wp_i18n_namespaceObject.__)('Five.')
23177      }
23178    }, {
23179      name: 'core/paragraph',
23180      attributes: {
23181        customTextColor: '#9b51e0',
23182        fontSize: 'large',
23183        content: (0,external_wp_i18n_namespaceObject.__)('Six.')
23184      }
23185    }]
23186  };
23187  const group_variations_variations = [{
23188    name: 'group',
23189    title: (0,external_wp_i18n_namespaceObject.__)('Group'),
23190    description: (0,external_wp_i18n_namespaceObject.__)('Gather blocks in a container.'),
23191    attributes: {
23192      layout: {
23193        type: 'constrained'
23194      }
23195    },
23196    isDefault: true,
23197    scope: ['block', 'inserter', 'transform'],
23198    isActive: blockAttributes => !blockAttributes.layout || !blockAttributes.layout?.type || blockAttributes.layout?.type === 'default' || blockAttributes.layout?.type === 'constrained',
23199    icon: library_group
23200  }, {
23201    name: 'group-row',
23202    title: (0,external_wp_i18n_namespaceObject._x)('Row', 'single horizontal line'),
23203    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks horizontally.'),
23204    attributes: {
23205      layout: {
23206        type: 'flex',
23207        flexWrap: 'nowrap'
23208      }
23209    },
23210    scope: ['block', 'inserter', 'transform'],
23211    isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && (!blockAttributes.layout?.orientation || blockAttributes.layout?.orientation === 'horizontal'),
23212    icon: library_row,
23213    example
23214  }, {
23215    name: 'group-stack',
23216    title: (0,external_wp_i18n_namespaceObject.__)('Stack'),
23217    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks vertically.'),
23218    attributes: {
23219      layout: {
23220        type: 'flex',
23221        orientation: 'vertical'
23222      }
23223    },
23224    scope: ['block', 'inserter', 'transform'],
23225    isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && blockAttributes.layout?.orientation === 'vertical',
23226    icon: library_stack,
23227    example
23228  }, {
23229    name: 'group-grid',
23230    title: (0,external_wp_i18n_namespaceObject.__)('Grid'),
23231    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks in a grid.'),
23232    attributes: {
23233      layout: {
23234        type: 'grid'
23235      }
23236    },
23237    scope: ['block', 'inserter', 'transform'],
23238    isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
23239    icon: library_grid,
23240    example
23241  }];
23242  /* harmony default export */ const group_variations = (group_variations_variations);
23243  
23244  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/index.js
23245  /**
23246   * WordPress dependencies
23247   */
23248  
23249  
23250  
23251  /**
23252   * Internal dependencies
23253   */
23254  
23255  
23256  
23257  const group_metadata = {
23258    $schema: "https://schemas.wp.org/trunk/block.json",
23259    apiVersion: 3,
23260    name: "core/group",
23261    title: "Group",
23262    category: "design",
23263    description: "Gather blocks in a layout container.",
23264    keywords: ["container", "wrapper", "row", "section"],
23265    textdomain: "default",
23266    attributes: {
23267      tagName: {
23268        type: "string",
23269        "default": "div"
23270      },
23271      templateLock: {
23272        type: ["string", "boolean"],
23273        "enum": ["all", "insert", "contentOnly", false]
23274      },
23275      allowedBlocks: {
23276        type: "array"
23277      }
23278    },
23279    supports: {
23280      __experimentalOnEnter: true,
23281      __experimentalOnMerge: true,
23282      __experimentalSettings: true,
23283      align: ["wide", "full"],
23284      anchor: true,
23285      ariaLabel: true,
23286      html: false,
23287      background: {
23288        backgroundImage: true,
23289        backgroundSize: true,
23290        __experimentalDefaultControls: {
23291          backgroundImage: true
23292        }
23293      },
23294      color: {
23295        gradients: true,
23296        heading: true,
23297        button: true,
23298        link: true,
23299        __experimentalDefaultControls: {
23300          background: true,
23301          text: true
23302        }
23303      },
23304      shadow: true,
23305      spacing: {
23306        margin: ["top", "bottom"],
23307        padding: true,
23308        blockGap: true,
23309        __experimentalDefaultControls: {
23310          padding: true,
23311          blockGap: true
23312        }
23313      },
23314      dimensions: {
23315        minHeight: true
23316      },
23317      __experimentalBorder: {
23318        color: true,
23319        radius: true,
23320        style: true,
23321        width: true,
23322        __experimentalDefaultControls: {
23323          color: true,
23324          radius: true,
23325          style: true,
23326          width: true
23327        }
23328      },
23329      position: {
23330        sticky: true
23331      },
23332      typography: {
23333        fontSize: true,
23334        lineHeight: true,
23335        __experimentalFontFamily: true,
23336        __experimentalFontWeight: true,
23337        __experimentalFontStyle: true,
23338        __experimentalTextTransform: true,
23339        __experimentalTextDecoration: true,
23340        __experimentalLetterSpacing: true,
23341        __experimentalDefaultControls: {
23342          fontSize: true
23343        }
23344      },
23345      layout: {
23346        allowSizingOnChildren: true
23347      },
23348      interactivity: {
23349        clientNavigation: true
23350      }
23351    },
23352    editorStyle: "wp-block-group-editor",
23353    style: "wp-block-group"
23354  };
23355  
23356  
23357  
23358  const {
23359    name: group_name
23360  } = group_metadata;
23361  
23362  const group_settings = {
23363    icon: library_group,
23364    example: {
23365      attributes: {
23366        layout: {
23367          type: 'constrained',
23368          justifyContent: 'center'
23369        },
23370        style: {
23371          spacing: {
23372            padding: {
23373              top: '4em',
23374              right: '3em',
23375              bottom: '4em',
23376              left: '3em'
23377            }
23378          }
23379        }
23380      },
23381      innerBlocks: [{
23382        name: 'core/heading',
23383        attributes: {
23384          content: (0,external_wp_i18n_namespaceObject.__)('La Mancha'),
23385          textAlign: 'center'
23386        }
23387      }, {
23388        name: 'core/paragraph',
23389        attributes: {
23390          align: 'center',
23391          content: (0,external_wp_i18n_namespaceObject.__)('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.')
23392        }
23393      }, {
23394        name: 'core/spacer',
23395        attributes: {
23396          height: '10px'
23397        }
23398      }, {
23399        name: 'core/button',
23400        attributes: {
23401          text: (0,external_wp_i18n_namespaceObject.__)('Read more')
23402        }
23403      }],
23404      viewportWidth: 600
23405    },
23406    transforms: group_transforms,
23407    edit: group_edit,
23408    save: group_save_save,
23409    deprecated: group_deprecated,
23410    variations: group_variations
23411  };
23412  const group_init = () => initBlock({
23413    name: group_name,
23414    metadata: group_metadata,
23415    settings: group_settings
23416  });
23417  
23418  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading.js
23419  /**
23420   * WordPress dependencies
23421   */
23422  
23423  
23424  const heading = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23425    xmlns: "http://www.w3.org/2000/svg",
23426    viewBox: "0 0 24 24",
23427    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23428      d: "M6 5V18.5911L12 13.8473L18 18.5911V5H6Z"
23429    })
23430  });
23431  /* harmony default export */ const library_heading = (heading);
23432  
23433  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js
23434  /**
23435   * External dependencies
23436   */
23437  
23438  
23439  /**
23440   * WordPress dependencies
23441   */
23442  
23443  
23444  const blockSupports = {
23445    className: false,
23446    anchor: true
23447  };
23448  const heading_deprecated_blockAttributes = {
23449    align: {
23450      type: 'string'
23451    },
23452    content: {
23453      type: 'string',
23454      source: 'html',
23455      selector: 'h1,h2,h3,h4,h5,h6',
23456      default: ''
23457    },
23458    level: {
23459      type: 'number',
23460      default: 2
23461    },
23462    placeholder: {
23463      type: 'string'
23464    }
23465  };
23466  const deprecated_migrateCustomColors = attributes => {
23467    if (!attributes.customTextColor) {
23468      return attributes;
23469    }
23470    const style = {
23471      color: {
23472        text: attributes.customTextColor
23473      }
23474    };
23475    const {
23476      customTextColor,
23477      ...restAttributes
23478    } = attributes;
23479    return {
23480      ...restAttributes,
23481      style
23482    };
23483  };
23484  const TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
23485  const migrateTextAlign = attributes => {
23486    const {
23487      align,
23488      ...rest
23489    } = attributes;
23490    return TEXT_ALIGN_OPTIONS.includes(align) ? {
23491      ...rest,
23492      textAlign: align
23493    } : attributes;
23494  };
23495  const heading_deprecated_v1 = {
23496    supports: blockSupports,
23497    attributes: {
23498      ...heading_deprecated_blockAttributes,
23499      customTextColor: {
23500        type: 'string'
23501      },
23502      textColor: {
23503        type: 'string'
23504      }
23505    },
23506    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
23507    save({
23508      attributes
23509    }) {
23510      const {
23511        align,
23512        level,
23513        content,
23514        textColor,
23515        customTextColor
23516      } = attributes;
23517      const tagName = 'h' + level;
23518      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23519      const className = dist_clsx({
23520        [textClass]: textClass
23521      });
23522      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
23523        className: className ? className : undefined,
23524        tagName: tagName,
23525        style: {
23526          textAlign: align,
23527          color: textClass ? undefined : customTextColor
23528        },
23529        value: content
23530      });
23531    }
23532  };
23533  const heading_deprecated_v2 = {
23534    attributes: {
23535      ...heading_deprecated_blockAttributes,
23536      customTextColor: {
23537        type: 'string'
23538      },
23539      textColor: {
23540        type: 'string'
23541      }
23542    },
23543    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
23544    save({
23545      attributes
23546    }) {
23547      const {
23548        align,
23549        content,
23550        customTextColor,
23551        level,
23552        textColor
23553      } = attributes;
23554      const tagName = 'h' + level;
23555      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23556      const className = dist_clsx({
23557        [textClass]: textClass,
23558        [`has-text-align-$align}`]: align
23559      });
23560      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
23561        className: className ? className : undefined,
23562        tagName: tagName,
23563        style: {
23564          color: textClass ? undefined : customTextColor
23565        },
23566        value: content
23567      });
23568    },
23569    supports: blockSupports
23570  };
23571  const heading_deprecated_v3 = {
23572    supports: blockSupports,
23573    attributes: {
23574      ...heading_deprecated_blockAttributes,
23575      customTextColor: {
23576        type: 'string'
23577      },
23578      textColor: {
23579        type: 'string'
23580      }
23581    },
23582    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
23583    save({
23584      attributes
23585    }) {
23586      const {
23587        align,
23588        content,
23589        customTextColor,
23590        level,
23591        textColor
23592      } = attributes;
23593      const tagName = 'h' + level;
23594      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23595      const className = dist_clsx({
23596        [textClass]: textClass,
23597        'has-text-color': textColor || customTextColor,
23598        [`has-text-align-$align}`]: align
23599      });
23600      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
23601        className: className ? className : undefined,
23602        tagName: tagName,
23603        style: {
23604          color: textClass ? undefined : customTextColor
23605        },
23606        value: content
23607      });
23608    }
23609  };
23610  const heading_deprecated_v4 = {
23611    supports: {
23612      align: ['wide', 'full'],
23613      anchor: true,
23614      className: false,
23615      color: {
23616        link: true
23617      },
23618      fontSize: true,
23619      lineHeight: true,
23620      __experimentalSelector: {
23621        'core/heading/h1': 'h1',
23622        'core/heading/h2': 'h2',
23623        'core/heading/h3': 'h3',
23624        'core/heading/h4': 'h4',
23625        'core/heading/h5': 'h5',
23626        'core/heading/h6': 'h6'
23627      },
23628      __unstablePasteTextInline: true
23629    },
23630    attributes: heading_deprecated_blockAttributes,
23631    isEligible: ({
23632      align
23633    }) => TEXT_ALIGN_OPTIONS.includes(align),
23634    migrate: migrateTextAlign,
23635    save({
23636      attributes
23637    }) {
23638      const {
23639        align,
23640        content,
23641        level
23642      } = attributes;
23643      const TagName = 'h' + level;
23644      const className = dist_clsx({
23645        [`has-text-align-$align}`]: align
23646      });
23647      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23648        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
23649          className
23650        }),
23651        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
23652          value: content
23653        })
23654      });
23655    }
23656  };
23657  
23658  // This deprecation covers the serialization of the `wp-block-heading` class
23659  // into the block's markup after className support was enabled.
23660  const heading_deprecated_v5 = {
23661    supports: {
23662      align: ['wide', 'full'],
23663      anchor: true,
23664      className: false,
23665      color: {
23666        gradients: true,
23667        link: true,
23668        __experimentalDefaultControls: {
23669          background: true,
23670          text: true
23671        }
23672      },
23673      spacing: {
23674        margin: true,
23675        padding: true
23676      },
23677      typography: {
23678        fontSize: true,
23679        lineHeight: true,
23680        __experimentalFontFamily: true,
23681        __experimentalFontStyle: true,
23682        __experimentalFontWeight: true,
23683        __experimentalLetterSpacing: true,
23684        __experimentalTextTransform: true,
23685        __experimentalTextDecoration: true,
23686        __experimentalDefaultControls: {
23687          fontSize: true,
23688          fontAppearance: true,
23689          textTransform: true
23690        }
23691      },
23692      __experimentalSelector: 'h1,h2,h3,h4,h5,h6',
23693      __unstablePasteTextInline: true,
23694      __experimentalSlashInserter: true
23695    },
23696    attributes: {
23697      textAlign: {
23698        type: 'string'
23699      },
23700      content: {
23701        type: 'string',
23702        source: 'html',
23703        selector: 'h1,h2,h3,h4,h5,h6',
23704        default: '',
23705        role: 'content'
23706      },
23707      level: {
23708        type: 'number',
23709        default: 2
23710      },
23711      placeholder: {
23712        type: 'string'
23713      }
23714    },
23715    save({
23716      attributes
23717    }) {
23718      const {
23719        textAlign,
23720        content,
23721        level
23722      } = attributes;
23723      const TagName = 'h' + level;
23724      const className = dist_clsx({
23725        [`has-text-align-$textAlign}`]: textAlign
23726      });
23727      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23728        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
23729          className
23730        }),
23731        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
23732          value: content
23733        })
23734      });
23735    }
23736  };
23737  const heading_deprecated_deprecated = [heading_deprecated_v5, heading_deprecated_v4, heading_deprecated_v3, heading_deprecated_v2, heading_deprecated_v1];
23738  /* harmony default export */ const heading_deprecated = (heading_deprecated_deprecated);
23739  
23740  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/autogenerate-anchors.js
23741  /**
23742   * External dependencies
23743   */
23744  
23745  
23746  /**
23747   * Object map tracking anchors.
23748   *
23749   * @type {Record<string, string | null>}
23750   */
23751  const autogenerate_anchors_anchors = {};
23752  
23753  /**
23754   * Returns the text without markup.
23755   *
23756   * @param {string} text The text.
23757   *
23758   * @return {string} The text without markup.
23759   */
23760  const getTextWithoutMarkup = text => {
23761    const dummyElement = document.createElement('div');
23762    dummyElement.innerHTML = text;
23763    return dummyElement.innerText;
23764  };
23765  
23766  /**
23767   * Get the slug from the content.
23768   *
23769   * @param {string} content The block content.
23770   *
23771   * @return {string} Returns the slug.
23772   */
23773  const getSlug = content => {
23774    // Get the slug.
23775    return remove_accents_default()(getTextWithoutMarkup(content))
23776    // Convert anything that's not a letter or number to a hyphen.
23777    .replace(/[^\p{L}\p{N}]+/gu, '-')
23778    // Convert to lowercase
23779    .toLowerCase()
23780    // Remove any remaining leading or trailing hyphens.
23781    .replace(/(^-+)|(-+$)/g, '');
23782  };
23783  
23784  /**
23785   * Generate the anchor for a heading.
23786   *
23787   * @param {string} clientId The block ID.
23788   * @param {string} content  The block content.
23789   *
23790   * @return {string|null} Return the heading anchor.
23791   */
23792  const generateAnchor = (clientId, content) => {
23793    const slug = getSlug(content);
23794    // If slug is empty, then return null.
23795    // Returning null instead of an empty string allows us to check again when the content changes.
23796    if ('' === slug) {
23797      return null;
23798    }
23799    delete autogenerate_anchors_anchors[clientId];
23800    let anchor = slug;
23801    let i = 0;
23802  
23803    // If the anchor already exists in another heading, append -i.
23804    while (Object.values(autogenerate_anchors_anchors).includes(anchor)) {
23805      i += 1;
23806      anchor = slug + '-' + i;
23807    }
23808    return anchor;
23809  };
23810  
23811  /**
23812   * Set the anchor for a heading.
23813   *
23814   * @param {string}      clientId The block ID.
23815   * @param {string|null} anchor   The block anchor.
23816   */
23817  const setAnchor = (clientId, anchor) => {
23818    autogenerate_anchors_anchors[clientId] = anchor;
23819  };
23820  
23821  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/edit.js
23822  /**
23823   * External dependencies
23824   */
23825  
23826  
23827  /**
23828   * WordPress dependencies
23829   */
23830  
23831  
23832  
23833  
23834  
23835  /**
23836   * Internal dependencies
23837   */
23838  
23839  
23840  
23841  
23842  function HeadingEdit({
23843    attributes,
23844    setAttributes,
23845    mergeBlocks,
23846    onReplace,
23847    style,
23848    clientId
23849  }) {
23850    const {
23851      textAlign,
23852      content,
23853      level,
23854      levelOptions,
23855      placeholder,
23856      anchor
23857    } = attributes;
23858    const tagName = 'h' + level;
23859    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
23860      className: dist_clsx({
23861        [`has-text-align-$textAlign}`]: textAlign
23862      }),
23863      style
23864    });
23865    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
23866    const {
23867      canGenerateAnchors
23868    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
23869      const {
23870        getGlobalBlockCount,
23871        getSettings
23872      } = select(external_wp_blockEditor_namespaceObject.store);
23873      const settings = getSettings();
23874      return {
23875        canGenerateAnchors: !!settings.generateAnchors || getGlobalBlockCount('core/table-of-contents') > 0
23876      };
23877    }, []);
23878    const {
23879      __unstableMarkNextChangeAsNotPersistent
23880    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
23881  
23882    // Initially set anchor for headings that have content but no anchor set.
23883    // This is used when transforming a block to heading, or for legacy anchors.
23884    (0,external_wp_element_namespaceObject.useEffect)(() => {
23885      if (!canGenerateAnchors) {
23886        return;
23887      }
23888      if (!anchor && content) {
23889        // This side-effect should not create an undo level.
23890        __unstableMarkNextChangeAsNotPersistent();
23891        setAttributes({
23892          anchor: generateAnchor(clientId, content)
23893        });
23894      }
23895      setAnchor(clientId, anchor);
23896  
23897      // Remove anchor map when block unmounts.
23898      return () => setAnchor(clientId, null);
23899    }, [anchor, content, clientId, canGenerateAnchors]);
23900    const onContentChange = value => {
23901      const newAttrs = {
23902        content: value
23903      };
23904      if (canGenerateAnchors && (!anchor || !value || generateAnchor(clientId, content) === anchor)) {
23905        newAttrs.anchor = generateAnchor(clientId, value);
23906      }
23907      setAttributes(newAttrs);
23908    };
23909    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
23910      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
23911        group: "block",
23912        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
23913          value: level,
23914          options: levelOptions,
23915          onChange: newLevel => setAttributes({
23916            level: newLevel
23917          })
23918        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
23919          value: textAlign,
23920          onChange: nextAlign => {
23921            setAttributes({
23922              textAlign: nextAlign
23923            });
23924          }
23925        })]
23926      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
23927        identifier: "content",
23928        tagName: tagName,
23929        value: content,
23930        onChange: onContentChange,
23931        onMerge: mergeBlocks,
23932        onReplace: onReplace,
23933        onRemove: () => onReplace([]),
23934        placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Heading'),
23935        textAlign: textAlign,
23936        ...(external_wp_element_namespaceObject.Platform.isNative && {
23937          deleteEnter: true
23938        }),
23939        ...blockProps
23940      })]
23941    });
23942  }
23943  /* harmony default export */ const heading_edit = (HeadingEdit);
23944  
23945  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/save.js
23946  /**
23947   * External dependencies
23948   */
23949  
23950  
23951  /**
23952   * WordPress dependencies
23953   */
23954  
23955  
23956  function heading_save_save({
23957    attributes
23958  }) {
23959    const {
23960      textAlign,
23961      content,
23962      level
23963    } = attributes;
23964    const TagName = 'h' + level;
23965    const className = dist_clsx({
23966      [`has-text-align-$textAlign}`]: textAlign
23967    });
23968    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23969      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
23970        className
23971      }),
23972      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
23973        value: content
23974      })
23975    });
23976  }
23977  
23978  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/shared.js
23979  /**
23980   * Given a node name string for a heading node, returns its numeric level.
23981   *
23982   * @param {string} nodeName Heading node name.
23983   *
23984   * @return {number} Heading level.
23985   */
23986  function getLevelFromHeadingNodeName(nodeName) {
23987    return Number(nodeName.substr(1));
23988  }
23989  
23990  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/transforms.js
23991  /**
23992   * WordPress dependencies
23993   */
23994  
23995  
23996  /**
23997   * Internal dependencies
23998   */
23999  
24000  
24001  const heading_transforms_transforms = {
24002    from: [{
24003      type: 'block',
24004      isMultiBlock: true,
24005      blocks: ['core/paragraph'],
24006      transform: attributes => attributes.map(({
24007        content,
24008        anchor,
24009        align: textAlign,
24010        metadata
24011      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24012        content,
24013        anchor,
24014        textAlign,
24015        metadata: getTransformedMetadata(metadata, 'core/heading', ({
24016          content: contentBinding
24017        }) => ({
24018          content: contentBinding
24019        }))
24020      }))
24021    }, {
24022      type: 'raw',
24023      selector: 'h1,h2,h3,h4,h5,h6',
24024      schema: ({
24025        phrasingContentSchema,
24026        isPaste
24027      }) => {
24028        const schema = {
24029          children: phrasingContentSchema,
24030          attributes: isPaste ? [] : ['style', 'id']
24031        };
24032        return {
24033          h1: schema,
24034          h2: schema,
24035          h3: schema,
24036          h4: schema,
24037          h5: schema,
24038          h6: schema
24039        };
24040      },
24041      transform(node) {
24042        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/heading', node.outerHTML);
24043        const {
24044          textAlign
24045        } = node.style || {};
24046        attributes.level = getLevelFromHeadingNodeName(node.nodeName);
24047        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
24048          attributes.align = textAlign;
24049        }
24050        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', attributes);
24051      }
24052    }, ...[1, 2, 3, 4, 5, 6].map(level => ({
24053      type: 'prefix',
24054      prefix: Array(level + 1).join('#'),
24055      transform(content) {
24056        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24057          level,
24058          content
24059        });
24060      }
24061    })), ...[1, 2, 3, 4, 5, 6].map(level => ({
24062      type: 'enter',
24063      regExp: new RegExp(`^/(h|H)$level}$`),
24064      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24065        level
24066      })
24067    }))],
24068    to: [{
24069      type: 'block',
24070      isMultiBlock: true,
24071      blocks: ['core/paragraph'],
24072      transform: attributes => attributes.map(({
24073        content,
24074        textAlign: align,
24075        metadata
24076      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
24077        content,
24078        align,
24079        metadata: getTransformedMetadata(metadata, 'core/paragraph', ({
24080          content: contentBinding
24081        }) => ({
24082          content: contentBinding
24083        }))
24084      }))
24085    }]
24086  };
24087  /* harmony default export */ const heading_transforms = (heading_transforms_transforms);
24088  
24089  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/index.js
24090  /**
24091   * WordPress dependencies
24092   */
24093  
24094  
24095  
24096  /**
24097   * Internal dependencies
24098   */
24099  
24100  
24101  
24102  const heading_metadata = {
24103    $schema: "https://schemas.wp.org/trunk/block.json",
24104    apiVersion: 3,
24105    name: "core/heading",
24106    title: "Heading",
24107    category: "text",
24108    description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
24109    keywords: ["title", "subtitle"],
24110    textdomain: "default",
24111    attributes: {
24112      textAlign: {
24113        type: "string"
24114      },
24115      content: {
24116        type: "rich-text",
24117        source: "rich-text",
24118        selector: "h1,h2,h3,h4,h5,h6",
24119        role: "content"
24120      },
24121      level: {
24122        type: "number",
24123        "default": 2
24124      },
24125      levelOptions: {
24126        type: "array"
24127      },
24128      placeholder: {
24129        type: "string"
24130      }
24131    },
24132    supports: {
24133      align: ["wide", "full"],
24134      anchor: true,
24135      className: true,
24136      splitting: true,
24137      __experimentalBorder: {
24138        color: true,
24139        radius: true,
24140        style: true,
24141        width: true,
24142        __experimentalDefaultControls: {
24143          color: true,
24144          radius: true,
24145          style: true,
24146          width: true
24147        }
24148      },
24149      color: {
24150        gradients: true,
24151        link: true,
24152        __experimentalDefaultControls: {
24153          background: true,
24154          text: true
24155        }
24156      },
24157      spacing: {
24158        margin: true,
24159        padding: true,
24160        __experimentalDefaultControls: {
24161          margin: false,
24162          padding: false
24163        }
24164      },
24165      typography: {
24166        fontSize: true,
24167        lineHeight: true,
24168        __experimentalFontFamily: true,
24169        __experimentalFontStyle: true,
24170        __experimentalFontWeight: true,
24171        __experimentalLetterSpacing: true,
24172        __experimentalTextTransform: true,
24173        __experimentalTextDecoration: true,
24174        __experimentalWritingMode: true,
24175        __experimentalDefaultControls: {
24176          fontSize: true
24177        }
24178      },
24179      __unstablePasteTextInline: true,
24180      __experimentalSlashInserter: true,
24181      interactivity: {
24182        clientNavigation: true
24183      }
24184    },
24185    editorStyle: "wp-block-heading-editor",
24186    style: "wp-block-heading"
24187  };
24188  
24189  
24190  const {
24191    name: heading_name
24192  } = heading_metadata;
24193  
24194  const heading_settings = {
24195    icon: library_heading,
24196    example: {
24197      attributes: {
24198        content: (0,external_wp_i18n_namespaceObject.__)('Code is Poetry'),
24199        level: 2,
24200        textAlign: 'center'
24201      }
24202    },
24203    __experimentalLabel(attributes, {
24204      context
24205    }) {
24206      const {
24207        content,
24208        level
24209      } = attributes;
24210      const customName = attributes?.metadata?.name;
24211      const hasContent = content?.trim().length > 0;
24212  
24213      // In the list view, use the block's content as the label.
24214      // If the content is empty, fall back to the default label.
24215      if (context === 'list-view' && (customName || hasContent)) {
24216        return customName || content;
24217      }
24218      if (context === 'accessibility') {
24219        return !hasContent ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: accessibility text. %s: heading level. */
24220        (0,external_wp_i18n_namespaceObject.__)('Level %s. Empty.'), level) : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: accessibility text. 1: heading level. 2: heading content. */
24221        (0,external_wp_i18n_namespaceObject.__)('Level %1$s. %2$s'), level, content);
24222      }
24223    },
24224    transforms: heading_transforms,
24225    deprecated: heading_deprecated,
24226    merge(attributes, attributesToMerge) {
24227      return {
24228        content: (attributes.content || '') + (attributesToMerge.content || '')
24229      };
24230    },
24231    edit: heading_edit,
24232    save: heading_save_save
24233  };
24234  const heading_init = () => initBlock({
24235    name: heading_name,
24236    metadata: heading_metadata,
24237    settings: heading_settings
24238  });
24239  
24240  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/home.js
24241  /**
24242   * WordPress dependencies
24243   */
24244  
24245  
24246  const home = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
24247    xmlns: "http://www.w3.org/2000/svg",
24248    viewBox: "0 0 24 24",
24249    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
24250      d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"
24251    })
24252  });
24253  /* harmony default export */ const library_home = (home);
24254  
24255  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/edit.js
24256  /**
24257   * External dependencies
24258   */
24259  
24260  
24261  /**
24262   * WordPress dependencies
24263   */
24264  
24265  
24266  
24267  
24268  
24269  
24270  
24271  const preventDefault = event => event.preventDefault();
24272  function HomeEdit({
24273    attributes,
24274    setAttributes,
24275    context
24276  }) {
24277    const homeUrl = (0,external_wp_data_namespaceObject.useSelect)(select => {
24278      // Site index.
24279      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase')?.home;
24280    }, []);
24281    const {
24282      __unstableMarkNextChangeAsNotPersistent
24283    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
24284    const {
24285      textColor,
24286      backgroundColor,
24287      style
24288    } = context;
24289    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
24290      className: dist_clsx('wp-block-navigation-item', {
24291        'has-text-color': !!textColor || !!style?.color?.text,
24292        [`has-$textColor}-color`]: !!textColor,
24293        'has-background': !!backgroundColor || !!style?.color?.background,
24294        [`has-$backgroundColor}-background-color`]: !!backgroundColor
24295      }),
24296      style: {
24297        color: style?.color?.text,
24298        backgroundColor: style?.color?.background
24299      }
24300    });
24301    const {
24302      label
24303    } = attributes;
24304    (0,external_wp_element_namespaceObject.useEffect)(() => {
24305      if (label === undefined) {
24306        __unstableMarkNextChangeAsNotPersistent();
24307        setAttributes({
24308          label: (0,external_wp_i18n_namespaceObject.__)('Home')
24309        });
24310      }
24311    }, [label]);
24312    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
24313      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
24314        ...blockProps,
24315        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
24316          className: "wp-block-home-link__content wp-block-navigation-item__content",
24317          href: homeUrl,
24318          onClick: preventDefault,
24319          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
24320            identifier: "label",
24321            className: "wp-block-home-link__label",
24322            value: label,
24323            onChange: labelValue => {
24324              setAttributes({
24325                label: labelValue
24326              });
24327            },
24328            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home link text'),
24329            placeholder: (0,external_wp_i18n_namespaceObject.__)('Add home link'),
24330            withoutInteractiveFormatting: true,
24331            allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough']
24332          })
24333        })
24334      })
24335    });
24336  }
24337  
24338  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/save.js
24339  /**
24340   * WordPress dependencies
24341   */
24342  
24343  
24344  function home_link_save_save() {
24345    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
24346  }
24347  
24348  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/index.js
24349  /**
24350   * WordPress dependencies
24351   */
24352  
24353  
24354  
24355  /**
24356   * Internal dependencies
24357   */
24358  
24359  const home_link_metadata = {
24360    $schema: "https://schemas.wp.org/trunk/block.json",
24361    apiVersion: 3,
24362    name: "core/home-link",
24363    category: "design",
24364    parent: ["core/navigation"],
24365    title: "Home Link",
24366    description: "Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.",
24367    textdomain: "default",
24368    attributes: {
24369      label: {
24370        type: "string"
24371      }
24372    },
24373    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style"],
24374    supports: {
24375      reusable: false,
24376      html: false,
24377      typography: {
24378        fontSize: true,
24379        lineHeight: true,
24380        __experimentalFontFamily: true,
24381        __experimentalFontWeight: true,
24382        __experimentalFontStyle: true,
24383        __experimentalTextTransform: true,
24384        __experimentalTextDecoration: true,
24385        __experimentalLetterSpacing: true,
24386        __experimentalDefaultControls: {
24387          fontSize: true
24388        }
24389      },
24390      interactivity: {
24391        clientNavigation: true
24392      }
24393    },
24394    editorStyle: "wp-block-home-link-editor",
24395    style: "wp-block-home-link"
24396  };
24397  
24398  
24399  const {
24400    name: home_link_name
24401  } = home_link_metadata;
24402  
24403  const home_link_settings = {
24404    icon: library_home,
24405    edit: HomeEdit,
24406    save: home_link_save_save,
24407    example: {
24408      attributes: {
24409        label: (0,external_wp_i18n_namespaceObject._x)('Home Link', 'block example')
24410      }
24411    }
24412  };
24413  const home_link_init = () => initBlock({
24414    name: home_link_name,
24415    metadata: home_link_metadata,
24416    settings: home_link_settings
24417  });
24418  
24419  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/html.js
24420  /**
24421   * WordPress dependencies
24422   */
24423  
24424  
24425  const html = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
24426    viewBox: "0 0 24 24",
24427    xmlns: "http://www.w3.org/2000/svg",
24428    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
24429      d: "M4.8 11.4H2.1V9H1v6h1.1v-2.6h2.7V15h1.1V9H4.8v2.4zm1.9-1.3h1.7V15h1.1v-4.9h1.7V9H6.7v1.1zM16.2 9l-1.5 2.7L13.3 9h-.9l-.8 6h1.1l.5-4 1.5 2.8 1.5-2.8.5 4h1.1L17 9h-.8zm3.8 5V9h-1.1v6h3.6v-1H20z"
24430    })
24431  });
24432  /* harmony default export */ const library_html = (html);
24433  
24434  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/preview.js
24435  /**
24436   * WordPress dependencies
24437   */
24438  
24439  
24440  
24441  
24442  
24443  
24444  // Default styles used to unset some of the styles
24445  // that might be inherited from the editor style.
24446  
24447  
24448  
24449  const DEFAULT_STYLES = `
24450      html,body,:root {
24451          margin: 0 !important;
24452          padding: 0 !important;
24453          overflow: visible !important;
24454          min-height: auto !important;
24455      }
24456  `;
24457  function HTMLEditPreview({
24458    content,
24459    isSelected
24460  }) {
24461    const settingStyles = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().styles);
24462    const styles = (0,external_wp_element_namespaceObject.useMemo)(() => [DEFAULT_STYLES, ...(0,external_wp_blockEditor_namespaceObject.transformStyles)(settingStyles.filter(style => style.css))], [settingStyles]);
24463    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
24464      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SandBox, {
24465        html: content,
24466        styles: styles,
24467        title: (0,external_wp_i18n_namespaceObject.__)('Custom HTML Preview'),
24468        tabIndex: -1
24469      }), !isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
24470        className: "block-library-html__preview-overlay"
24471      })]
24472    });
24473  }
24474  
24475  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/edit.js
24476  /**
24477   * WordPress dependencies
24478   */
24479  
24480  
24481  
24482  
24483  
24484  
24485  /**
24486   * Internal dependencies
24487   */
24488  
24489  
24490  
24491  
24492  function HTMLEdit({
24493    attributes,
24494    setAttributes,
24495    isSelected
24496  }) {
24497    const [isPreview, setIsPreview] = (0,external_wp_element_namespaceObject.useState)();
24498    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
24499    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(HTMLEdit, 'html-edit-desc');
24500    function switchToPreview() {
24501      setIsPreview(true);
24502    }
24503    function switchToHTML() {
24504      setIsPreview(false);
24505    }
24506    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
24507      className: 'block-library-html__edit',
24508      'aria-describedby': isPreview ? instanceId : undefined
24509    });
24510    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
24511      ...blockProps,
24512      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
24513        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
24514          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
24515            isPressed: !isPreview,
24516            onClick: switchToHTML,
24517            children: "HTML"
24518          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
24519            isPressed: isPreview,
24520            onClick: switchToPreview,
24521            children: (0,external_wp_i18n_namespaceObject.__)('Preview')
24522          })]
24523        })
24524      }), isPreview || isDisabled ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
24525        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(HTMLEditPreview, {
24526          content: attributes.content,
24527          isSelected: isSelected
24528        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
24529          id: instanceId,
24530          children: (0,external_wp_i18n_namespaceObject.__)('HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.')
24531        })]
24532      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
24533        value: attributes.content,
24534        onChange: content => setAttributes({
24535          content
24536        }),
24537        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write HTML…'),
24538        "aria-label": (0,external_wp_i18n_namespaceObject.__)('HTML')
24539      })]
24540    });
24541  }
24542  
24543  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/save.js
24544  /**
24545   * WordPress dependencies
24546   */
24547  
24548  
24549  function html_save_save({
24550    attributes
24551  }) {
24552    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
24553      children: attributes.content
24554    });
24555  }
24556  
24557  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/transforms.js
24558  /**
24559   * WordPress dependencies
24560   */
24561  
24562  
24563  const html_transforms_transforms = {
24564    from: [{
24565      type: 'block',
24566      blocks: ['core/code'],
24567      transform: ({
24568        content: html
24569      }) => {
24570        return (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
24571          // The code block may output HTML formatting, so convert it
24572          // to plain text.
24573          content: (0,external_wp_richText_namespaceObject.create)({
24574            html
24575          }).text
24576        });
24577      }
24578    }]
24579  };
24580  /* harmony default export */ const html_transforms = (html_transforms_transforms);
24581  
24582  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/index.js
24583  /**
24584   * WordPress dependencies
24585   */
24586  
24587  
24588  
24589  /**
24590   * Internal dependencies
24591   */
24592  
24593  
24594  const html_metadata = {
24595    $schema: "https://schemas.wp.org/trunk/block.json",
24596    apiVersion: 3,
24597    name: "core/html",
24598    title: "Custom HTML",
24599    category: "widgets",
24600    description: "Add custom HTML code and preview it as you edit.",
24601    keywords: ["embed"],
24602    textdomain: "default",
24603    attributes: {
24604      content: {
24605        type: "string",
24606        source: "raw"
24607      }
24608    },
24609    supports: {
24610      customClassName: false,
24611      className: false,
24612      html: false,
24613      interactivity: {
24614        clientNavigation: true
24615      }
24616    },
24617    editorStyle: "wp-block-html-editor"
24618  };
24619  
24620  
24621  const {
24622    name: html_name
24623  } = html_metadata;
24624  
24625  const html_settings = {
24626    icon: library_html,
24627    example: {
24628      attributes: {
24629        content: '<marquee>' + (0,external_wp_i18n_namespaceObject.__)('Welcome to the wonderful world of blocks…') + '</marquee>'
24630      }
24631    },
24632    edit: HTMLEdit,
24633    save: html_save_save,
24634    transforms: html_transforms
24635  };
24636  const html_init = () => initBlock({
24637    name: html_name,
24638    metadata: html_metadata,
24639    settings: html_settings
24640  });
24641  
24642  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/deprecated.js
24643  /**
24644   * External dependencies
24645   */
24646  
24647  
24648  /**
24649   * WordPress dependencies
24650   */
24651  
24652  
24653  /**
24654   * Deprecation for adding the `wp-image-${id}` class to the image block for
24655   * responsive images.
24656   *
24657   * @see https://github.com/WordPress/gutenberg/pull/4898
24658   */
24659  
24660  
24661  
24662  const image_deprecated_v1 = {
24663    attributes: {
24664      url: {
24665        type: 'string',
24666        source: 'attribute',
24667        selector: 'img',
24668        attribute: 'src'
24669      },
24670      alt: {
24671        type: 'string',
24672        source: 'attribute',
24673        selector: 'img',
24674        attribute: 'alt',
24675        default: ''
24676      },
24677      caption: {
24678        type: 'array',
24679        source: 'children',
24680        selector: 'figcaption'
24681      },
24682      href: {
24683        type: 'string',
24684        source: 'attribute',
24685        selector: 'a',
24686        attribute: 'href'
24687      },
24688      id: {
24689        type: 'number'
24690      },
24691      align: {
24692        type: 'string'
24693      },
24694      width: {
24695        type: 'number'
24696      },
24697      height: {
24698        type: 'number'
24699      }
24700    },
24701    save({
24702      attributes
24703    }) {
24704      const {
24705        url,
24706        alt,
24707        caption,
24708        align,
24709        href,
24710        width,
24711        height
24712      } = attributes;
24713      const extraImageProps = width || height ? {
24714        width,
24715        height
24716      } : {};
24717      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
24718        src: url,
24719        alt: alt,
24720        ...extraImageProps
24721      });
24722      let figureStyle = {};
24723      if (width) {
24724        figureStyle = {
24725          width
24726        };
24727      } else if (align === 'left' || align === 'right') {
24728        figureStyle = {
24729          maxWidth: '50%'
24730        };
24731      }
24732      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
24733        className: align ? `align$align}` : null,
24734        style: figureStyle,
24735        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
24736          href: href,
24737          children: image
24738        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24739          tagName: "figcaption",
24740          value: caption
24741        })]
24742      });
24743    }
24744  };
24745  
24746  /**
24747   * Deprecation for adding the `is-resized` class to the image block to fix
24748   * captions on resized images.
24749   *
24750   * @see https://github.com/WordPress/gutenberg/pull/6496
24751   */
24752  const image_deprecated_v2 = {
24753    attributes: {
24754      url: {
24755        type: 'string',
24756        source: 'attribute',
24757        selector: 'img',
24758        attribute: 'src'
24759      },
24760      alt: {
24761        type: 'string',
24762        source: 'attribute',
24763        selector: 'img',
24764        attribute: 'alt',
24765        default: ''
24766      },
24767      caption: {
24768        type: 'array',
24769        source: 'children',
24770        selector: 'figcaption'
24771      },
24772      href: {
24773        type: 'string',
24774        source: 'attribute',
24775        selector: 'a',
24776        attribute: 'href'
24777      },
24778      id: {
24779        type: 'number'
24780      },
24781      align: {
24782        type: 'string'
24783      },
24784      width: {
24785        type: 'number'
24786      },
24787      height: {
24788        type: 'number'
24789      }
24790    },
24791    save({
24792      attributes
24793    }) {
24794      const {
24795        url,
24796        alt,
24797        caption,
24798        align,
24799        href,
24800        width,
24801        height,
24802        id
24803      } = attributes;
24804      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
24805        src: url,
24806        alt: alt,
24807        className: id ? `wp-image-$id}` : null,
24808        width: width,
24809        height: height
24810      });
24811      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
24812        className: align ? `align$align}` : null,
24813        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
24814          href: href,
24815          children: image
24816        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24817          tagName: "figcaption",
24818          value: caption
24819        })]
24820      });
24821    }
24822  };
24823  
24824  /**
24825   * Deprecation for image floats including a wrapping div.
24826   *
24827   * @see https://github.com/WordPress/gutenberg/pull/7721
24828   */
24829  const image_deprecated_v3 = {
24830    attributes: {
24831      url: {
24832        type: 'string',
24833        source: 'attribute',
24834        selector: 'img',
24835        attribute: 'src'
24836      },
24837      alt: {
24838        type: 'string',
24839        source: 'attribute',
24840        selector: 'img',
24841        attribute: 'alt',
24842        default: ''
24843      },
24844      caption: {
24845        type: 'array',
24846        source: 'children',
24847        selector: 'figcaption'
24848      },
24849      href: {
24850        type: 'string',
24851        source: 'attribute',
24852        selector: 'figure > a',
24853        attribute: 'href'
24854      },
24855      id: {
24856        type: 'number'
24857      },
24858      align: {
24859        type: 'string'
24860      },
24861      width: {
24862        type: 'number'
24863      },
24864      height: {
24865        type: 'number'
24866      },
24867      linkDestination: {
24868        type: 'string',
24869        default: 'none'
24870      }
24871    },
24872    save({
24873      attributes
24874    }) {
24875      const {
24876        url,
24877        alt,
24878        caption,
24879        align,
24880        href,
24881        width,
24882        height,
24883        id
24884      } = attributes;
24885      const classes = dist_clsx({
24886        [`align$align}`]: align,
24887        'is-resized': width || height
24888      });
24889      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
24890        src: url,
24891        alt: alt,
24892        className: id ? `wp-image-$id}` : null,
24893        width: width,
24894        height: height
24895      });
24896      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
24897        className: classes,
24898        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
24899          href: href,
24900          children: image
24901        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24902          tagName: "figcaption",
24903          value: caption
24904        })]
24905      });
24906    }
24907  };
24908  
24909  /**
24910   * Deprecation for removing the outer div wrapper around aligned images.
24911   *
24912   * @see https://github.com/WordPress/gutenberg/pull/38657
24913   */
24914  const image_deprecated_v4 = {
24915    attributes: {
24916      align: {
24917        type: 'string'
24918      },
24919      url: {
24920        type: 'string',
24921        source: 'attribute',
24922        selector: 'img',
24923        attribute: 'src'
24924      },
24925      alt: {
24926        type: 'string',
24927        source: 'attribute',
24928        selector: 'img',
24929        attribute: 'alt',
24930        default: ''
24931      },
24932      caption: {
24933        type: 'string',
24934        source: 'html',
24935        selector: 'figcaption'
24936      },
24937      title: {
24938        type: 'string',
24939        source: 'attribute',
24940        selector: 'img',
24941        attribute: 'title'
24942      },
24943      href: {
24944        type: 'string',
24945        source: 'attribute',
24946        selector: 'figure > a',
24947        attribute: 'href'
24948      },
24949      rel: {
24950        type: 'string',
24951        source: 'attribute',
24952        selector: 'figure > a',
24953        attribute: 'rel'
24954      },
24955      linkClass: {
24956        type: 'string',
24957        source: 'attribute',
24958        selector: 'figure > a',
24959        attribute: 'class'
24960      },
24961      id: {
24962        type: 'number'
24963      },
24964      width: {
24965        type: 'number'
24966      },
24967      height: {
24968        type: 'number'
24969      },
24970      sizeSlug: {
24971        type: 'string'
24972      },
24973      linkDestination: {
24974        type: 'string'
24975      },
24976      linkTarget: {
24977        type: 'string',
24978        source: 'attribute',
24979        selector: 'figure > a',
24980        attribute: 'target'
24981      }
24982    },
24983    supports: {
24984      anchor: true
24985    },
24986    save({
24987      attributes
24988    }) {
24989      const {
24990        url,
24991        alt,
24992        caption,
24993        align,
24994        href,
24995        rel,
24996        linkClass,
24997        width,
24998        height,
24999        id,
25000        linkTarget,
25001        sizeSlug,
25002        title
25003      } = attributes;
25004      const newRel = !rel ? undefined : rel;
25005      const classes = dist_clsx({
25006        [`align$align}`]: align,
25007        [`size-$sizeSlug}`]: sizeSlug,
25008        'is-resized': width || height
25009      });
25010      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25011        src: url,
25012        alt: alt,
25013        className: id ? `wp-image-$id}` : null,
25014        width: width,
25015        height: height,
25016        title: title
25017      });
25018      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25019        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25020          className: linkClass,
25021          href: href,
25022          target: linkTarget,
25023          rel: newRel,
25024          children: image
25025        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25026          tagName: "figcaption",
25027          value: caption
25028        })]
25029      });
25030      if ('left' === align || 'right' === align || 'center' === align) {
25031        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25032          ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
25033          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25034            className: classes,
25035            children: figure
25036          })
25037        });
25038      }
25039      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25040        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25041          className: classes
25042        }),
25043        children: figure
25044      });
25045    }
25046  };
25047  
25048  /**
25049   * Deprecation for moving existing border radius styles onto the inner img
25050   * element where new border block support styles must be applied.
25051   * It will also add a new `.has-custom-border` class for existing blocks
25052   * with border radii set. This class is required to improve caption position
25053   * and styling when an image within a gallery has a custom border or
25054   * rounded corners.
25055   *
25056   * @see https://github.com/WordPress/gutenberg/pull/31366
25057   */
25058  const image_deprecated_v5 = {
25059    attributes: {
25060      align: {
25061        type: 'string'
25062      },
25063      url: {
25064        type: 'string',
25065        source: 'attribute',
25066        selector: 'img',
25067        attribute: 'src'
25068      },
25069      alt: {
25070        type: 'string',
25071        source: 'attribute',
25072        selector: 'img',
25073        attribute: 'alt',
25074        default: ''
25075      },
25076      caption: {
25077        type: 'string',
25078        source: 'html',
25079        selector: 'figcaption'
25080      },
25081      title: {
25082        type: 'string',
25083        source: 'attribute',
25084        selector: 'img',
25085        attribute: 'title'
25086      },
25087      href: {
25088        type: 'string',
25089        source: 'attribute',
25090        selector: 'figure > a',
25091        attribute: 'href'
25092      },
25093      rel: {
25094        type: 'string',
25095        source: 'attribute',
25096        selector: 'figure > a',
25097        attribute: 'rel'
25098      },
25099      linkClass: {
25100        type: 'string',
25101        source: 'attribute',
25102        selector: 'figure > a',
25103        attribute: 'class'
25104      },
25105      id: {
25106        type: 'number'
25107      },
25108      width: {
25109        type: 'number'
25110      },
25111      height: {
25112        type: 'number'
25113      },
25114      sizeSlug: {
25115        type: 'string'
25116      },
25117      linkDestination: {
25118        type: 'string'
25119      },
25120      linkTarget: {
25121        type: 'string',
25122        source: 'attribute',
25123        selector: 'figure > a',
25124        attribute: 'target'
25125      }
25126    },
25127    supports: {
25128      anchor: true,
25129      color: {
25130        __experimentalDuotone: 'img',
25131        text: false,
25132        background: false
25133      },
25134      __experimentalBorder: {
25135        radius: true,
25136        __experimentalDefaultControls: {
25137          radius: true
25138        }
25139      },
25140      __experimentalStyle: {
25141        spacing: {
25142          margin: '0 0 1em 0'
25143        }
25144      }
25145    },
25146    save({
25147      attributes
25148    }) {
25149      const {
25150        url,
25151        alt,
25152        caption,
25153        align,
25154        href,
25155        rel,
25156        linkClass,
25157        width,
25158        height,
25159        id,
25160        linkTarget,
25161        sizeSlug,
25162        title
25163      } = attributes;
25164      const newRel = !rel ? undefined : rel;
25165      const classes = dist_clsx({
25166        [`align$align}`]: align,
25167        [`size-$sizeSlug}`]: sizeSlug,
25168        'is-resized': width || height
25169      });
25170      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25171        src: url,
25172        alt: alt,
25173        className: id ? `wp-image-$id}` : null,
25174        width: width,
25175        height: height,
25176        title: title
25177      });
25178      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25179        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25180          className: linkClass,
25181          href: href,
25182          target: linkTarget,
25183          rel: newRel,
25184          children: image
25185        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25186          tagName: "figcaption",
25187          value: caption
25188        })]
25189      });
25190      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25191        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25192          className: classes
25193        }),
25194        children: figure
25195      });
25196    }
25197  };
25198  
25199  /**
25200   * Deprecation for adding width and height as style rules on the inner img.
25201   *
25202   * @see https://github.com/WordPress/gutenberg/pull/31366
25203   */
25204  const image_deprecated_v6 = {
25205    attributes: {
25206      align: {
25207        type: 'string'
25208      },
25209      url: {
25210        type: 'string',
25211        source: 'attribute',
25212        selector: 'img',
25213        attribute: 'src',
25214        role: 'content'
25215      },
25216      alt: {
25217        type: 'string',
25218        source: 'attribute',
25219        selector: 'img',
25220        attribute: 'alt',
25221        default: '',
25222        role: 'content'
25223      },
25224      caption: {
25225        type: 'string',
25226        source: 'html',
25227        selector: 'figcaption',
25228        role: 'content'
25229      },
25230      title: {
25231        type: 'string',
25232        source: 'attribute',
25233        selector: 'img',
25234        attribute: 'title',
25235        role: 'content'
25236      },
25237      href: {
25238        type: 'string',
25239        source: 'attribute',
25240        selector: 'figure > a',
25241        attribute: 'href',
25242        role: 'content'
25243      },
25244      rel: {
25245        type: 'string',
25246        source: 'attribute',
25247        selector: 'figure > a',
25248        attribute: 'rel'
25249      },
25250      linkClass: {
25251        type: 'string',
25252        source: 'attribute',
25253        selector: 'figure > a',
25254        attribute: 'class'
25255      },
25256      id: {
25257        type: 'number',
25258        role: 'content'
25259      },
25260      width: {
25261        type: 'number'
25262      },
25263      height: {
25264        type: 'number'
25265      },
25266      aspectRatio: {
25267        type: 'string'
25268      },
25269      scale: {
25270        type: 'string'
25271      },
25272      sizeSlug: {
25273        type: 'string'
25274      },
25275      linkDestination: {
25276        type: 'string'
25277      },
25278      linkTarget: {
25279        type: 'string',
25280        source: 'attribute',
25281        selector: 'figure > a',
25282        attribute: 'target'
25283      }
25284    },
25285    supports: {
25286      anchor: true,
25287      color: {
25288        text: false,
25289        background: false
25290      },
25291      filter: {
25292        duotone: true
25293      },
25294      __experimentalBorder: {
25295        color: true,
25296        radius: true,
25297        width: true,
25298        __experimentalSkipSerialization: true,
25299        __experimentalDefaultControls: {
25300          color: true,
25301          radius: true,
25302          width: true
25303        }
25304      }
25305    },
25306    migrate(attributes) {
25307      const {
25308        height,
25309        width
25310      } = attributes;
25311      return {
25312        ...attributes,
25313        width: typeof width === 'number' ? `$width}px` : width,
25314        height: typeof height === 'number' ? `$height}px` : height
25315      };
25316    },
25317    save({
25318      attributes
25319    }) {
25320      const {
25321        url,
25322        alt,
25323        caption,
25324        align,
25325        href,
25326        rel,
25327        linkClass,
25328        width,
25329        height,
25330        aspectRatio,
25331        scale,
25332        id,
25333        linkTarget,
25334        sizeSlug,
25335        title
25336      } = attributes;
25337      const newRel = !rel ? undefined : rel;
25338      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
25339      const classes = dist_clsx({
25340        [`align$align}`]: align,
25341        [`size-$sizeSlug}`]: sizeSlug,
25342        'is-resized': width || height,
25343        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
25344      });
25345      const imageClasses = dist_clsx(borderProps.className, {
25346        [`wp-image-$id}`]: !!id
25347      });
25348      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25349        src: url,
25350        alt: alt,
25351        className: imageClasses || undefined,
25352        style: {
25353          ...borderProps.style,
25354          aspectRatio,
25355          objectFit: scale
25356        },
25357        width: width,
25358        height: height,
25359        title: title
25360      });
25361      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25362        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25363          className: linkClass,
25364          href: href,
25365          target: linkTarget,
25366          rel: newRel,
25367          children: image
25368        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25369          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
25370          tagName: "figcaption",
25371          value: caption
25372        })]
25373      });
25374      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25375        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25376          className: classes
25377        }),
25378        children: figure
25379      });
25380    }
25381  };
25382  
25383  /**
25384   * Deprecation for converting to string width and height block attributes and
25385   * removing the width and height img element attributes which are not needed
25386   * as they get added by the TODO hook.
25387   *
25388   * @see https://github.com/WordPress/gutenberg/pull/53274
25389   */
25390  const image_deprecated_v7 = {
25391    attributes: {
25392      align: {
25393        type: 'string'
25394      },
25395      url: {
25396        type: 'string',
25397        source: 'attribute',
25398        selector: 'img',
25399        attribute: 'src',
25400        role: 'content'
25401      },
25402      alt: {
25403        type: 'string',
25404        source: 'attribute',
25405        selector: 'img',
25406        attribute: 'alt',
25407        default: '',
25408        role: 'content'
25409      },
25410      caption: {
25411        type: 'string',
25412        source: 'html',
25413        selector: 'figcaption',
25414        role: 'content'
25415      },
25416      title: {
25417        type: 'string',
25418        source: 'attribute',
25419        selector: 'img',
25420        attribute: 'title',
25421        role: 'content'
25422      },
25423      href: {
25424        type: 'string',
25425        source: 'attribute',
25426        selector: 'figure > a',
25427        attribute: 'href',
25428        role: 'content'
25429      },
25430      rel: {
25431        type: 'string',
25432        source: 'attribute',
25433        selector: 'figure > a',
25434        attribute: 'rel'
25435      },
25436      linkClass: {
25437        type: 'string',
25438        source: 'attribute',
25439        selector: 'figure > a',
25440        attribute: 'class'
25441      },
25442      id: {
25443        type: 'number',
25444        role: 'content'
25445      },
25446      width: {
25447        type: 'number'
25448      },
25449      height: {
25450        type: 'number'
25451      },
25452      aspectRatio: {
25453        type: 'string'
25454      },
25455      scale: {
25456        type: 'string'
25457      },
25458      sizeSlug: {
25459        type: 'string'
25460      },
25461      linkDestination: {
25462        type: 'string'
25463      },
25464      linkTarget: {
25465        type: 'string',
25466        source: 'attribute',
25467        selector: 'figure > a',
25468        attribute: 'target'
25469      }
25470    },
25471    supports: {
25472      anchor: true,
25473      color: {
25474        text: false,
25475        background: false
25476      },
25477      filter: {
25478        duotone: true
25479      },
25480      __experimentalBorder: {
25481        color: true,
25482        radius: true,
25483        width: true,
25484        __experimentalSkipSerialization: true,
25485        __experimentalDefaultControls: {
25486          color: true,
25487          radius: true,
25488          width: true
25489        }
25490      }
25491    },
25492    migrate({
25493      width,
25494      height,
25495      ...attributes
25496    }) {
25497      return {
25498        ...attributes,
25499        width: `$width}px`,
25500        height: `$height}px`
25501      };
25502    },
25503    save({
25504      attributes
25505    }) {
25506      const {
25507        url,
25508        alt,
25509        caption,
25510        align,
25511        href,
25512        rel,
25513        linkClass,
25514        width,
25515        height,
25516        aspectRatio,
25517        scale,
25518        id,
25519        linkTarget,
25520        sizeSlug,
25521        title
25522      } = attributes;
25523      const newRel = !rel ? undefined : rel;
25524      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
25525      const classes = dist_clsx({
25526        [`align$align}`]: align,
25527        [`size-$sizeSlug}`]: sizeSlug,
25528        'is-resized': width || height,
25529        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
25530      });
25531      const imageClasses = dist_clsx(borderProps.className, {
25532        [`wp-image-$id}`]: !!id
25533      });
25534      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25535        src: url,
25536        alt: alt,
25537        className: imageClasses || undefined,
25538        style: {
25539          ...borderProps.style,
25540          aspectRatio,
25541          objectFit: scale,
25542          width,
25543          height
25544        },
25545        width: width,
25546        height: height,
25547        title: title
25548      });
25549      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25550        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25551          className: linkClass,
25552          href: href,
25553          target: linkTarget,
25554          rel: newRel,
25555          children: image
25556        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25557          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
25558          tagName: "figcaption",
25559          value: caption
25560        })]
25561      });
25562      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25563        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25564          className: classes
25565        }),
25566        children: figure
25567      });
25568    }
25569  };
25570  const deprecated_v8 = {
25571    attributes: {
25572      align: {
25573        type: 'string'
25574      },
25575      behaviors: {
25576        type: 'object'
25577      },
25578      url: {
25579        type: 'string',
25580        source: 'attribute',
25581        selector: 'img',
25582        attribute: 'src',
25583        role: 'content'
25584      },
25585      alt: {
25586        type: 'string',
25587        source: 'attribute',
25588        selector: 'img',
25589        attribute: 'alt',
25590        default: '',
25591        role: 'content'
25592      },
25593      caption: {
25594        type: 'string',
25595        source: 'html',
25596        selector: 'figcaption',
25597        role: 'content'
25598      },
25599      title: {
25600        type: 'string',
25601        source: 'attribute',
25602        selector: 'img',
25603        attribute: 'title',
25604        role: 'content'
25605      },
25606      href: {
25607        type: 'string',
25608        source: 'attribute',
25609        selector: 'figure > a',
25610        attribute: 'href',
25611        role: 'content'
25612      },
25613      rel: {
25614        type: 'string',
25615        source: 'attribute',
25616        selector: 'figure > a',
25617        attribute: 'rel'
25618      },
25619      linkClass: {
25620        type: 'string',
25621        source: 'attribute',
25622        selector: 'figure > a',
25623        attribute: 'class'
25624      },
25625      id: {
25626        type: 'number',
25627        role: 'content'
25628      },
25629      width: {
25630        type: 'string'
25631      },
25632      height: {
25633        type: 'string'
25634      },
25635      aspectRatio: {
25636        type: 'string'
25637      },
25638      scale: {
25639        type: 'string'
25640      },
25641      sizeSlug: {
25642        type: 'string'
25643      },
25644      linkDestination: {
25645        type: 'string'
25646      },
25647      linkTarget: {
25648        type: 'string',
25649        source: 'attribute',
25650        selector: 'figure > a',
25651        attribute: 'target'
25652      }
25653    },
25654    supports: {
25655      anchor: true,
25656      color: {
25657        text: false,
25658        background: false
25659      },
25660      filter: {
25661        duotone: true
25662      },
25663      __experimentalBorder: {
25664        color: true,
25665        radius: true,
25666        width: true,
25667        __experimentalSkipSerialization: true,
25668        __experimentalDefaultControls: {
25669          color: true,
25670          radius: true,
25671          width: true
25672        }
25673      }
25674    },
25675    migrate({
25676      width,
25677      height,
25678      ...attributes
25679    }) {
25680      // We need to perform a check here because in cases
25681      // where attributes are added dynamically to blocks,
25682      // block invalidation overrides the isEligible() method
25683      // and forces the migration to run, so it's not guaranteed
25684      // that `behaviors` or `behaviors.lightbox` will be defined.
25685      if (!attributes.behaviors?.lightbox) {
25686        return attributes;
25687      }
25688      const {
25689        behaviors: {
25690          lightbox: {
25691            enabled
25692          }
25693        }
25694      } = attributes;
25695      const newAttributes = {
25696        ...attributes,
25697        lightbox: {
25698          enabled
25699        }
25700      };
25701      delete newAttributes.behaviors;
25702      return newAttributes;
25703    },
25704    isEligible(attributes) {
25705      return !!attributes.behaviors;
25706    },
25707    save({
25708      attributes
25709    }) {
25710      const {
25711        url,
25712        alt,
25713        caption,
25714        align,
25715        href,
25716        rel,
25717        linkClass,
25718        width,
25719        height,
25720        aspectRatio,
25721        scale,
25722        id,
25723        linkTarget,
25724        sizeSlug,
25725        title
25726      } = attributes;
25727      const newRel = !rel ? undefined : rel;
25728      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
25729      const classes = dist_clsx({
25730        [`align$align}`]: align,
25731        [`size-$sizeSlug}`]: sizeSlug,
25732        'is-resized': width || height,
25733        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
25734      });
25735      const imageClasses = dist_clsx(borderProps.className, {
25736        [`wp-image-$id}`]: !!id
25737      });
25738      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25739        src: url,
25740        alt: alt,
25741        className: imageClasses || undefined,
25742        style: {
25743          ...borderProps.style,
25744          aspectRatio,
25745          objectFit: scale,
25746          width,
25747          height
25748        },
25749        title: title
25750      });
25751      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25752        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25753          className: linkClass,
25754          href: href,
25755          target: linkTarget,
25756          rel: newRel,
25757          children: image
25758        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25759          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
25760          tagName: "figcaption",
25761          value: caption
25762        })]
25763      });
25764      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25765        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25766          className: classes
25767        }),
25768        children: figure
25769      });
25770    }
25771  };
25772  /* harmony default export */ const image_deprecated = ([deprecated_v8, image_deprecated_v7, image_deprecated_v6, image_deprecated_v5, image_deprecated_v4, image_deprecated_v3, image_deprecated_v2, image_deprecated_v1]);
25773  
25774  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plugins.js
25775  /**
25776   * WordPress dependencies
25777   */
25778  
25779  
25780  const plugins = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
25781    xmlns: "http://www.w3.org/2000/svg",
25782    viewBox: "0 0 24 24",
25783    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
25784      d: "M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z"
25785    })
25786  });
25787  /* harmony default export */ const library_plugins = (plugins);
25788  
25789  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/crop.js
25790  /**
25791   * WordPress dependencies
25792   */
25793  
25794  
25795  const crop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
25796    xmlns: "http://www.w3.org/2000/svg",
25797    viewBox: "0 0 24 24",
25798    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
25799      d: "M18 20v-2h2v-1.5H7.75a.25.25 0 0 1-.25-.25V4H6v2H4v1.5h2v8.75c0 .966.784 1.75 1.75 1.75h8.75v2H18ZM9.273 7.5h6.977a.25.25 0 0 1 .25.25v6.977H18V7.75A1.75 1.75 0 0 0 16.25 6H9.273v1.5Z"
25800    })
25801  });
25802  /* harmony default export */ const library_crop = (crop);
25803  
25804  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/overlay-text.js
25805  /**
25806   * WordPress dependencies
25807   */
25808  
25809  
25810  const overlayText = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
25811    xmlns: "http://www.w3.org/2000/svg",
25812    viewBox: "0 0 24 24",
25813    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
25814      d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12-9.8c.4 0 .8-.3.9-.7l1.1-3h3.6l.5 1.7h1.9L13 9h-2.2l-3.4 9.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12H20V6c0-1.1-.9-2-2-2zm-6 7l1.4 3.9h-2.7L12 11z"
25815    })
25816  });
25817  /* harmony default export */ const overlay_text = (overlayText);
25818  
25819  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
25820  /**
25821   * WordPress dependencies
25822   */
25823  
25824  
25825  const upload = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
25826    xmlns: "http://www.w3.org/2000/svg",
25827    viewBox: "0 0 24 24",
25828    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
25829      d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
25830    })
25831  });
25832  /* harmony default export */ const library_upload = (upload);
25833  
25834  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/image.js
25835  /**
25836   * WordPress dependencies
25837   */
25838  
25839  
25840  
25841  
25842  
25843  
25844  
25845  
25846  
25847  
25848  
25849  
25850  
25851  
25852  /**
25853   * Internal dependencies
25854   */
25855  
25856  
25857  
25858  
25859  
25860  /**
25861   * Module constants
25862   */
25863  
25864  
25865  
25866  
25867  
25868  
25869  const {
25870    DimensionsTool,
25871    ResolutionTool
25872  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
25873  const scaleOptions = [{
25874    value: 'cover',
25875    label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for dimensions control'),
25876    help: (0,external_wp_i18n_namespaceObject.__)('Image covers the space evenly.')
25877  }, {
25878    value: 'contain',
25879    label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for dimensions control'),
25880    help: (0,external_wp_i18n_namespaceObject.__)('Image is contained without distortion.')
25881  }];
25882  
25883  // If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.
25884  const ImageWrapper = ({
25885    href,
25886    children
25887  }) => {
25888    if (!href) {
25889      return children;
25890    }
25891    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25892      href: href,
25893      onClick: event => event.preventDefault(),
25894      "aria-disabled": true,
25895      style: {
25896        // When the Image block is linked,
25897        // it's wrapped with a disabled <a /> tag.
25898        // Restore cursor style so it doesn't appear 'clickable'
25899        // and remove pointer events. Safari needs the display property.
25900        pointerEvents: 'none',
25901        cursor: 'default',
25902        display: 'inline'
25903      },
25904      children: children
25905    });
25906  };
25907  function image_Image({
25908    temporaryURL,
25909    attributes,
25910    setAttributes,
25911    isSingleSelected,
25912    insertBlocksAfter,
25913    onReplace,
25914    onSelectImage,
25915    onSelectURL,
25916    onUploadError,
25917    context,
25918    clientId,
25919    blockEditingMode,
25920    parentLayoutType,
25921    maxContentWidth
25922  }) {
25923    const {
25924      url = '',
25925      alt,
25926      align,
25927      id,
25928      href,
25929      rel,
25930      linkClass,
25931      linkDestination,
25932      title,
25933      width,
25934      height,
25935      aspectRatio,
25936      scale,
25937      linkTarget,
25938      sizeSlug,
25939      lightbox,
25940      metadata
25941    } = attributes;
25942  
25943    // The only supported unit is px, so we can parseInt to strip the px here.
25944    const numericWidth = width ? parseInt(width, 10) : undefined;
25945    const numericHeight = height ? parseInt(height, 10) : undefined;
25946    const imageRef = (0,external_wp_element_namespaceObject.useRef)();
25947    const {
25948      allowResize = true
25949    } = context;
25950    const {
25951      getBlock,
25952      getSettings
25953    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
25954    const image = (0,external_wp_data_namespaceObject.useSelect)(select => id && isSingleSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(id, {
25955      context: 'view'
25956    }) : null, [id, isSingleSelected]);
25957    const {
25958      canInsertCover,
25959      imageEditing,
25960      imageSizes,
25961      maxWidth
25962    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
25963      const {
25964        getBlockRootClientId,
25965        canInsertBlockType
25966      } = select(external_wp_blockEditor_namespaceObject.store);
25967      const rootClientId = getBlockRootClientId(clientId);
25968      const settings = getSettings();
25969      return {
25970        imageEditing: settings.imageEditing,
25971        imageSizes: settings.imageSizes,
25972        maxWidth: settings.maxWidth,
25973        canInsertCover: canInsertBlockType('core/cover', rootClientId)
25974      };
25975    }, [clientId]);
25976    const {
25977      replaceBlocks,
25978      toggleSelection
25979    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
25980    const {
25981      createErrorNotice,
25982      createSuccessNotice
25983    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
25984    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
25985    const isWideAligned = ['wide', 'full'].includes(align);
25986    const [{
25987      loadedNaturalWidth,
25988      loadedNaturalHeight
25989    }, setLoadedNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
25990    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
25991    const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)();
25992    const [hasImageErrored, setHasImageErrored] = (0,external_wp_element_namespaceObject.useState)(false);
25993    const hasNonContentControls = blockEditingMode === 'default';
25994    const isContentOnlyMode = blockEditingMode === 'contentOnly';
25995    const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
25996    const imageSizeOptions = imageSizes.filter(({
25997      slug
25998    }) => image?.media_details?.sizes?.[slug]?.source_url).map(({
25999      name,
26000      slug
26001    }) => ({
26002      value: slug,
26003      label: name
26004    }));
26005  
26006    // If an image is externally hosted, try to fetch the image data. This may
26007    // fail if the image host doesn't allow CORS with the domain. If it works,
26008    // we can enable a button in the toolbar to upload the image.
26009    (0,external_wp_element_namespaceObject.useEffect)(() => {
26010      if (!isExternalImage(id, url) || !isSingleSelected || !getSettings().mediaUpload) {
26011        setExternalBlob();
26012        return;
26013      }
26014      if (externalBlob) {
26015        return;
26016      }
26017      window
26018      // Avoid cache, which seems to help avoid CORS problems.
26019      .fetch(url.includes('?') ? url : url + '?').then(response => response.blob()).then(blob => setExternalBlob(blob))
26020      // Do nothing, cannot upload.
26021      .catch(() => {});
26022    }, [id, url, isSingleSelected, externalBlob]);
26023  
26024    // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
26025    // width and height. This resolves an issue in Safari where the loaded natural
26026    // width and height is otherwise lost when switching between alignments.
26027    // See: https://github.com/WordPress/gutenberg/pull/37210.
26028    const {
26029      naturalWidth,
26030      naturalHeight
26031    } = (0,external_wp_element_namespaceObject.useMemo)(() => {
26032      return {
26033        naturalWidth: imageRef.current?.naturalWidth || loadedNaturalWidth || undefined,
26034        naturalHeight: imageRef.current?.naturalHeight || loadedNaturalHeight || undefined
26035      };
26036    }, [loadedNaturalWidth, loadedNaturalHeight, imageRef.current?.complete]);
26037    function onResizeStart() {
26038      toggleSelection(false);
26039    }
26040    function onResizeStop() {
26041      toggleSelection(true);
26042    }
26043    function onImageError() {
26044      setHasImageErrored(true);
26045  
26046      // Check if there's an embed block that handles this URL, e.g., instagram URL.
26047      // See: https://github.com/WordPress/gutenberg/pull/11472
26048      const embedBlock = createUpgradedEmbedBlock({
26049        attributes: {
26050          url
26051        }
26052      });
26053      if (undefined !== embedBlock) {
26054        onReplace(embedBlock);
26055      }
26056    }
26057    function onImageLoad(event) {
26058      setHasImageErrored(false);
26059      setLoadedNaturalSize({
26060        loadedNaturalWidth: event.target?.naturalWidth,
26061        loadedNaturalHeight: event.target?.naturalHeight
26062      });
26063    }
26064    function onSetHref(props) {
26065      setAttributes(props);
26066    }
26067    function onSetLightbox(enable) {
26068      if (enable && !lightboxSetting?.enabled) {
26069        setAttributes({
26070          lightbox: {
26071            enabled: true
26072          }
26073        });
26074      } else if (!enable && lightboxSetting?.enabled) {
26075        setAttributes({
26076          lightbox: {
26077            enabled: false
26078          }
26079        });
26080      } else {
26081        setAttributes({
26082          lightbox: undefined
26083        });
26084      }
26085    }
26086    function resetLightbox() {
26087      // When deleting a link from an image while lightbox settings
26088      // are enabled by default, we should disable the lightbox,
26089      // otherwise the resulting UX looks like a mistake.
26090      // See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.
26091      if (lightboxSetting?.enabled && lightboxSetting?.allowEditing) {
26092        setAttributes({
26093          lightbox: {
26094            enabled: false
26095          }
26096        });
26097      } else {
26098        setAttributes({
26099          lightbox: undefined
26100        });
26101      }
26102    }
26103    function onSetTitle(value) {
26104      // This is the HTML title attribute, separate from the media object
26105      // title.
26106      setAttributes({
26107        title: value
26108      });
26109    }
26110    function updateAlt(newAlt) {
26111      setAttributes({
26112        alt: newAlt
26113      });
26114    }
26115    function updateImage(newSizeSlug) {
26116      const newUrl = image?.media_details?.sizes?.[newSizeSlug]?.source_url;
26117      if (!newUrl) {
26118        return null;
26119      }
26120      setAttributes({
26121        url: newUrl,
26122        sizeSlug: newSizeSlug
26123      });
26124    }
26125    function uploadExternal() {
26126      const {
26127        mediaUpload
26128      } = getSettings();
26129      if (!mediaUpload) {
26130        return;
26131      }
26132      mediaUpload({
26133        filesList: [externalBlob],
26134        onFileChange([img]) {
26135          onSelectImage(img);
26136          if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) {
26137            return;
26138          }
26139          setExternalBlob();
26140          createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded.'), {
26141            type: 'snackbar'
26142          });
26143        },
26144        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
26145        onError(message) {
26146          createErrorNotice(message, {
26147            type: 'snackbar'
26148          });
26149        }
26150      });
26151    }
26152    (0,external_wp_element_namespaceObject.useEffect)(() => {
26153      if (!isSingleSelected) {
26154        setIsEditingImage(false);
26155      }
26156    }, [isSingleSelected]);
26157    const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
26158    const allowCrop = isSingleSelected && canEditImage && !isEditingImage && !isContentOnlyMode;
26159    function switchToCover() {
26160      replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), 'core/cover'));
26161    }
26162  
26163    // TODO: Can allow more units after figuring out how they should interact
26164    // with the ResizableBox and ImageEditor components. Calculations later on
26165    // for those components are currently assuming px units.
26166    const dimensionsUnitsOptions = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
26167      availableUnits: ['px']
26168    });
26169    const [lightboxSetting] = (0,external_wp_blockEditor_namespaceObject.useSettings)('lightbox');
26170    const showLightboxSetting =
26171    // If a block-level override is set, we should give users the option to
26172    // remove that override, even if the lightbox UI is disabled in the settings.
26173    !!lightbox && lightbox?.enabled !== lightboxSetting?.enabled || lightboxSetting?.allowEditing;
26174    const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
26175    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
26176    const dimensionsControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionsTool, {
26177      value: {
26178        width,
26179        height,
26180        scale,
26181        aspectRatio
26182      },
26183      onChange: ({
26184        width: newWidth,
26185        height: newHeight,
26186        scale: newScale,
26187        aspectRatio: newAspectRatio
26188      }) => {
26189        // Rebuilding the object forces setting `undefined`
26190        // for values that are removed since setAttributes
26191        // doesn't do anything with keys that aren't set.
26192        setAttributes({
26193          // CSS includes `height: auto`, but we need
26194          // `width: auto` to fix the aspect ratio when
26195          // only height is set due to the width and
26196          // height attributes set via the server.
26197          width: !newWidth && newHeight ? 'auto' : newWidth,
26198          height: newHeight,
26199          scale: newScale,
26200          aspectRatio: newAspectRatio
26201        });
26202      },
26203      defaultScale: "cover",
26204      defaultAspectRatio: "auto",
26205      scaleOptions: scaleOptions,
26206      unitsOptions: dimensionsUnitsOptions
26207    });
26208    const aspectRatioControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionsTool, {
26209      value: {
26210        aspectRatio
26211      },
26212      onChange: ({
26213        aspectRatio: newAspectRatio
26214      }) => {
26215        setAttributes({
26216          aspectRatio: newAspectRatio,
26217          scale: 'cover'
26218        });
26219      },
26220      defaultAspectRatio: "auto",
26221      tools: ['aspectRatio']
26222    });
26223    const resetAll = () => {
26224      setAttributes({
26225        alt: undefined,
26226        width: undefined,
26227        height: undefined,
26228        scale: undefined,
26229        aspectRatio: undefined,
26230        lightbox: undefined
26231      });
26232    };
26233    const sizeControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
26234      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
26235        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
26236        resetAll: resetAll,
26237        dropdownMenuProps: dropdownMenuProps,
26238        children: isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl)
26239      })
26240    });
26241    const arePatternOverridesEnabled = metadata?.bindings?.__default?.source === 'core/pattern-overrides';
26242    const {
26243      lockUrlControls = false,
26244      lockHrefControls = false,
26245      lockAltControls = false,
26246      lockAltControlsMessage,
26247      lockTitleControls = false,
26248      lockTitleControlsMessage,
26249      lockCaption = false
26250    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
26251      if (!isSingleSelected) {
26252        return {};
26253      }
26254      const {
26255        url: urlBinding,
26256        alt: altBinding,
26257        title: titleBinding
26258      } = metadata?.bindings || {};
26259      const hasParentPattern = !!context['pattern/overrides'];
26260      const urlBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(urlBinding?.source);
26261      const altBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(altBinding?.source);
26262      const titleBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(titleBinding?.source);
26263      return {
26264        lockUrlControls: !!urlBinding && !urlBindingSource?.canUserEditValue?.({
26265          select,
26266          context,
26267          args: urlBinding?.args
26268        }),
26269        lockHrefControls:
26270        // Disable editing the link of the URL if the image is inside a pattern instance.
26271        // This is a temporary solution until we support overriding the link on the frontend.
26272        hasParentPattern || arePatternOverridesEnabled,
26273        lockCaption:
26274        // Disable editing the caption if the image is inside a pattern instance.
26275        // This is a temporary solution until we support overriding the caption on the frontend.
26276        hasParentPattern,
26277        lockAltControls: !!altBinding && !altBindingSource?.canUserEditValue?.({
26278          select,
26279          context,
26280          args: altBinding?.args
26281        }),
26282        lockAltControlsMessage: altBindingSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Label of the bindings source. */
26283        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), altBindingSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data'),
26284        lockTitleControls: !!titleBinding && !titleBindingSource?.canUserEditValue?.({
26285          select,
26286          context,
26287          args: titleBinding?.args
26288        }),
26289        lockTitleControlsMessage: titleBindingSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Label of the bindings source. */
26290        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), titleBindingSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data')
26291      };
26292    }, [arePatternOverridesEnabled, context, isSingleSelected, metadata?.bindings]);
26293    const showUrlInput = isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls;
26294    const showCoverControls = isSingleSelected && canInsertCover;
26295    const showBlockControls = showUrlInput || allowCrop || showCoverControls;
26296    const mediaReplaceFlow = isSingleSelected && !isEditingImage && !lockUrlControls &&
26297    /*#__PURE__*/
26298    // For contentOnly mode, put this button in its own area so it has borders around it.
26299    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
26300      group: isContentOnlyMode ? 'inline' : 'other',
26301      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
26302        mediaId: id,
26303        mediaURL: url,
26304        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
26305        accept: "image/*",
26306        onSelect: onSelectImage,
26307        onSelectURL: onSelectURL,
26308        onError: onUploadError,
26309        name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add image') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
26310        onReset: () => onSelectImage(undefined)
26311      })
26312    });
26313    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26314      children: [showBlockControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
26315        group: "block",
26316        children: [showUrlInput && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
26317          url: href || '',
26318          onChangeUrl: onSetHref,
26319          linkDestination: linkDestination,
26320          mediaUrl: image && image.source_url || url,
26321          mediaLink: image && image.link,
26322          linkTarget: linkTarget,
26323          linkClass: linkClass,
26324          rel: rel,
26325          showLightboxSetting: showLightboxSetting,
26326          lightboxEnabled: lightboxChecked,
26327          onSetLightbox: onSetLightbox,
26328          resetLightbox: resetLightbox
26329        }), allowCrop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
26330          onClick: () => setIsEditingImage(true),
26331          icon: library_crop,
26332          label: (0,external_wp_i18n_namespaceObject.__)('Crop')
26333        }), showCoverControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
26334          icon: overlay_text,
26335          label: (0,external_wp_i18n_namespaceObject.__)('Add text over image'),
26336          onClick: switchToCover
26337        })]
26338      }), isSingleSelected && externalBlob && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
26339        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
26340          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
26341            onClick: uploadExternal,
26342            icon: library_upload,
26343            label: (0,external_wp_i18n_namespaceObject.__)('Upload to Media Library')
26344          })
26345        })
26346      }), isContentOnlyMode &&
26347      /*#__PURE__*/
26348      // Add some extra controls for content attributes when content only mode is active.
26349      // With content only mode active, the inspector is hidden, so users need another way
26350      // to edit these attributes.
26351      (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
26352        group: "other",
26353        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
26354          popoverProps: {
26355            position: 'bottom right'
26356          },
26357          renderToggle: ({
26358            isOpen,
26359            onToggle
26360          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
26361            onClick: onToggle,
26362            "aria-haspopup": "true",
26363            "aria-expanded": isOpen,
26364            onKeyDown: event => {
26365              if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
26366                event.preventDefault();
26367                onToggle();
26368              }
26369            },
26370            children: (0,external_wp_i18n_namespaceObject._x)('Alternative text', 'Alternative text for an image. Block toolbar label, a low character count is preferred.')
26371          }),
26372          renderContent: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
26373            className: "wp-block-image__toolbar_content_textarea",
26374            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
26375            value: alt || '',
26376            onChange: updateAlt,
26377            disabled: lockAltControls,
26378            help: lockAltControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26379              children: lockAltControlsMessage
26380            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26381              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
26382                href:
26383                // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
26384                (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
26385                children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
26386              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
26387            }),
26388            __nextHasNoMarginBottom: true
26389          })
26390        }), title && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
26391          popoverProps: {
26392            position: 'bottom right'
26393          },
26394          renderToggle: ({
26395            isOpen,
26396            onToggle
26397          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
26398            onClick: onToggle,
26399            "aria-haspopup": "true",
26400            "aria-expanded": isOpen,
26401            onKeyDown: event => {
26402              if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
26403                event.preventDefault();
26404                onToggle();
26405              }
26406            },
26407            children: (0,external_wp_i18n_namespaceObject.__)('Title')
26408          }),
26409          renderContent: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
26410            __next40pxDefaultSize: true,
26411            className: "wp-block-image__toolbar_content_textarea",
26412            __nextHasNoMarginBottom: true,
26413            label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
26414            value: title || '',
26415            onChange: onSetTitle,
26416            disabled: lockTitleControls,
26417            help: lockTitleControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26418              children: lockTitleControlsMessage
26419            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26420              children: [(0,external_wp_i18n_namespaceObject.__)('Describe the role of this image on the page.'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
26421                href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute",
26422                children: (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')
26423              })]
26424            })
26425          })
26426        })]
26427      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
26428        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
26429          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
26430          resetAll: resetAll,
26431          dropdownMenuProps: dropdownMenuProps,
26432          children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
26433            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
26434            isShownByDefault: true,
26435            hasValue: () => !!alt,
26436            onDeselect: () => setAttributes({
26437              alt: undefined
26438            }),
26439            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
26440              label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
26441              value: alt || '',
26442              onChange: updateAlt,
26443              readOnly: lockAltControls,
26444              help: lockAltControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26445                children: lockAltControlsMessage
26446              }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26447                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
26448                  href:
26449                  // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
26450                  (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
26451                  children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
26452                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
26453              }),
26454              __nextHasNoMarginBottom: true
26455            })
26456          }), isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl), !!imageSizeOptions.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResolutionTool, {
26457            value: sizeSlug,
26458            onChange: updateImage,
26459            options: imageSizeOptions
26460          })]
26461        })
26462      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
26463        group: "advanced",
26464        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
26465          __nextHasNoMarginBottom: true,
26466          __next40pxDefaultSize: true,
26467          label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
26468          value: title || '',
26469          onChange: onSetTitle,
26470          readOnly: lockTitleControls,
26471          help: lockTitleControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26472            children: lockTitleControlsMessage
26473          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26474            children: [(0,external_wp_i18n_namespaceObject.__)('Describe the role of this image on the page.'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
26475              href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute",
26476              children: (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')
26477            })]
26478          })
26479        })
26480      })]
26481    });
26482    const filename = (0,external_wp_url_namespaceObject.getFilename)(url);
26483    let defaultedAlt;
26484    if (alt) {
26485      defaultedAlt = alt;
26486    } else if (filename) {
26487      defaultedAlt = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: file name */
26488      (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute; its file name is %s'), filename);
26489    } else {
26490      defaultedAlt = (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute');
26491    }
26492    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
26493    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
26494    const isRounded = attributes.className?.includes('is-style-rounded');
26495    let img = temporaryURL && hasImageErrored ?
26496    /*#__PURE__*/
26497    // Show a placeholder during upload when the blob URL can't be loaded. This can
26498    // happen when the user uploads a HEIC image in a browser that doesn't support them.
26499    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
26500      className: "wp-block-image__placeholder",
26501      withIllustration: true,
26502      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
26503    }) :
26504    /*#__PURE__*/
26505    // Disable reason: Image itself is not meant to be interactive, but
26506    // should direct focus to block.
26507    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
26508    (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26509      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26510        src: temporaryURL || url,
26511        alt: defaultedAlt,
26512        onError: onImageError,
26513        onLoad: onImageLoad,
26514        ref: imageRef,
26515        className: borderProps.className,
26516        style: {
26517          width: width && height || aspectRatio ? '100%' : undefined,
26518          height: width && height || aspectRatio ? '100%' : undefined,
26519          objectFit: scale,
26520          ...borderProps.style,
26521          ...shadowProps.style
26522        }
26523      }), temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
26524    })
26525    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
26526    if (canEditImage && isEditingImage) {
26527      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
26528        href: href,
26529        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
26530          id: id,
26531          url: url,
26532          width: numericWidth,
26533          height: numericHeight,
26534          naturalHeight: naturalHeight,
26535          naturalWidth: naturalWidth,
26536          onSaveImage: imageAttributes => setAttributes(imageAttributes),
26537          onFinishEditing: () => {
26538            setIsEditingImage(false);
26539          },
26540          borderProps: isRounded ? undefined : borderProps
26541        })
26542      });
26543    } else if (!isResizable || parentLayoutType === 'grid') {
26544      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
26545        style: {
26546          width,
26547          height,
26548          aspectRatio
26549        },
26550        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
26551          href: href,
26552          children: img
26553        })
26554      });
26555    } else {
26556      const numericRatio = aspectRatio && evalAspectRatio(aspectRatio);
26557      const customRatio = numericWidth / numericHeight;
26558      const naturalRatio = naturalWidth / naturalHeight;
26559      const ratio = numericRatio || customRatio || naturalRatio || 1;
26560      const currentWidth = !numericWidth && numericHeight ? numericHeight * ratio : numericWidth;
26561      const currentHeight = !numericHeight && numericWidth ? numericWidth / ratio : numericHeight;
26562      const minWidth = naturalWidth < naturalHeight ? constants_MIN_SIZE : constants_MIN_SIZE * ratio;
26563      const minHeight = naturalHeight < naturalWidth ? constants_MIN_SIZE : constants_MIN_SIZE / ratio;
26564  
26565      // With the current implementation of ResizableBox, an image needs an
26566      // explicit pixel value for the max-width. In absence of being able to
26567      // set the content-width, this max-width is currently dictated by the
26568      // vanilla editor style. The following variable adds a buffer to this
26569      // vanilla style, so 3rd party themes have some wiggleroom. This does,
26570      // in most cases, allow you to scale the image beyond the width of the
26571      // main column, though not infinitely.
26572      // @todo It would be good to revisit this once a content-width variable
26573      // becomes available.
26574      const maxWidthBuffer = maxWidth * 2.5;
26575      const maxResizeWidth = maxContentWidth || maxWidthBuffer;
26576      let showRightHandle = false;
26577      let showLeftHandle = false;
26578  
26579      /* eslint-disable no-lonely-if */
26580      // See https://github.com/WordPress/gutenberg/issues/7584.
26581      if (align === 'center') {
26582        // When the image is centered, show both handles.
26583        showRightHandle = true;
26584        showLeftHandle = true;
26585      } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
26586        // In RTL mode the image is on the right by default.
26587        // Show the right handle and hide the left handle only when it is
26588        // aligned left. Otherwise always show the left handle.
26589        if (align === 'left') {
26590          showRightHandle = true;
26591        } else {
26592          showLeftHandle = true;
26593        }
26594      } else {
26595        // Show the left handle and hide the right handle only when the
26596        // image is aligned right. Otherwise always show the right handle.
26597        if (align === 'right') {
26598          showLeftHandle = true;
26599        } else {
26600          showRightHandle = true;
26601        }
26602      }
26603      /* eslint-enable no-lonely-if */
26604      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
26605        style: {
26606          display: 'block',
26607          objectFit: scale,
26608          aspectRatio: !width && !height && aspectRatio ? aspectRatio : undefined
26609        },
26610        size: {
26611          width: currentWidth !== null && currentWidth !== void 0 ? currentWidth : 'auto',
26612          height: currentHeight !== null && currentHeight !== void 0 ? currentHeight : 'auto'
26613        },
26614        showHandle: isSingleSelected,
26615        minWidth: minWidth,
26616        maxWidth: maxResizeWidth,
26617        minHeight: minHeight,
26618        maxHeight: maxResizeWidth / ratio,
26619        lockAspectRatio: ratio,
26620        enable: {
26621          top: false,
26622          right: showRightHandle,
26623          bottom: true,
26624          left: showLeftHandle
26625        },
26626        onResizeStart: onResizeStart,
26627        onResizeStop: (event, direction, elt) => {
26628          onResizeStop();
26629  
26630          // Clear hardcoded width if the resized width is close to the max-content width.
26631          if (maxContentWidth &&
26632          // Only do this if the image is bigger than the container to prevent it from being squished.
26633          // TODO: Remove this check if the image support setting 100% width.
26634          naturalWidth >= maxContentWidth && Math.abs(elt.offsetWidth - maxContentWidth) < 10) {
26635            setAttributes({
26636              width: undefined,
26637              height: undefined
26638            });
26639            return;
26640          }
26641  
26642          // Since the aspect ratio is locked when resizing, we can
26643          // use the width of the resized element to calculate the
26644          // height in CSS to prevent stretching when the max-width
26645          // is reached.
26646          setAttributes({
26647            width: `$elt.offsetWidth}px`,
26648            height: 'auto',
26649            aspectRatio: ratio === naturalRatio ? undefined : String(ratio)
26650          });
26651        },
26652        resizeRatio: align === 'center' ? 2 : 1,
26653        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
26654          href: href,
26655          children: img
26656        })
26657      });
26658    }
26659    if (!url && !temporaryURL) {
26660      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26661        children: [mediaReplaceFlow, metadata?.bindings ? controls : sizeControls]
26662      });
26663    }
26664    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26665      children: [mediaReplaceFlow, controls, img, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
26666        attributes: attributes,
26667        setAttributes: setAttributes,
26668        isSelected: isSingleSelected,
26669        insertBlocksAfter: insertBlocksAfter,
26670        label: (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
26671        showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
26672        readOnly: lockCaption
26673      })]
26674    });
26675  }
26676  
26677  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/use-max-width-observer.js
26678  /**
26679   * WordPress dependencies
26680   */
26681  
26682  
26683  
26684  function useMaxWidthObserver() {
26685    const [contentResizeListener, {
26686      width
26687    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
26688    const observerRef = (0,external_wp_element_namespaceObject.useRef)();
26689    const maxWidthObserver = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
26690      // Some themes set max-width on blocks.
26691      className: "wp-block",
26692      "aria-hidden": "true",
26693      style: {
26694        position: 'absolute',
26695        inset: 0,
26696        width: '100%',
26697        height: 0,
26698        margin: 0
26699      },
26700      ref: observerRef,
26701      children: contentResizeListener
26702    });
26703    return [maxWidthObserver, width];
26704  }
26705  
26706  
26707  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/edit.js
26708  /**
26709   * External dependencies
26710   */
26711  
26712  
26713  /**
26714   * WordPress dependencies
26715   */
26716  
26717  
26718  
26719  
26720  
26721  
26722  
26723  
26724  
26725  
26726  
26727  /**
26728   * Internal dependencies
26729   */
26730  
26731  
26732  
26733  
26734  
26735  /**
26736   * Module constants
26737   */
26738  
26739  
26740  
26741  
26742  const edit_pickRelevantMediaFiles = (image, size) => {
26743    const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link', 'caption'].includes(key)));
26744    imageProps.url = image?.sizes?.[size]?.url || image?.media_details?.sizes?.[size]?.source_url || image.url;
26745    return imageProps;
26746  };
26747  
26748  /**
26749   * Is the url for the image hosted externally. An externally hosted image has no
26750   * id and is not a blob url.
26751   *
26752   * @param {number=} id  The id of the image.
26753   * @param {string=} url The url of the image.
26754   *
26755   * @return {boolean} Is the url an externally hosted url?
26756   */
26757  const isExternalImage = (id, url) => url && !id && !(0,external_wp_blob_namespaceObject.isBlobURL)(url);
26758  
26759  /**
26760   * Checks if WP generated the specified image size. Size generation is skipped
26761   * when the image is smaller than the said size.
26762   *
26763   * @param {Object} image
26764   * @param {string} size
26765   *
26766   * @return {boolean} Whether or not it has default image size.
26767   */
26768  function hasSize(image, size) {
26769    var _image$sizes$size, _image$media_details$;
26770    return 'url' in ((_image$sizes$size = image?.sizes?.[size]) !== null && _image$sizes$size !== void 0 ? _image$sizes$size : {}) || 'source_url' in ((_image$media_details$ = image?.media_details?.sizes?.[size]) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : {});
26771  }
26772  function ImageEdit({
26773    attributes,
26774    setAttributes,
26775    isSelected: isSingleSelected,
26776    className,
26777    insertBlocksAfter,
26778    onReplace,
26779    context,
26780    clientId,
26781    __unstableParentLayout: parentLayout
26782  }) {
26783    const {
26784      url = '',
26785      alt,
26786      caption,
26787      id,
26788      width,
26789      height,
26790      sizeSlug,
26791      aspectRatio,
26792      scale,
26793      align,
26794      metadata
26795    } = attributes;
26796    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
26797    const containerRef = (0,external_wp_element_namespaceObject.useRef)();
26798    // Only observe the max width from the parent container when the parent layout is not flex nor grid.
26799    // This won't work for them because the container width changes with the image.
26800    // TODO: Find a way to observe the container width for flex and grid layouts.
26801    const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
26802    const [maxWidthObserver, maxContentWidth] = useMaxWidthObserver();
26803    const [placeholderResizeListener, {
26804      width: placeholderWidth
26805    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
26806    const isSmallContainer = placeholderWidth && placeholderWidth < 160;
26807    const altRef = (0,external_wp_element_namespaceObject.useRef)();
26808    (0,external_wp_element_namespaceObject.useEffect)(() => {
26809      altRef.current = alt;
26810    }, [alt]);
26811    const captionRef = (0,external_wp_element_namespaceObject.useRef)();
26812    (0,external_wp_element_namespaceObject.useEffect)(() => {
26813      captionRef.current = caption;
26814    }, [caption]);
26815    const {
26816      __unstableMarkNextChangeAsNotPersistent,
26817      replaceBlock
26818    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
26819    (0,external_wp_element_namespaceObject.useEffect)(() => {
26820      if (['wide', 'full'].includes(align)) {
26821        __unstableMarkNextChangeAsNotPersistent();
26822        setAttributes({
26823          width: undefined,
26824          height: undefined,
26825          aspectRatio: undefined,
26826          scale: undefined
26827        });
26828      }
26829    }, [__unstableMarkNextChangeAsNotPersistent, align, setAttributes]);
26830    const {
26831      getSettings,
26832      getBlockRootClientId,
26833      getBlockName,
26834      canInsertBlockType
26835    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
26836    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
26837    const {
26838      createErrorNotice
26839    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
26840    function onUploadError(message) {
26841      createErrorNotice(message, {
26842        type: 'snackbar'
26843      });
26844      setAttributes({
26845        src: undefined,
26846        id: undefined,
26847        url: undefined,
26848        blob: undefined
26849      });
26850    }
26851    function onSelectImagesList(images) {
26852      const win = containerRef.current?.ownerDocument.defaultView;
26853      if (images.every(file => file instanceof win.File)) {
26854        /** @type {File[]} */
26855        const files = images;
26856        const rootClientId = getBlockRootClientId(clientId);
26857        if (files.some(file => !isValidFileType(file))) {
26858          // Copied from the same notice in the gallery block.
26859          createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
26860            id: 'gallery-upload-invalid-file',
26861            type: 'snackbar'
26862          });
26863        }
26864        const imageBlocks = files.filter(file => isValidFileType(file)).map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
26865          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
26866        }));
26867        if (getBlockName(rootClientId) === 'core/gallery') {
26868          replaceBlock(clientId, imageBlocks);
26869        } else if (canInsertBlockType('core/gallery', rootClientId)) {
26870          const galleryBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, imageBlocks);
26871          replaceBlock(clientId, galleryBlock);
26872        }
26873      }
26874    }
26875    function onSelectImage(media) {
26876      if (Array.isArray(media)) {
26877        onSelectImagesList(media);
26878        return;
26879      }
26880      if (!media || !media.url) {
26881        setAttributes({
26882          url: undefined,
26883          alt: undefined,
26884          id: undefined,
26885          title: undefined,
26886          caption: undefined,
26887          blob: undefined
26888        });
26889        setTemporaryURL();
26890        return;
26891      }
26892      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
26893        setTemporaryURL(media.url);
26894        return;
26895      }
26896      const {
26897        imageDefaultSize
26898      } = getSettings();
26899  
26900      // Try to use the previous selected image size if its available
26901      // otherwise try the default image size or fallback to "full"
26902      let newSize = 'full';
26903      if (sizeSlug && hasSize(media, sizeSlug)) {
26904        newSize = sizeSlug;
26905      } else if (hasSize(media, imageDefaultSize)) {
26906        newSize = imageDefaultSize;
26907      }
26908      let mediaAttributes = edit_pickRelevantMediaFiles(media, newSize);
26909  
26910      // If a caption text was meanwhile written by the user,
26911      // make sure the text is not overwritten by empty captions.
26912      if (captionRef.current && !mediaAttributes.caption) {
26913        const {
26914          caption: omittedCaption,
26915          ...restMediaAttributes
26916        } = mediaAttributes;
26917        mediaAttributes = restMediaAttributes;
26918      }
26919      let additionalAttributes;
26920      // Reset the dimension attributes if changing to a different image.
26921      if (!media.id || media.id !== id) {
26922        additionalAttributes = {
26923          sizeSlug: newSize
26924        };
26925      } else {
26926        // Keep the same url when selecting the same file, so "Resolution"
26927        // option is not changed.
26928        additionalAttributes = {
26929          url
26930        };
26931      }
26932  
26933      // Check if default link setting should be used.
26934      let linkDestination = attributes.linkDestination;
26935      if (!linkDestination) {
26936        // Use the WordPress option to determine the proper default.
26937        // The constants used in Gutenberg do not match WP options so a little more complicated than ideal.
26938        // TODO: fix this in a follow up PR, requires updating media-text and ui component.
26939        switch (window?.wp?.media?.view?.settings?.defaultProps?.link || constants_LINK_DESTINATION_NONE) {
26940          case 'file':
26941          case constants_LINK_DESTINATION_MEDIA:
26942            linkDestination = constants_LINK_DESTINATION_MEDIA;
26943            break;
26944          case 'post':
26945          case constants_LINK_DESTINATION_ATTACHMENT:
26946            linkDestination = constants_LINK_DESTINATION_ATTACHMENT;
26947            break;
26948          case LINK_DESTINATION_CUSTOM:
26949            linkDestination = LINK_DESTINATION_CUSTOM;
26950            break;
26951          case constants_LINK_DESTINATION_NONE:
26952            linkDestination = constants_LINK_DESTINATION_NONE;
26953            break;
26954        }
26955      }
26956  
26957      // Check if the image is linked to it's media.
26958      let href;
26959      switch (linkDestination) {
26960        case constants_LINK_DESTINATION_MEDIA:
26961          href = media.url;
26962          break;
26963        case constants_LINK_DESTINATION_ATTACHMENT:
26964          href = media.link;
26965          break;
26966      }
26967      mediaAttributes.href = href;
26968      setAttributes({
26969        blob: undefined,
26970        ...mediaAttributes,
26971        ...additionalAttributes,
26972        linkDestination
26973      });
26974      setTemporaryURL();
26975    }
26976    function onSelectURL(newURL) {
26977      if (newURL !== url) {
26978        setAttributes({
26979          blob: undefined,
26980          url: newURL,
26981          id: undefined,
26982          sizeSlug: getSettings().imageDefaultSize
26983        });
26984        setTemporaryURL();
26985      }
26986    }
26987    useUploadMediaFromBlobURL({
26988      url: temporaryURL,
26989      allowedTypes: constants_ALLOWED_MEDIA_TYPES,
26990      onChange: onSelectImage,
26991      onError: onUploadError
26992    });
26993    const isExternal = isExternalImage(id, url);
26994    const src = isExternal ? url : undefined;
26995    const mediaPreview = !!url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26996      alt: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
26997      title: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
26998      className: "edit-image-preview",
26999      src: url
27000    });
27001    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
27002    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27003    const classes = dist_clsx(className, {
27004      'is-transient': !!temporaryURL,
27005      'is-resized': !!width || !!height,
27006      [`size-$sizeSlug}`]: sizeSlug,
27007      'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
27008    });
27009    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
27010      ref: containerRef,
27011      className: classes
27012    });
27013  
27014    // Much of this description is duplicated from MediaPlaceholder.
27015    const {
27016      lockUrlControls = false,
27017      lockUrlControlsMessage
27018    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27019      if (!isSingleSelected) {
27020        return {};
27021      }
27022      const blockBindingsSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(metadata?.bindings?.url?.source);
27023      return {
27024        lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue?.({
27025          select,
27026          context,
27027          args: metadata?.bindings?.url?.args
27028        }),
27029        lockUrlControlsMessage: blockBindingsSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Label of the bindings source. */
27030        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), blockBindingsSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data')
27031      };
27032    }, [context, isSingleSelected, metadata?.bindings?.url]);
27033    const placeholder = content => {
27034      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
27035        className: dist_clsx('block-editor-media-placeholder', {
27036          [borderProps.className]: !!borderProps.className && !isSingleSelected
27037        }),
27038        icon: !isSmallContainer && (lockUrlControls ? library_plugins : library_image),
27039        withIllustration: !isSingleSelected || isSmallContainer,
27040        label: !isSmallContainer && (0,external_wp_i18n_namespaceObject.__)('Image'),
27041        instructions: !lockUrlControls && !isSmallContainer && (0,external_wp_i18n_namespaceObject.__)('Upload or drag an image file here, or pick one from your library.'),
27042        style: {
27043          aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
27044          width: height && aspectRatio ? '100%' : width,
27045          height: width && aspectRatio ? '100%' : height,
27046          objectFit: scale,
27047          ...borderProps.style,
27048          ...shadowProps.style
27049        },
27050        children: [lockUrlControls && !isSmallContainer && lockUrlControlsMessage, !lockUrlControls && !isSmallContainer && content, placeholderResizeListener]
27051      });
27052    };
27053    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27054      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
27055        ...blockProps,
27056        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(image_Image, {
27057          temporaryURL: temporaryURL,
27058          attributes: attributes,
27059          setAttributes: setAttributes,
27060          isSingleSelected: isSingleSelected,
27061          insertBlocksAfter: insertBlocksAfter,
27062          onReplace: onReplace,
27063          onSelectImage: onSelectImage,
27064          onSelectURL: onSelectURL,
27065          onUploadError: onUploadError,
27066          context: context,
27067          clientId: clientId,
27068          blockEditingMode: blockEditingMode,
27069          parentLayoutType: parentLayout?.type,
27070          maxContentWidth: maxContentWidth
27071        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
27072          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
27073            icon: library_image
27074          }),
27075          onSelect: onSelectImage,
27076          onSelectURL: onSelectURL,
27077          onError: onUploadError,
27078          placeholder: placeholder,
27079          accept: "image/*",
27080          allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27081          handleUpload: files => files.length === 1,
27082          value: {
27083            id,
27084            src
27085          },
27086          mediaPreview: mediaPreview,
27087          disableMediaButtons: temporaryURL || url
27088        })]
27089      }),
27090      // The listener cannot be placed as the first element as it will break the in-between inserter.
27091      // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
27092      isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver]
27093    });
27094  }
27095  /* harmony default export */ const image_edit = (ImageEdit);
27096  
27097  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/save.js
27098  /**
27099   * External dependencies
27100   */
27101  
27102  
27103  /**
27104   * WordPress dependencies
27105   */
27106  
27107  
27108  
27109  
27110  function image_save_save({
27111    attributes
27112  }) {
27113    const {
27114      url,
27115      alt,
27116      caption,
27117      align,
27118      href,
27119      rel,
27120      linkClass,
27121      width,
27122      height,
27123      aspectRatio,
27124      scale,
27125      id,
27126      linkTarget,
27127      sizeSlug,
27128      title
27129    } = attributes;
27130    const newRel = !rel ? undefined : rel;
27131    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
27132    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27133    const classes = dist_clsx({
27134      // All other align classes are handled by block supports.
27135      // `{ align: 'none' }` is unique to transforms for the image block.
27136      alignnone: 'none' === align,
27137      [`size-$sizeSlug}`]: sizeSlug,
27138      'is-resized': width || height,
27139      'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
27140    });
27141    const imageClasses = dist_clsx(borderProps.className, {
27142      [`wp-image-$id}`]: !!id
27143    });
27144    const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27145      src: url,
27146      alt: alt,
27147      className: imageClasses || undefined,
27148      style: {
27149        ...borderProps.style,
27150        ...shadowProps.style,
27151        aspectRatio,
27152        objectFit: scale,
27153        width,
27154        height
27155      },
27156      title: title
27157    });
27158    const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27159      children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
27160        className: linkClass,
27161        href: href,
27162        target: linkTarget,
27163        rel: newRel,
27164        children: image
27165      }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
27166        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
27167        tagName: "figcaption",
27168        value: caption
27169      })]
27170    });
27171    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
27172      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
27173        className: classes
27174      }),
27175      children: figure
27176    });
27177  }
27178  
27179  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/transforms.js
27180  /**
27181   * WordPress dependencies
27182   */
27183  
27184  
27185  function stripFirstImage(attributes, {
27186    shortcode
27187  }) {
27188    const {
27189      body
27190    } = document.implementation.createHTMLDocument('');
27191    body.innerHTML = shortcode.content;
27192    let nodeToRemove = body.querySelector('img');
27193  
27194    // If an image has parents, find the topmost node to remove.
27195    while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) {
27196      nodeToRemove = nodeToRemove.parentNode;
27197    }
27198    if (nodeToRemove) {
27199      nodeToRemove.parentNode.removeChild(nodeToRemove);
27200    }
27201    return body.innerHTML.trim();
27202  }
27203  function getFirstAnchorAttributeFormHTML(html, attributeName) {
27204    const {
27205      body
27206    } = document.implementation.createHTMLDocument('');
27207    body.innerHTML = html;
27208    const {
27209      firstElementChild
27210    } = body;
27211    if (firstElementChild && firstElementChild.nodeName === 'A') {
27212      return firstElementChild.getAttribute(attributeName) || undefined;
27213    }
27214  }
27215  const imageSchema = {
27216    img: {
27217      attributes: ['src', 'alt', 'title'],
27218      classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\d+$/]
27219    }
27220  };
27221  const schema = ({
27222    phrasingContentSchema
27223  }) => ({
27224    figure: {
27225      require: ['img'],
27226      children: {
27227        ...imageSchema,
27228        a: {
27229          attributes: ['href', 'rel', 'target'],
27230          children: imageSchema
27231        },
27232        figcaption: {
27233          children: phrasingContentSchema
27234        }
27235      }
27236    }
27237  });
27238  const image_transforms_transforms = {
27239    from: [{
27240      type: 'raw',
27241      isMatch: node => node.nodeName === 'FIGURE' && !!node.querySelector('img'),
27242      schema,
27243      transform: node => {
27244        // Search both figure and image classes. Alignment could be
27245        // set on either. ID is set on the image.
27246        const className = node.className + ' ' + node.querySelector('img').className;
27247        const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec(className);
27248        const anchor = node.id === '' ? undefined : node.id;
27249        const align = alignMatches ? alignMatches[1] : undefined;
27250        const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec(className);
27251        const id = idMatches ? Number(idMatches[1]) : undefined;
27252        const anchorElement = node.querySelector('a');
27253        const linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;
27254        const href = anchorElement && anchorElement.href ? anchorElement.href : undefined;
27255        const rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined;
27256        const linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined;
27257        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/image', node.outerHTML, {
27258          align,
27259          id,
27260          linkDestination,
27261          href,
27262          rel,
27263          linkClass,
27264          anchor
27265        });
27266        if ((0,external_wp_blob_namespaceObject.isBlobURL)(attributes.url)) {
27267          attributes.blob = attributes.url;
27268          delete attributes.url;
27269        }
27270        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', attributes);
27271      }
27272    }, {
27273      // Note: when dragging and dropping multiple files onto a gallery this overrides the
27274      // gallery transform in order to add new images to the gallery instead of
27275      // creating a new gallery.
27276      type: 'files',
27277      isMatch(files) {
27278        return files.every(file => file.type.indexOf('image/') === 0);
27279      },
27280      transform(files) {
27281        const blocks = files.map(file => {
27282          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
27283            blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
27284          });
27285        });
27286        return blocks;
27287      }
27288    }, {
27289      type: 'shortcode',
27290      tag: 'caption',
27291      attributes: {
27292        url: {
27293          type: 'string',
27294          source: 'attribute',
27295          attribute: 'src',
27296          selector: 'img'
27297        },
27298        alt: {
27299          type: 'string',
27300          source: 'attribute',
27301          attribute: 'alt',
27302          selector: 'img'
27303        },
27304        caption: {
27305          shortcode: stripFirstImage
27306        },
27307        href: {
27308          shortcode: (attributes, {
27309            shortcode
27310          }) => {
27311            return getFirstAnchorAttributeFormHTML(shortcode.content, 'href');
27312          }
27313        },
27314        rel: {
27315          shortcode: (attributes, {
27316            shortcode
27317          }) => {
27318            return getFirstAnchorAttributeFormHTML(shortcode.content, 'rel');
27319          }
27320        },
27321        linkClass: {
27322          shortcode: (attributes, {
27323            shortcode
27324          }) => {
27325            return getFirstAnchorAttributeFormHTML(shortcode.content, 'class');
27326          }
27327        },
27328        id: {
27329          type: 'number',
27330          shortcode: ({
27331            named: {
27332              id
27333            }
27334          }) => {
27335            if (!id) {
27336              return;
27337            }
27338            return parseInt(id.replace('attachment_', ''), 10);
27339          }
27340        },
27341        align: {
27342          type: 'string',
27343          shortcode: ({
27344            named: {
27345              align = 'alignnone'
27346            }
27347          }) => {
27348            return align.replace('align', '');
27349          }
27350        }
27351      }
27352    }]
27353  };
27354  /* harmony default export */ const image_transforms = (image_transforms_transforms);
27355  
27356  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/index.js
27357  /**
27358   * WordPress dependencies
27359   */
27360  
27361  
27362  
27363  /**
27364   * Internal dependencies
27365   */
27366  
27367  
27368  
27369  const image_metadata = {
27370    $schema: "https://schemas.wp.org/trunk/block.json",
27371    apiVersion: 3,
27372    name: "core/image",
27373    title: "Image",
27374    category: "media",
27375    usesContext: ["allowResize", "imageCrop", "fixedHeight"],
27376    description: "Insert an image to make a visual statement.",
27377    keywords: ["img", "photo", "picture"],
27378    textdomain: "default",
27379    attributes: {
27380      blob: {
27381        type: "string",
27382        role: "local"
27383      },
27384      url: {
27385        type: "string",
27386        source: "attribute",
27387        selector: "img",
27388        attribute: "src",
27389        role: "content"
27390      },
27391      alt: {
27392        type: "string",
27393        source: "attribute",
27394        selector: "img",
27395        attribute: "alt",
27396        "default": "",
27397        role: "content"
27398      },
27399      caption: {
27400        type: "rich-text",
27401        source: "rich-text",
27402        selector: "figcaption",
27403        role: "content"
27404      },
27405      lightbox: {
27406        type: "object",
27407        enabled: {
27408          type: "boolean"
27409        }
27410      },
27411      title: {
27412        type: "string",
27413        source: "attribute",
27414        selector: "img",
27415        attribute: "title",
27416        role: "content"
27417      },
27418      href: {
27419        type: "string",
27420        source: "attribute",
27421        selector: "figure > a",
27422        attribute: "href",
27423        role: "content"
27424      },
27425      rel: {
27426        type: "string",
27427        source: "attribute",
27428        selector: "figure > a",
27429        attribute: "rel"
27430      },
27431      linkClass: {
27432        type: "string",
27433        source: "attribute",
27434        selector: "figure > a",
27435        attribute: "class"
27436      },
27437      id: {
27438        type: "number",
27439        role: "content"
27440      },
27441      width: {
27442        type: "string"
27443      },
27444      height: {
27445        type: "string"
27446      },
27447      aspectRatio: {
27448        type: "string"
27449      },
27450      scale: {
27451        type: "string"
27452      },
27453      sizeSlug: {
27454        type: "string"
27455      },
27456      linkDestination: {
27457        type: "string"
27458      },
27459      linkTarget: {
27460        type: "string",
27461        source: "attribute",
27462        selector: "figure > a",
27463        attribute: "target"
27464      }
27465    },
27466    supports: {
27467      interactivity: true,
27468      align: ["left", "center", "right", "wide", "full"],
27469      anchor: true,
27470      color: {
27471        text: false,
27472        background: false
27473      },
27474      filter: {
27475        duotone: true
27476      },
27477      spacing: {
27478        margin: true
27479      },
27480      __experimentalBorder: {
27481        color: true,
27482        radius: true,
27483        width: true,
27484        __experimentalSkipSerialization: true,
27485        __experimentalDefaultControls: {
27486          color: true,
27487          radius: true,
27488          width: true
27489        }
27490      },
27491      shadow: {
27492        __experimentalSkipSerialization: true
27493      }
27494    },
27495    selectors: {
27496      border: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
27497      shadow: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
27498      filter: {
27499        duotone: ".wp-block-image img, .wp-block-image .components-placeholder"
27500      }
27501    },
27502    styles: [{
27503      name: "default",
27504      label: "Default",
27505      isDefault: true
27506    }, {
27507      name: "rounded",
27508      label: "Rounded"
27509    }],
27510    editorStyle: "wp-block-image-editor",
27511    style: "wp-block-image"
27512  };
27513  
27514  
27515  const {
27516    name: image_name
27517  } = image_metadata;
27518  
27519  const image_settings = {
27520    icon: library_image,
27521    example: {
27522      attributes: {
27523        sizeSlug: 'large',
27524        url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',
27525        // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.
27526        caption: (0,external_wp_i18n_namespaceObject.__)('Mont Blanc appears—still, snowy, and serene.')
27527      }
27528    },
27529    __experimentalLabel(attributes, {
27530      context
27531    }) {
27532      const customName = attributes?.metadata?.name;
27533      if (context === 'list-view' && customName) {
27534        return customName;
27535      }
27536      if (context === 'accessibility') {
27537        const {
27538          caption,
27539          alt,
27540          url
27541        } = attributes;
27542        if (!url) {
27543          return (0,external_wp_i18n_namespaceObject.__)('Empty');
27544        }
27545        if (!alt) {
27546          return caption || '';
27547        }
27548  
27549        // This is intended to be read by a screen reader.
27550        // A period simply means a pause, no need to translate it.
27551        return alt + (caption ? '. ' + caption : '');
27552      }
27553    },
27554    getEditWrapperProps(attributes) {
27555      return {
27556        'data-align': attributes.align
27557      };
27558    },
27559    transforms: image_transforms,
27560    edit: image_edit,
27561    save: image_save_save,
27562    deprecated: image_deprecated
27563  };
27564  const image_init = () => initBlock({
27565    name: image_name,
27566    metadata: image_metadata,
27567    settings: image_settings
27568  });
27569  
27570  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment.js
27571  /**
27572   * WordPress dependencies
27573   */
27574  
27575  
27576  const comment = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
27577    viewBox: "0 0 24 24",
27578    xmlns: "http://www.w3.org/2000/svg",
27579    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
27580      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"
27581    })
27582  });
27583  /* harmony default export */ const library_comment = (comment);
27584  
27585  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js
27586  /**
27587   * WordPress dependencies
27588   */
27589  
27590  
27591  
27592  
27593  
27594  /**
27595   * Minimum number of comments a user can show using this block.
27596   *
27597   * @type {number}
27598   */
27599  
27600  
27601  const MIN_COMMENTS = 1;
27602  /**
27603   * Maximum number of comments a user can show using this block.
27604   *
27605   * @type {number}
27606   */
27607  const MAX_COMMENTS = 100;
27608  function LatestComments({
27609    attributes,
27610    setAttributes
27611  }) {
27612    const {
27613      commentsToShow,
27614      displayAvatar,
27615      displayDate,
27616      displayExcerpt
27617    } = attributes;
27618    const serverSideAttributes = {
27619      ...attributes,
27620      style: {
27621        ...attributes?.style,
27622        spacing: undefined
27623      }
27624    };
27625    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
27626      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
27627      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27628        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
27629          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
27630          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
27631            __nextHasNoMarginBottom: true,
27632            label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
27633            checked: displayAvatar,
27634            onChange: () => setAttributes({
27635              displayAvatar: !displayAvatar
27636            })
27637          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
27638            __nextHasNoMarginBottom: true,
27639            label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
27640            checked: displayDate,
27641            onChange: () => setAttributes({
27642              displayDate: !displayDate
27643            })
27644          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
27645            __nextHasNoMarginBottom: true,
27646            label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
27647            checked: displayExcerpt,
27648            onChange: () => setAttributes({
27649              displayExcerpt: !displayExcerpt
27650            })
27651          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
27652            __nextHasNoMarginBottom: true,
27653            __next40pxDefaultSize: true,
27654            label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
27655            value: commentsToShow,
27656            onChange: value => setAttributes({
27657              commentsToShow: value
27658            }),
27659            min: MIN_COMMENTS,
27660            max: MAX_COMMENTS,
27661            required: true
27662          })]
27663        })
27664      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
27665        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
27666          block: "core/latest-comments",
27667          attributes: serverSideAttributes
27668          // The preview uses the site's locale to make it more true to how
27669          // the block appears on the frontend. Setting the locale
27670          // explicitly prevents any middleware from setting it to 'user'.
27671          ,
27672          urlQueryArgs: {
27673            _locale: 'site'
27674          }
27675        })
27676      })]
27677    });
27678  }
27679  
27680  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
27681  /**
27682   * WordPress dependencies
27683   */
27684  
27685  
27686  /**
27687   * Internal dependencies
27688   */
27689  
27690  const latest_comments_metadata = {
27691    $schema: "https://schemas.wp.org/trunk/block.json",
27692    apiVersion: 3,
27693    name: "core/latest-comments",
27694    title: "Latest Comments",
27695    category: "widgets",
27696    description: "Display a list of your most recent comments.",
27697    keywords: ["recent comments"],
27698    textdomain: "default",
27699    attributes: {
27700      commentsToShow: {
27701        type: "number",
27702        "default": 5,
27703        minimum: 1,
27704        maximum: 100
27705      },
27706      displayAvatar: {
27707        type: "boolean",
27708        "default": true
27709      },
27710      displayDate: {
27711        type: "boolean",
27712        "default": true
27713      },
27714      displayExcerpt: {
27715        type: "boolean",
27716        "default": true
27717      }
27718    },
27719    supports: {
27720      align: true,
27721      color: {
27722        gradients: true,
27723        link: true,
27724        __experimentalDefaultControls: {
27725          background: true,
27726          text: true,
27727          link: true
27728        }
27729      },
27730      html: false,
27731      spacing: {
27732        margin: true,
27733        padding: true
27734      },
27735      typography: {
27736        fontSize: true,
27737        lineHeight: true,
27738        __experimentalFontFamily: true,
27739        __experimentalFontWeight: true,
27740        __experimentalFontStyle: true,
27741        __experimentalTextTransform: true,
27742        __experimentalTextDecoration: true,
27743        __experimentalLetterSpacing: true,
27744        __experimentalDefaultControls: {
27745          fontSize: true
27746        }
27747      },
27748      interactivity: {
27749        clientNavigation: true
27750      }
27751    },
27752    editorStyle: "wp-block-latest-comments-editor",
27753    style: "wp-block-latest-comments"
27754  };
27755  
27756  const {
27757    name: latest_comments_name
27758  } = latest_comments_metadata;
27759  
27760  const latest_comments_settings = {
27761    icon: library_comment,
27762    example: {},
27763    edit: LatestComments
27764  };
27765  const latest_comments_init = () => initBlock({
27766    name: latest_comments_name,
27767    metadata: latest_comments_metadata,
27768    settings: latest_comments_settings
27769  });
27770  
27771  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js
27772  /**
27773   * WordPress dependencies
27774   */
27775  
27776  
27777  const postList = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
27778    viewBox: "0 0 24 24",
27779    xmlns: "http://www.w3.org/2000/svg",
27780    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
27781      d: "M18 5.5H6a.5.5 0 0 0-.5.5v12a.5.5 0 0 0 .5.5h12a.5.5 0 0 0 .5-.5V6a.5.5 0 0 0-.5-.5ZM6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Zm1 5h1.5v1.5H7V9Zm1.5 4.5H7V15h1.5v-1.5ZM10 9h7v1.5h-7V9Zm7 4.5h-7V15h7v-1.5Z"
27782    })
27783  });
27784  /* harmony default export */ const post_list = (postList);
27785  
27786  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js
27787  /**
27788   * Internal dependencies
27789   */
27790  const latest_posts_deprecated_metadata = {
27791    $schema: "https://schemas.wp.org/trunk/block.json",
27792    apiVersion: 3,
27793    name: "core/latest-posts",
27794    title: "Latest Posts",
27795    category: "widgets",
27796    description: "Display a list of your most recent posts.",
27797    keywords: ["recent posts"],
27798    textdomain: "default",
27799    attributes: {
27800      categories: {
27801        type: "array",
27802        items: {
27803          type: "object"
27804        }
27805      },
27806      selectedAuthor: {
27807        type: "number"
27808      },
27809      postsToShow: {
27810        type: "number",
27811        "default": 5
27812      },
27813      displayPostContent: {
27814        type: "boolean",
27815        "default": false
27816      },
27817      displayPostContentRadio: {
27818        type: "string",
27819        "default": "excerpt"
27820      },
27821      excerptLength: {
27822        type: "number",
27823        "default": 55
27824      },
27825      displayAuthor: {
27826        type: "boolean",
27827        "default": false
27828      },
27829      displayPostDate: {
27830        type: "boolean",
27831        "default": false
27832      },
27833      postLayout: {
27834        type: "string",
27835        "default": "list"
27836      },
27837      columns: {
27838        type: "number",
27839        "default": 3
27840      },
27841      order: {
27842        type: "string",
27843        "default": "desc"
27844      },
27845      orderBy: {
27846        type: "string",
27847        "default": "date"
27848      },
27849      displayFeaturedImage: {
27850        type: "boolean",
27851        "default": false
27852      },
27853      featuredImageAlign: {
27854        type: "string",
27855        "enum": ["left", "center", "right"]
27856      },
27857      featuredImageSizeSlug: {
27858        type: "string",
27859        "default": "thumbnail"
27860      },
27861      featuredImageSizeWidth: {
27862        type: "number",
27863        "default": null
27864      },
27865      featuredImageSizeHeight: {
27866        type: "number",
27867        "default": null
27868      },
27869      addLinkToFeaturedImage: {
27870        type: "boolean",
27871        "default": false
27872      }
27873    },
27874    supports: {
27875      align: true,
27876      html: false,
27877      color: {
27878        gradients: true,
27879        link: true,
27880        __experimentalDefaultControls: {
27881          background: true,
27882          text: true,
27883          link: true
27884        }
27885      },
27886      spacing: {
27887        margin: true,
27888        padding: true
27889      },
27890      typography: {
27891        fontSize: true,
27892        lineHeight: true,
27893        __experimentalFontFamily: true,
27894        __experimentalFontWeight: true,
27895        __experimentalFontStyle: true,
27896        __experimentalTextTransform: true,
27897        __experimentalTextDecoration: true,
27898        __experimentalLetterSpacing: true,
27899        __experimentalDefaultControls: {
27900          fontSize: true
27901        }
27902      },
27903      interactivity: {
27904        clientNavigation: true
27905      }
27906    },
27907    editorStyle: "wp-block-latest-posts-editor",
27908    style: "wp-block-latest-posts"
27909  };
27910  const {
27911    attributes: deprecated_attributes
27912  } = latest_posts_deprecated_metadata;
27913  /* harmony default export */ const latest_posts_deprecated = ([{
27914    attributes: {
27915      ...deprecated_attributes,
27916      categories: {
27917        type: 'string'
27918      }
27919    },
27920    supports: {
27921      align: true,
27922      html: false
27923    },
27924    migrate: oldAttributes => {
27925      // This needs the full category object, not just the ID.
27926      return {
27927        ...oldAttributes,
27928        categories: [{
27929          id: Number(oldAttributes.categories)
27930        }]
27931      };
27932    },
27933    isEligible: ({
27934      categories
27935    }) => categories && 'string' === typeof categories,
27936    save: () => null
27937  }]);
27938  
27939  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-none.js
27940  /**
27941   * WordPress dependencies
27942   */
27943  
27944  
27945  const alignNone = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
27946    xmlns: "http://www.w3.org/2000/svg",
27947    viewBox: "0 0 24 24",
27948    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
27949      d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z"
27950    })
27951  });
27952  /* harmony default export */ const align_none = (alignNone);
27953  
27954  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-left.js
27955  /**
27956   * WordPress dependencies
27957   */
27958  
27959  
27960  const positionLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
27961    xmlns: "http://www.w3.org/2000/svg",
27962    viewBox: "0 0 24 24",
27963    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
27964      d: "M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z"
27965    })
27966  });
27967  /* harmony default export */ const position_left = (positionLeft);
27968  
27969  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-center.js
27970  /**
27971   * WordPress dependencies
27972   */
27973  
27974  
27975  const positionCenter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
27976    xmlns: "http://www.w3.org/2000/svg",
27977    viewBox: "0 0 24 24",
27978    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
27979      d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z"
27980    })
27981  });
27982  /* harmony default export */ const position_center = (positionCenter);
27983  
27984  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-right.js
27985  /**
27986   * WordPress dependencies
27987   */
27988  
27989  
27990  const positionRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
27991    xmlns: "http://www.w3.org/2000/svg",
27992    viewBox: "0 0 24 24",
27993    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
27994      d: "M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z"
27995    })
27996  });
27997  /* harmony default export */ const position_right = (positionRight);
27998  
27999  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list.js
28000  /**
28001   * WordPress dependencies
28002   */
28003  
28004  
28005  const list = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28006    viewBox: "0 0 24 24",
28007    xmlns: "http://www.w3.org/2000/svg",
28008    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28009      d: "M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z"
28010    })
28011  });
28012  /* harmony default export */ const library_list = (list);
28013  
28014  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js
28015  const MIN_EXCERPT_LENGTH = 10;
28016  const MAX_EXCERPT_LENGTH = 100;
28017  const MAX_POSTS_COLUMNS = 6;
28018  
28019  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js
28020  /**
28021   * External dependencies
28022   */
28023  
28024  
28025  /**
28026   * WordPress dependencies
28027   */
28028  
28029  
28030  
28031  
28032  
28033  
28034  
28035  
28036  
28037  
28038  
28039  /**
28040   * Internal dependencies
28041   */
28042  
28043  
28044  /**
28045   * Module Constants
28046   */
28047  
28048  
28049  
28050  const CATEGORIES_LIST_QUERY = {
28051    per_page: -1,
28052    context: 'view'
28053  };
28054  const USERS_LIST_QUERY = {
28055    per_page: -1,
28056    has_published_posts: ['post'],
28057    context: 'view'
28058  };
28059  function getFeaturedImageDetails(post, size) {
28060    var _image$media_details$;
28061    const image = post._embedded?.['wp:featuredmedia']?.['0'];
28062    return {
28063      url: (_image$media_details$ = image?.media_details?.sizes?.[size]?.source_url) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : image?.source_url,
28064      alt: image?.alt_text
28065    };
28066  }
28067  function LatestPostsEdit({
28068    attributes,
28069    setAttributes
28070  }) {
28071    var _categoriesList$reduc;
28072    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(LatestPostsEdit);
28073    const {
28074      postsToShow,
28075      order,
28076      orderBy,
28077      categories,
28078      selectedAuthor,
28079      displayFeaturedImage,
28080      displayPostContentRadio,
28081      displayPostContent,
28082      displayPostDate,
28083      displayAuthor,
28084      postLayout,
28085      columns,
28086      excerptLength,
28087      featuredImageAlign,
28088      featuredImageSizeSlug,
28089      featuredImageSizeWidth,
28090      featuredImageSizeHeight,
28091      addLinkToFeaturedImage
28092    } = attributes;
28093    const {
28094      imageSizes,
28095      latestPosts,
28096      defaultImageWidth,
28097      defaultImageHeight,
28098      categoriesList,
28099      authorList
28100    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
28101      var _settings$imageDimens, _settings$imageDimens2;
28102      const {
28103        getEntityRecords,
28104        getUsers
28105      } = select(external_wp_coreData_namespaceObject.store);
28106      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
28107      const catIds = categories && categories.length > 0 ? categories.map(cat => cat.id) : [];
28108      const latestPostsQuery = Object.fromEntries(Object.entries({
28109        categories: catIds,
28110        author: selectedAuthor,
28111        order,
28112        orderby: orderBy,
28113        per_page: postsToShow,
28114        _embed: 'wp:featuredmedia'
28115      }).filter(([, value]) => typeof value !== 'undefined'));
28116      return {
28117        defaultImageWidth: (_settings$imageDimens = settings.imageDimensions?.[featuredImageSizeSlug]?.width) !== null && _settings$imageDimens !== void 0 ? _settings$imageDimens : 0,
28118        defaultImageHeight: (_settings$imageDimens2 = settings.imageDimensions?.[featuredImageSizeSlug]?.height) !== null && _settings$imageDimens2 !== void 0 ? _settings$imageDimens2 : 0,
28119        imageSizes: settings.imageSizes,
28120        latestPosts: getEntityRecords('postType', 'post', latestPostsQuery),
28121        categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY),
28122        authorList: getUsers(USERS_LIST_QUERY)
28123      };
28124    }, [featuredImageSizeSlug, postsToShow, order, orderBy, categories, selectedAuthor]);
28125  
28126    // If a user clicks to a link prevent redirection and show a warning.
28127    const {
28128      createWarningNotice,
28129      removeNotice
28130    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
28131    let noticeId;
28132    const showRedirectionPreventedNotice = event => {
28133      event.preventDefault();
28134      // Remove previous warning if any, to show one at a time per block.
28135      removeNotice(noticeId);
28136      noticeId = `block-library/core/latest-posts/redirection-prevented/$instanceId}`;
28137      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('Links are disabled in the editor.'), {
28138        id: noticeId,
28139        type: 'snackbar'
28140      });
28141    };
28142    const imageSizeOptions = imageSizes.filter(({
28143      slug
28144    }) => slug !== 'full').map(({
28145      name,
28146      slug
28147    }) => ({
28148      value: slug,
28149      label: name
28150    }));
28151    const categorySuggestions = (_categoriesList$reduc = categoriesList?.reduce((accumulator, category) => ({
28152      ...accumulator,
28153      [category.name]: category
28154    }), {})) !== null && _categoriesList$reduc !== void 0 ? _categoriesList$reduc : {};
28155    const selectCategories = tokens => {
28156      const hasNoSuggestion = tokens.some(token => typeof token === 'string' && !categorySuggestions[token]);
28157      if (hasNoSuggestion) {
28158        return;
28159      }
28160      // Categories that are already will be objects, while new additions will be strings (the name).
28161      // allCategories nomalizes the array so that they are all objects.
28162      const allCategories = tokens.map(token => {
28163        return typeof token === 'string' ? categorySuggestions[token] : token;
28164      });
28165      // We do nothing if the category is not selected
28166      // from suggestions.
28167      if (allCategories.includes(null)) {
28168        return false;
28169      }
28170      setAttributes({
28171        categories: allCategories
28172      });
28173    };
28174    const imageAlignmentOptions = [{
28175      value: 'none',
28176      icon: align_none,
28177      label: (0,external_wp_i18n_namespaceObject.__)('None')
28178    }, {
28179      value: 'left',
28180      icon: position_left,
28181      label: (0,external_wp_i18n_namespaceObject.__)('Left')
28182    }, {
28183      value: 'center',
28184      icon: position_center,
28185      label: (0,external_wp_i18n_namespaceObject.__)('Center')
28186    }, {
28187      value: 'right',
28188      icon: position_right,
28189      label: (0,external_wp_i18n_namespaceObject.__)('Right')
28190    }];
28191    const hasPosts = !!latestPosts?.length;
28192    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
28193      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
28194        title: (0,external_wp_i18n_namespaceObject.__)('Post content'),
28195        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28196          __nextHasNoMarginBottom: true,
28197          label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
28198          checked: displayPostContent,
28199          onChange: value => setAttributes({
28200            displayPostContent: value
28201          })
28202        }), displayPostContent && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
28203          label: (0,external_wp_i18n_namespaceObject.__)('Show'),
28204          selected: displayPostContentRadio,
28205          options: [{
28206            label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
28207            value: 'excerpt'
28208          }, {
28209            label: (0,external_wp_i18n_namespaceObject.__)('Full post'),
28210            value: 'full_post'
28211          }],
28212          onChange: value => setAttributes({
28213            displayPostContentRadio: value
28214          })
28215        }), displayPostContent && displayPostContentRadio === 'excerpt' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
28216          __nextHasNoMarginBottom: true,
28217          __next40pxDefaultSize: true,
28218          label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
28219          value: excerptLength,
28220          onChange: value => setAttributes({
28221            excerptLength: value
28222          }),
28223          min: MIN_EXCERPT_LENGTH,
28224          max: MAX_EXCERPT_LENGTH
28225        })]
28226      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
28227        title: (0,external_wp_i18n_namespaceObject.__)('Post meta'),
28228        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28229          __nextHasNoMarginBottom: true,
28230          label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
28231          checked: displayAuthor,
28232          onChange: value => setAttributes({
28233            displayAuthor: value
28234          })
28235        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28236          __nextHasNoMarginBottom: true,
28237          label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
28238          checked: displayPostDate,
28239          onChange: value => setAttributes({
28240            displayPostDate: value
28241          })
28242        })]
28243      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
28244        title: (0,external_wp_i18n_namespaceObject.__)('Featured image'),
28245        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28246          __nextHasNoMarginBottom: true,
28247          label: (0,external_wp_i18n_namespaceObject.__)('Display featured image'),
28248          checked: displayFeaturedImage,
28249          onChange: value => setAttributes({
28250            displayFeaturedImage: value
28251          })
28252        }), displayFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
28253          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
28254            onChange: value => {
28255              const newAttrs = {};
28256              if (value.hasOwnProperty('width')) {
28257                newAttrs.featuredImageSizeWidth = value.width;
28258              }
28259              if (value.hasOwnProperty('height')) {
28260                newAttrs.featuredImageSizeHeight = value.height;
28261              }
28262              setAttributes(newAttrs);
28263            },
28264            slug: featuredImageSizeSlug,
28265            width: featuredImageSizeWidth,
28266            height: featuredImageSizeHeight,
28267            imageWidth: defaultImageWidth,
28268            imageHeight: defaultImageHeight,
28269            imageSizeOptions: imageSizeOptions,
28270            imageSizeHelp: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.'),
28271            onChangeImage: value => setAttributes({
28272              featuredImageSizeSlug: value,
28273              featuredImageSizeWidth: undefined,
28274              featuredImageSizeHeight: undefined
28275            })
28276          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
28277            className: "editor-latest-posts-image-alignment-control",
28278            __nextHasNoMarginBottom: true,
28279            __next40pxDefaultSize: true,
28280            label: (0,external_wp_i18n_namespaceObject.__)('Image alignment'),
28281            value: featuredImageAlign || 'none',
28282            onChange: value => setAttributes({
28283              featuredImageAlign: value !== 'none' ? value : undefined
28284            }),
28285            children: imageAlignmentOptions.map(({
28286              value,
28287              icon,
28288              label
28289            }) => {
28290              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, {
28291                value: value,
28292                icon: icon,
28293                label: label
28294              }, value);
28295            })
28296          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28297            __nextHasNoMarginBottom: true,
28298            label: (0,external_wp_i18n_namespaceObject.__)('Add link to featured image'),
28299            checked: addLinkToFeaturedImage,
28300            onChange: value => setAttributes({
28301              addLinkToFeaturedImage: value
28302            })
28303          })]
28304        })]
28305      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
28306        title: (0,external_wp_i18n_namespaceObject.__)('Sorting and filtering'),
28307        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.QueryControls, {
28308          order,
28309          orderBy,
28310          numberOfItems: postsToShow,
28311          onOrderChange: value => setAttributes({
28312            order: value
28313          }),
28314          onOrderByChange: value => setAttributes({
28315            orderBy: value
28316          }),
28317          onNumberOfItemsChange: value => setAttributes({
28318            postsToShow: value
28319          }),
28320          categorySuggestions: categorySuggestions,
28321          onCategoryChange: selectCategories,
28322          selectedCategories: categories,
28323          onAuthorChange: value => setAttributes({
28324            selectedAuthor: '' !== value ? Number(value) : undefined
28325          }),
28326          authorList: authorList !== null && authorList !== void 0 ? authorList : [],
28327          selectedAuthorId: selectedAuthor
28328        }), postLayout === 'grid' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
28329          __nextHasNoMarginBottom: true,
28330          __next40pxDefaultSize: true,
28331          label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
28332          value: columns,
28333          onChange: value => setAttributes({
28334            columns: value
28335          }),
28336          min: 2,
28337          max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length),
28338          required: true
28339        })]
28340      })]
28341    });
28342    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
28343      className: dist_clsx({
28344        'wp-block-latest-posts__list': true,
28345        'is-grid': postLayout === 'grid',
28346        'has-dates': displayPostDate,
28347        'has-author': displayAuthor,
28348        [`columns-$columns}`]: postLayout === 'grid'
28349      })
28350    });
28351    if (!hasPosts) {
28352      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
28353        ...blockProps,
28354        children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
28355          icon: library_pin,
28356          label: (0,external_wp_i18n_namespaceObject.__)('Latest Posts'),
28357          children: !Array.isArray(latestPosts) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : (0,external_wp_i18n_namespaceObject.__)('No posts found.')
28358        })]
28359      });
28360    }
28361  
28362    // Removing posts from display should be instant.
28363    const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;
28364    const layoutControls = [{
28365      icon: library_list,
28366      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'Latest posts block display setting'),
28367      onClick: () => setAttributes({
28368        postLayout: 'list'
28369      }),
28370      isActive: postLayout === 'list'
28371    }, {
28372      icon: library_grid,
28373      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'Latest posts block display setting'),
28374      onClick: () => setAttributes({
28375        postLayout: 'grid'
28376      }),
28377      isActive: postLayout === 'grid'
28378    }];
28379    const dateFormat = (0,external_wp_date_namespaceObject.getSettings)().formats.date;
28380    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
28381      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
28382        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
28383          controls: layoutControls
28384        })
28385      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
28386        ...blockProps,
28387        children: displayPosts.map(post => {
28388          const titleTrimmed = post.title.rendered.trim();
28389          let excerpt = post.excerpt.rendered;
28390          const currentAuthor = authorList?.find(author => author.id === post.author);
28391          const excerptElement = document.createElement('div');
28392          excerptElement.innerHTML = excerpt;
28393          excerpt = excerptElement.textContent || excerptElement.innerText || '';
28394          const {
28395            url: imageSourceUrl,
28396            alt: featuredImageAlt
28397          } = getFeaturedImageDetails(post, featuredImageSizeSlug);
28398          const imageClasses = dist_clsx({
28399            'wp-block-latest-posts__featured-image': true,
28400            [`align$featuredImageAlign}`]: !!featuredImageAlign
28401          });
28402          const renderFeaturedImage = displayFeaturedImage && imageSourceUrl;
28403          const featuredImage = renderFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
28404            src: imageSourceUrl,
28405            alt: featuredImageAlt,
28406            style: {
28407              maxWidth: featuredImageSizeWidth,
28408              maxHeight: featuredImageSizeHeight
28409            }
28410          });
28411          const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
28412          const postExcerpt = needsReadMore ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
28413            children: [excerpt.trim().split(' ', excerptLength).join(' '), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Hidden accessibility text: Post title */
28414            (0,external_wp_i18n_namespaceObject.__)('… <a>Read more<span>: %1$s</span></a>'), titleTrimmed || (0,external_wp_i18n_namespaceObject.__)('(no title)')), {
28415              a:
28416              /*#__PURE__*/
28417              // eslint-disable-next-line jsx-a11y/anchor-has-content
28418              (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
28419                className: "wp-block-latest-posts__read-more",
28420                href: post.link,
28421                rel: "noopener noreferrer",
28422                onClick: showRedirectionPreventedNotice
28423              }),
28424              span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
28425                className: "screen-reader-text"
28426              })
28427            })]
28428          }) : excerpt;
28429          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
28430            children: [renderFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
28431              className: imageClasses,
28432              children: addLinkToFeaturedImage ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
28433                href: post.link,
28434                rel: "noreferrer noopener",
28435                onClick: showRedirectionPreventedNotice,
28436                children: featuredImage
28437              }) : featuredImage
28438            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
28439              className: "wp-block-latest-posts__post-title",
28440              href: post.link,
28441              rel: "noreferrer noopener",
28442              dangerouslySetInnerHTML: !!titleTrimmed ? {
28443                __html: titleTrimmed
28444              } : undefined,
28445              onClick: showRedirectionPreventedNotice,
28446              children: !titleTrimmed ? (0,external_wp_i18n_namespaceObject.__)('(no title)') : null
28447            }), displayAuthor && currentAuthor && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
28448              className: "wp-block-latest-posts__post-author",
28449              children: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: byline. %s: author. */
28450              (0,external_wp_i18n_namespaceObject.__)('by %s'), currentAuthor.name)
28451            }), displayPostDate && post.date_gmt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
28452              dateTime: (0,external_wp_date_namespaceObject.format)('c', post.date_gmt),
28453              className: "wp-block-latest-posts__post-date",
28454              children: (0,external_wp_date_namespaceObject.dateI18n)(dateFormat, post.date_gmt)
28455            }), displayPostContent && displayPostContentRadio === 'excerpt' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
28456              className: "wp-block-latest-posts__post-excerpt",
28457              children: postExcerpt
28458            }), displayPostContent && displayPostContentRadio === 'full_post' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
28459              className: "wp-block-latest-posts__post-full-content",
28460              dangerouslySetInnerHTML: {
28461                __html: post.content.raw.trim()
28462              }
28463            })]
28464          }, post.id);
28465        })
28466      })]
28467    });
28468  }
28469  
28470  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
28471  /**
28472   * WordPress dependencies
28473   */
28474  
28475  
28476  /**
28477   * Internal dependencies
28478   */
28479  
28480  
28481  
28482  const latest_posts_metadata = {
28483    $schema: "https://schemas.wp.org/trunk/block.json",
28484    apiVersion: 3,
28485    name: "core/latest-posts",
28486    title: "Latest Posts",
28487    category: "widgets",
28488    description: "Display a list of your most recent posts.",
28489    keywords: ["recent posts"],
28490    textdomain: "default",
28491    attributes: {
28492      categories: {
28493        type: "array",
28494        items: {
28495          type: "object"
28496        }
28497      },
28498      selectedAuthor: {
28499        type: "number"
28500      },
28501      postsToShow: {
28502        type: "number",
28503        "default": 5
28504      },
28505      displayPostContent: {
28506        type: "boolean",
28507        "default": false
28508      },
28509      displayPostContentRadio: {
28510        type: "string",
28511        "default": "excerpt"
28512      },
28513      excerptLength: {
28514        type: "number",
28515        "default": 55
28516      },
28517      displayAuthor: {
28518        type: "boolean",
28519        "default": false
28520      },
28521      displayPostDate: {
28522        type: "boolean",
28523        "default": false
28524      },
28525      postLayout: {
28526        type: "string",
28527        "default": "list"
28528      },
28529      columns: {
28530        type: "number",
28531        "default": 3
28532      },
28533      order: {
28534        type: "string",
28535        "default": "desc"
28536      },
28537      orderBy: {
28538        type: "string",
28539        "default": "date"
28540      },
28541      displayFeaturedImage: {
28542        type: "boolean",
28543        "default": false
28544      },
28545      featuredImageAlign: {
28546        type: "string",
28547        "enum": ["left", "center", "right"]
28548      },
28549      featuredImageSizeSlug: {
28550        type: "string",
28551        "default": "thumbnail"
28552      },
28553      featuredImageSizeWidth: {
28554        type: "number",
28555        "default": null
28556      },
28557      featuredImageSizeHeight: {
28558        type: "number",
28559        "default": null
28560      },
28561      addLinkToFeaturedImage: {
28562        type: "boolean",
28563        "default": false
28564      }
28565    },
28566    supports: {
28567      align: true,
28568      html: false,
28569      color: {
28570        gradients: true,
28571        link: true,
28572        __experimentalDefaultControls: {
28573          background: true,
28574          text: true,
28575          link: true
28576        }
28577      },
28578      spacing: {
28579        margin: true,
28580        padding: true
28581      },
28582      typography: {
28583        fontSize: true,
28584        lineHeight: true,
28585        __experimentalFontFamily: true,
28586        __experimentalFontWeight: true,
28587        __experimentalFontStyle: true,
28588        __experimentalTextTransform: true,
28589        __experimentalTextDecoration: true,
28590        __experimentalLetterSpacing: true,
28591        __experimentalDefaultControls: {
28592          fontSize: true
28593        }
28594      },
28595      interactivity: {
28596        clientNavigation: true
28597      }
28598    },
28599    editorStyle: "wp-block-latest-posts-editor",
28600    style: "wp-block-latest-posts"
28601  };
28602  const {
28603    name: latest_posts_name
28604  } = latest_posts_metadata;
28605  
28606  const latest_posts_settings = {
28607    icon: post_list,
28608    example: {},
28609    edit: LatestPostsEdit,
28610    deprecated: latest_posts_deprecated
28611  };
28612  const latest_posts_init = () => initBlock({
28613    name: latest_posts_name,
28614    metadata: latest_posts_metadata,
28615    settings: latest_posts_settings
28616  });
28617  
28618  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/utils.js
28619  /**
28620   * WordPress dependencies
28621   */
28622  
28623  const LIST_STYLES = {
28624    A: 'upper-alpha',
28625    a: 'lower-alpha',
28626    I: 'upper-roman',
28627    i: 'lower-roman'
28628  };
28629  function createListBlockFromDOMElement(listElement) {
28630    const type = listElement.getAttribute('type');
28631    const listAttributes = {
28632      ordered: 'OL' === listElement.tagName,
28633      anchor: listElement.id === '' ? undefined : listElement.id,
28634      start: listElement.getAttribute('start') ? parseInt(listElement.getAttribute('start'), 10) : undefined,
28635      reversed: listElement.hasAttribute('reversed') ? true : undefined,
28636      type: type && LIST_STYLES[type] ? LIST_STYLES[type] : undefined
28637    };
28638    const innerBlocks = Array.from(listElement.children).map(listItem => {
28639      const children = Array.from(listItem.childNodes).filter(node => node.nodeType !== node.TEXT_NODE || node.textContent.trim().length !== 0);
28640      children.reverse();
28641      const [nestedList, ...nodes] = children;
28642      const hasNestedList = nestedList?.tagName === 'UL' || nestedList?.tagName === 'OL';
28643      if (!hasNestedList) {
28644        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
28645          content: listItem.innerHTML
28646        });
28647      }
28648      const htmlNodes = nodes.map(node => {
28649        if (node.nodeType === node.TEXT_NODE) {
28650          return node.textContent;
28651        }
28652        return node.outerHTML;
28653      });
28654      htmlNodes.reverse();
28655      const childAttributes = {
28656        content: htmlNodes.join('').trim()
28657      };
28658      const childInnerBlocks = [createListBlockFromDOMElement(nestedList)];
28659      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', childAttributes, childInnerBlocks);
28660    });
28661    return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', listAttributes, innerBlocks);
28662  }
28663  function migrateToListV2(attributes) {
28664    const {
28665      values,
28666      start,
28667      reversed,
28668      ordered,
28669      type,
28670      ...otherAttributes
28671    } = attributes;
28672    const list = document.createElement(ordered ? 'ol' : 'ul');
28673    list.innerHTML = values;
28674    if (start) {
28675      list.setAttribute('start', start);
28676    }
28677    if (reversed) {
28678      list.setAttribute('reversed', true);
28679    }
28680    if (type) {
28681      list.setAttribute('type', type);
28682    }
28683    const [listBlock] = (0,external_wp_blocks_namespaceObject.rawHandler)({
28684      HTML: list.outerHTML
28685    });
28686    return [{
28687      ...otherAttributes,
28688      ...listBlock.attributes
28689    }, listBlock.innerBlocks];
28690  }
28691  function migrateTypeToInlineStyle(attributes) {
28692    const {
28693      type
28694    } = attributes;
28695    if (type && LIST_STYLES[type]) {
28696      return {
28697        ...attributes,
28698        type: LIST_STYLES[type]
28699      };
28700    }
28701    return attributes;
28702  }
28703  
28704  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/deprecated.js
28705  /**
28706   * WordPress dependencies
28707   */
28708  
28709  
28710  /**
28711   * Internal dependencies
28712   */
28713  
28714  
28715  
28716  const v0 = {
28717    attributes: {
28718      ordered: {
28719        type: 'boolean',
28720        default: false,
28721        role: 'content'
28722      },
28723      values: {
28724        type: 'string',
28725        source: 'html',
28726        selector: 'ol,ul',
28727        multiline: 'li',
28728        __unstableMultilineWrapperTags: ['ol', 'ul'],
28729        default: '',
28730        role: 'content'
28731      },
28732      type: {
28733        type: 'string'
28734      },
28735      start: {
28736        type: 'number'
28737      },
28738      reversed: {
28739        type: 'boolean'
28740      },
28741      placeholder: {
28742        type: 'string'
28743      }
28744    },
28745    supports: {
28746      anchor: true,
28747      className: false,
28748      typography: {
28749        fontSize: true,
28750        __experimentalFontFamily: true
28751      },
28752      color: {
28753        gradients: true,
28754        link: true
28755      },
28756      __unstablePasteTextInline: true,
28757      __experimentalSelector: 'ol,ul',
28758      __experimentalSlashInserter: true
28759    },
28760    save({
28761      attributes
28762    }) {
28763      const {
28764        ordered,
28765        values,
28766        type,
28767        reversed,
28768        start
28769      } = attributes;
28770      const TagName = ordered ? 'ol' : 'ul';
28771      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
28772        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
28773          type,
28774          reversed,
28775          start
28776        }),
28777        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
28778          value: values,
28779          multiline: "li"
28780        })
28781      });
28782    },
28783    migrate: migrate_font_family,
28784    isEligible({
28785      style
28786    }) {
28787      return style?.typography?.fontFamily;
28788    }
28789  };
28790  const list_deprecated_v1 = {
28791    attributes: {
28792      ordered: {
28793        type: 'boolean',
28794        default: false,
28795        role: 'content'
28796      },
28797      values: {
28798        type: 'string',
28799        source: 'html',
28800        selector: 'ol,ul',
28801        multiline: 'li',
28802        __unstableMultilineWrapperTags: ['ol', 'ul'],
28803        default: '',
28804        role: 'content'
28805      },
28806      type: {
28807        type: 'string'
28808      },
28809      start: {
28810        type: 'number'
28811      },
28812      reversed: {
28813        type: 'boolean'
28814      },
28815      placeholder: {
28816        type: 'string'
28817      }
28818    },
28819    supports: {
28820      anchor: true,
28821      className: false,
28822      typography: {
28823        fontSize: true,
28824        __experimentalFontFamily: true,
28825        lineHeight: true,
28826        __experimentalFontStyle: true,
28827        __experimentalFontWeight: true,
28828        __experimentalLetterSpacing: true,
28829        __experimentalTextTransform: true,
28830        __experimentalDefaultControls: {
28831          fontSize: true
28832        }
28833      },
28834      color: {
28835        gradients: true,
28836        link: true,
28837        __experimentalDefaultControls: {
28838          background: true,
28839          text: true
28840        }
28841      },
28842      __unstablePasteTextInline: true,
28843      __experimentalSelector: 'ol,ul',
28844      __experimentalSlashInserter: true
28845    },
28846    save({
28847      attributes
28848    }) {
28849      const {
28850        ordered,
28851        values,
28852        type,
28853        reversed,
28854        start
28855      } = attributes;
28856      const TagName = ordered ? 'ol' : 'ul';
28857      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
28858        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
28859          type,
28860          reversed,
28861          start
28862        }),
28863        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
28864          value: values,
28865          multiline: "li"
28866        })
28867      });
28868    },
28869    migrate: migrateToListV2
28870  };
28871  
28872  // In #53301 changed to use the inline style instead of type attribute.
28873  const list_deprecated_v2 = {
28874    attributes: {
28875      ordered: {
28876        type: 'boolean',
28877        default: false,
28878        role: 'content'
28879      },
28880      values: {
28881        type: 'string',
28882        source: 'html',
28883        selector: 'ol,ul',
28884        multiline: 'li',
28885        __unstableMultilineWrapperTags: ['ol', 'ul'],
28886        default: '',
28887        role: 'content'
28888      },
28889      type: {
28890        type: 'string'
28891      },
28892      start: {
28893        type: 'number'
28894      },
28895      reversed: {
28896        type: 'boolean'
28897      },
28898      placeholder: {
28899        type: 'string'
28900      }
28901    },
28902    supports: {
28903      anchor: true,
28904      className: false,
28905      typography: {
28906        fontSize: true,
28907        lineHeight: true,
28908        __experimentalFontFamily: true,
28909        __experimentalFontWeight: true,
28910        __experimentalFontStyle: true,
28911        __experimentalTextTransform: true,
28912        __experimentalTextDecoration: true,
28913        __experimentalLetterSpacing: true,
28914        __experimentalDefaultControls: {
28915          fontSize: true
28916        }
28917      },
28918      color: {
28919        gradients: true,
28920        link: true,
28921        __experimentalDefaultControls: {
28922          background: true,
28923          text: true
28924        }
28925      },
28926      spacing: {
28927        margin: true,
28928        padding: true,
28929        __experimentalDefaultControls: {
28930          margin: false,
28931          padding: false
28932        }
28933      },
28934      __unstablePasteTextInline: true,
28935      __experimentalSelector: 'ol,ul',
28936      __experimentalSlashInserter: true
28937    },
28938    isEligible({
28939      type
28940    }) {
28941      return !!type;
28942    },
28943    save({
28944      attributes
28945    }) {
28946      const {
28947        ordered,
28948        type,
28949        reversed,
28950        start
28951      } = attributes;
28952      const TagName = ordered ? 'ol' : 'ul';
28953      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
28954        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
28955          type,
28956          reversed,
28957          start
28958        }),
28959        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
28960      });
28961    },
28962    migrate: migrateTypeToInlineStyle
28963  };
28964  
28965  // Version without block support 'className: true'.
28966  const list_deprecated_v3 = {
28967    attributes: {
28968      ordered: {
28969        type: 'boolean',
28970        default: false,
28971        role: 'content'
28972      },
28973      values: {
28974        type: 'string',
28975        source: 'html',
28976        selector: 'ol,ul',
28977        multiline: 'li',
28978        __unstableMultilineWrapperTags: ['ol', 'ul'],
28979        default: '',
28980        role: 'content'
28981      },
28982      type: {
28983        type: 'string'
28984      },
28985      start: {
28986        type: 'number'
28987      },
28988      reversed: {
28989        type: 'boolean'
28990      },
28991      placeholder: {
28992        type: 'string'
28993      }
28994    },
28995    supports: {
28996      anchor: true,
28997      className: false,
28998      typography: {
28999        fontSize: true,
29000        lineHeight: true,
29001        __experimentalFontFamily: true,
29002        __experimentalFontWeight: true,
29003        __experimentalFontStyle: true,
29004        __experimentalTextTransform: true,
29005        __experimentalTextDecoration: true,
29006        __experimentalLetterSpacing: true,
29007        __experimentalDefaultControls: {
29008          fontSize: true
29009        }
29010      },
29011      color: {
29012        gradients: true,
29013        link: true,
29014        __experimentalDefaultControls: {
29015          background: true,
29016          text: true
29017        }
29018      },
29019      spacing: {
29020        margin: true,
29021        padding: true,
29022        __experimentalDefaultControls: {
29023          margin: false,
29024          padding: false
29025        }
29026      },
29027      __unstablePasteTextInline: true,
29028      __experimentalSelector: 'ol,ul',
29029      __experimentalOnMerge: 'true',
29030      __experimentalSlashInserter: true
29031    },
29032    save({
29033      attributes
29034    }) {
29035      const {
29036        ordered,
29037        type,
29038        reversed,
29039        start
29040      } = attributes;
29041      const TagName = ordered ? 'ol' : 'ul';
29042      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29043        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29044          reversed,
29045          start,
29046          style: {
29047            listStyleType: ordered && type !== 'decimal' ? type : undefined
29048          }
29049        }),
29050        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
29051      });
29052    }
29053  };
29054  
29055  /**
29056   * New deprecations need to be placed first
29057   * for them to have higher priority.
29058   *
29059   * Old deprecations may need to be updated as well.
29060   *
29061   * See block-deprecation.md
29062   */
29063  /* harmony default export */ const list_deprecated = ([list_deprecated_v3, list_deprecated_v2, list_deprecated_v1, v0]);
29064  
29065  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js
29066  /**
29067   * WordPress dependencies
29068   */
29069  
29070  
29071  const formatOutdentRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29072    xmlns: "http://www.w3.org/2000/svg",
29073    viewBox: "0 0 24 24",
29074    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29075      d: "M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM15.4697 14.9697L18.4393 12L15.4697 9.03033L16.5303 7.96967L20.0303 11.4697L20.5607 12L20.0303 12.5303L16.5303 16.0303L15.4697 14.9697Z"
29076    })
29077  });
29078  /* harmony default export */ const format_outdent_rtl = (formatOutdentRTL);
29079  
29080  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent.js
29081  /**
29082   * WordPress dependencies
29083   */
29084  
29085  
29086  const formatOutdent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29087    xmlns: "http://www.w3.org/2000/svg",
29088    viewBox: "0 0 24 24",
29089    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29090      d: "M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-4-4.6l-4 4 4 4 1-1-3-3 3-3-1-1z"
29091    })
29092  });
29093  /* harmony default export */ const format_outdent = (formatOutdent);
29094  
29095  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js
29096  /**
29097   * WordPress dependencies
29098   */
29099  
29100  
29101  const formatListBulletsRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29102    xmlns: "http://www.w3.org/2000/svg",
29103    viewBox: "0 0 24 24",
29104    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29105      d: "M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"
29106    })
29107  });
29108  /* harmony default export */ const format_list_bullets_rtl = (formatListBulletsRTL);
29109  
29110  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js
29111  /**
29112   * WordPress dependencies
29113   */
29114  
29115  
29116  const formatListBullets = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29117    xmlns: "http://www.w3.org/2000/svg",
29118    viewBox: "0 0 24 24",
29119    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29120      d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"
29121    })
29122  });
29123  /* harmony default export */ const format_list_bullets = (formatListBullets);
29124  
29125  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js
29126  /**
29127   * WordPress dependencies
29128   */
29129  
29130  
29131  const formatListNumberedRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29132    xmlns: "http://www.w3.org/2000/svg",
29133    viewBox: "0 0 24 24",
29134    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29135      d: "M3.8 15.8h8.9v-1.5H3.8v1.5zm0-7h8.9V7.2H3.8v1.6zm14.7-2.1V10h1V5.3l-2.2.7.3 1 .9-.3zm1.2 6.1c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5H20v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3 0-.8-.3-1.1z"
29136    })
29137  });
29138  /* harmony default export */ const format_list_numbered_rtl = (formatListNumberedRTL);
29139  
29140  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js
29141  /**
29142   * WordPress dependencies
29143   */
29144  
29145  
29146  const formatListNumbered = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29147    xmlns: "http://www.w3.org/2000/svg",
29148    viewBox: "0 0 24 24",
29149    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29150      d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM5 6.7V10h1V5.3L3.8 6l.4 1 .8-.3zm-.4 5.7c-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-1c.3-.6.8-1.4.9-2.1.1-.3 0-.8-.2-1.1-.5-.6-1.3-.5-1.7-.4z"
29151    })
29152  });
29153  /* harmony default export */ const format_list_numbered = (formatListNumbered);
29154  
29155  ;// CONCATENATED MODULE: external ["wp","deprecated"]
29156  const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
29157  var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
29158  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js
29159  /**
29160   * WordPress dependencies
29161   */
29162  
29163  
29164  
29165  
29166  
29167  const OrderedListSettings = ({
29168    setAttributes,
29169    reversed,
29170    start,
29171    type
29172  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
29173    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
29174      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
29175      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
29176        __next40pxDefaultSize: true,
29177        __nextHasNoMarginBottom: true,
29178        label: (0,external_wp_i18n_namespaceObject.__)('List style'),
29179        options: [{
29180          label: (0,external_wp_i18n_namespaceObject.__)('Numbers'),
29181          value: 'decimal'
29182        }, {
29183          label: (0,external_wp_i18n_namespaceObject.__)('Uppercase letters'),
29184          value: 'upper-alpha'
29185        }, {
29186          label: (0,external_wp_i18n_namespaceObject.__)('Lowercase letters'),
29187          value: 'lower-alpha'
29188        }, {
29189          label: (0,external_wp_i18n_namespaceObject.__)('Uppercase Roman numerals'),
29190          value: 'upper-roman'
29191        }, {
29192          label: (0,external_wp_i18n_namespaceObject.__)('Lowercase Roman numerals'),
29193          value: 'lower-roman'
29194        }],
29195        value: type,
29196        onChange: newValue => setAttributes({
29197          type: newValue
29198        })
29199      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
29200        __next40pxDefaultSize: true,
29201        __nextHasNoMarginBottom: true,
29202        label: (0,external_wp_i18n_namespaceObject.__)('Start value'),
29203        type: "number",
29204        onChange: value => {
29205          const int = parseInt(value, 10);
29206          setAttributes({
29207            // It should be possible to unset the value,
29208            // e.g. with an empty string.
29209            start: isNaN(int) ? undefined : int
29210          });
29211        },
29212        value: Number.isInteger(start) ? start.toString(10) : '',
29213        step: "1"
29214      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29215        __nextHasNoMarginBottom: true,
29216        label: (0,external_wp_i18n_namespaceObject.__)('Reverse order'),
29217        checked: reversed || false,
29218        onChange: value => {
29219          setAttributes({
29220            // Unset the attribute if not reversed.
29221            reversed: value || undefined
29222          });
29223        }
29224      })]
29225    })
29226  });
29227  /* harmony default export */ const ordered_list_settings = (OrderedListSettings);
29228  
29229  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/tag-name.js
29230  /**
29231   * WordPress dependencies
29232   */
29233  
29234  
29235  function TagName(props, ref) {
29236    const {
29237      ordered,
29238      ...extraProps
29239    } = props;
29240    const Tag = ordered ? 'ol' : 'ul';
29241    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
29242      ref: ref,
29243      ...extraProps
29244    });
29245  }
29246  /* harmony default export */ const tag_name = ((0,external_wp_element_namespaceObject.forwardRef)(TagName));
29247  
29248  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/edit.js
29249  /**
29250   * WordPress dependencies
29251   */
29252  
29253  
29254  
29255  
29256  
29257  
29258  
29259  
29260  
29261  /**
29262   * Internal dependencies
29263   */
29264  
29265  
29266  
29267  
29268  
29269  
29270  const list_edit_DEFAULT_BLOCK = {
29271    name: 'core/list-item'
29272  };
29273  const list_edit_TEMPLATE = [['core/list-item']];
29274  const NATIVE_MARGIN_SPACING = 8;
29275  
29276  /**
29277   * At the moment, deprecations don't handle create blocks from attributes
29278   * (like when using CPT templates). For this reason, this hook is necessary
29279   * to avoid breaking templates using the old list block format.
29280   *
29281   * @param {Object} attributes Block attributes.
29282   * @param {string} clientId   Block client ID.
29283   */
29284  function useMigrateOnLoad(attributes, clientId) {
29285    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
29286    const {
29287      updateBlockAttributes,
29288      replaceInnerBlocks
29289    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
29290    (0,external_wp_element_namespaceObject.useEffect)(() => {
29291      // As soon as the block is loaded, migrate it to the new version.
29292  
29293      if (!attributes.values) {
29294        return;
29295      }
29296      const [newAttributes, newInnerBlocks] = migrateToListV2(attributes);
29297      external_wp_deprecated_default()('Value attribute on the list block', {
29298        since: '6.0',
29299        version: '6.5',
29300        alternative: 'inner blocks'
29301      });
29302      registry.batch(() => {
29303        updateBlockAttributes(clientId, newAttributes);
29304        replaceInnerBlocks(clientId, newInnerBlocks);
29305      });
29306    }, [attributes.values]);
29307  }
29308  function useOutdentList(clientId) {
29309    const {
29310      replaceBlocks,
29311      selectionChange
29312    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
29313    const {
29314      getBlockRootClientId,
29315      getBlockAttributes,
29316      getBlock
29317    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
29318    return (0,external_wp_element_namespaceObject.useCallback)(() => {
29319      const parentBlockId = getBlockRootClientId(clientId);
29320      const parentBlockAttributes = getBlockAttributes(parentBlockId);
29321      // Create a new parent block without the inner blocks.
29322      const newParentBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', parentBlockAttributes);
29323      const {
29324        innerBlocks
29325      } = getBlock(clientId);
29326      // Replace the parent block with a new parent block without inner blocks,
29327      // and make the inner blocks siblings of the parent.
29328      replaceBlocks([parentBlockId], [newParentBlock, ...innerBlocks]);
29329      // Select the last child of the list being outdent.
29330      selectionChange(innerBlocks[innerBlocks.length - 1].clientId);
29331    }, [clientId]);
29332  }
29333  function IndentUI({
29334    clientId
29335  }) {
29336    const outdentList = useOutdentList(clientId);
29337    const canOutdent = (0,external_wp_data_namespaceObject.useSelect)(select => {
29338      const {
29339        getBlockRootClientId,
29340        getBlockName
29341      } = select(external_wp_blockEditor_namespaceObject.store);
29342      return getBlockName(getBlockRootClientId(clientId)) === 'core/list-item';
29343    }, [clientId]);
29344    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29345      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
29346        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
29347        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
29348        description: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
29349        disabled: !canOutdent,
29350        onClick: outdentList
29351      })
29352    });
29353  }
29354  function list_edit_Edit({
29355    attributes,
29356    setAttributes,
29357    clientId,
29358    style
29359  }) {
29360    const {
29361      ordered,
29362      type,
29363      reversed,
29364      start
29365    } = attributes;
29366    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
29367      style: {
29368        ...(external_wp_element_namespaceObject.Platform.isNative && style),
29369        listStyleType: ordered && type !== 'decimal' ? type : undefined
29370      }
29371    });
29372    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
29373      defaultBlock: list_edit_DEFAULT_BLOCK,
29374      directInsert: true,
29375      template: list_edit_TEMPLATE,
29376      templateLock: false,
29377      templateInsertUpdatesSelection: true,
29378      ...(external_wp_element_namespaceObject.Platform.isNative && {
29379        marginVertical: NATIVE_MARGIN_SPACING,
29380        marginHorizontal: NATIVE_MARGIN_SPACING,
29381        renderAppender: false
29382      }),
29383      __experimentalCaptureToolbars: true
29384    });
29385    useMigrateOnLoad(attributes, clientId);
29386    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
29387      group: "block",
29388      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
29389        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_bullets_rtl : format_list_bullets,
29390        title: (0,external_wp_i18n_namespaceObject.__)('Unordered'),
29391        description: (0,external_wp_i18n_namespaceObject.__)('Convert to unordered list'),
29392        isActive: ordered === false,
29393        onClick: () => {
29394          setAttributes({
29395            ordered: false
29396          });
29397        }
29398      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
29399        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_numbered_rtl : format_list_numbered,
29400        title: (0,external_wp_i18n_namespaceObject.__)('Ordered'),
29401        description: (0,external_wp_i18n_namespaceObject.__)('Convert to ordered list'),
29402        isActive: ordered === true,
29403        onClick: () => {
29404          setAttributes({
29405            ordered: true
29406          });
29407        }
29408      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(IndentUI, {
29409        clientId: clientId
29410      })]
29411    });
29412    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29413      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(tag_name, {
29414        ordered: ordered,
29415        reversed: reversed,
29416        start: start,
29417        ...innerBlocksProps
29418      }), controls, ordered && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ordered_list_settings, {
29419        setAttributes,
29420        reversed,
29421        start,
29422        type
29423      })]
29424    });
29425  }
29426  
29427  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/save.js
29428  /**
29429   * WordPress dependencies
29430   */
29431  
29432  
29433  function list_save_save({
29434    attributes
29435  }) {
29436    const {
29437      ordered,
29438      type,
29439      reversed,
29440      start
29441    } = attributes;
29442    const TagName = ordered ? 'ol' : 'ul';
29443    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29444      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29445        reversed,
29446        start,
29447        style: {
29448          listStyleType: ordered && type !== 'decimal' ? type : undefined
29449        }
29450      }),
29451      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
29452    });
29453  }
29454  
29455  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/transforms.js
29456  /**
29457   * WordPress dependencies
29458   */
29459  
29460  
29461  
29462  /**
29463   * Internal dependencies
29464   */
29465  
29466  function getListContentSchema({
29467    phrasingContentSchema
29468  }) {
29469    const listContentSchema = {
29470      ...phrasingContentSchema,
29471      ul: {},
29472      ol: {
29473        attributes: ['type', 'start', 'reversed']
29474      }
29475    };
29476  
29477    // Recursion is needed.
29478    // Possible: ul > li > ul.
29479    // Impossible: ul > ul.
29480    ['ul', 'ol'].forEach(tag => {
29481      listContentSchema[tag].children = {
29482        li: {
29483          children: listContentSchema
29484        }
29485      };
29486    });
29487    return listContentSchema;
29488  }
29489  function getListContentFlat(blocks) {
29490    return blocks.flatMap(({
29491      name,
29492      attributes,
29493      innerBlocks = []
29494    }) => {
29495      if (name === 'core/list-item') {
29496        return [attributes.content, ...getListContentFlat(innerBlocks)];
29497      }
29498      return getListContentFlat(innerBlocks);
29499    });
29500  }
29501  const list_transforms_transforms = {
29502    from: [{
29503      type: 'block',
29504      isMultiBlock: true,
29505      blocks: ['core/paragraph', 'core/heading'],
29506      transform: blockAttributes => {
29507        let childBlocks = [];
29508        if (blockAttributes.length > 1) {
29509          childBlocks = blockAttributes.map(({
29510            content
29511          }) => {
29512            return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
29513              content
29514            });
29515          });
29516        } else if (blockAttributes.length === 1) {
29517          const value = (0,external_wp_richText_namespaceObject.create)({
29518            html: blockAttributes[0].content
29519          });
29520          childBlocks = (0,external_wp_richText_namespaceObject.split)(value, '\n').map(result => {
29521            return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
29522              content: (0,external_wp_richText_namespaceObject.toHTMLString)({
29523                value: result
29524              })
29525            });
29526          });
29527        }
29528        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
29529          anchor: blockAttributes.anchor
29530        }, childBlocks);
29531      }
29532    }, {
29533      type: 'raw',
29534      selector: 'ol,ul',
29535      schema: args => ({
29536        ol: getListContentSchema(args).ol,
29537        ul: getListContentSchema(args).ul
29538      }),
29539      transform: createListBlockFromDOMElement
29540    }, ...['*', '-'].map(prefix => ({
29541      type: 'prefix',
29542      prefix,
29543      transform(content) {
29544        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
29545          content
29546        })]);
29547      }
29548    })), ...['1.', '1)'].map(prefix => ({
29549      type: 'prefix',
29550      prefix,
29551      transform(content) {
29552        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
29553          ordered: true
29554        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
29555          content
29556        })]);
29557      }
29558    }))],
29559    to: [...['core/paragraph', 'core/heading'].map(block => ({
29560      type: 'block',
29561      blocks: [block],
29562      transform: (_attributes, childBlocks) => {
29563        return getListContentFlat(childBlocks).map(content => (0,external_wp_blocks_namespaceObject.createBlock)(block, {
29564          content
29565        }));
29566      }
29567    }))]
29568  };
29569  /* harmony default export */ const list_transforms = (list_transforms_transforms);
29570  
29571  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/index.js
29572  /**
29573   * WordPress dependencies
29574   */
29575  
29576  
29577  
29578  /**
29579   * Internal dependencies
29580   */
29581  
29582  
29583  
29584  const list_metadata = {
29585    $schema: "https://schemas.wp.org/trunk/block.json",
29586    apiVersion: 3,
29587    name: "core/list",
29588    title: "List",
29589    category: "text",
29590    allowedBlocks: ["core/list-item"],
29591    description: "An organized collection of items displayed in a specific order.",
29592    keywords: ["bullet list", "ordered list", "numbered list"],
29593    textdomain: "default",
29594    attributes: {
29595      ordered: {
29596        type: "boolean",
29597        "default": false,
29598        role: "content"
29599      },
29600      values: {
29601        type: "string",
29602        source: "html",
29603        selector: "ol,ul",
29604        multiline: "li",
29605        __unstableMultilineWrapperTags: ["ol", "ul"],
29606        "default": "",
29607        role: "content"
29608      },
29609      type: {
29610        type: "string"
29611      },
29612      start: {
29613        type: "number"
29614      },
29615      reversed: {
29616        type: "boolean"
29617      },
29618      placeholder: {
29619        type: "string"
29620      }
29621    },
29622    supports: {
29623      anchor: true,
29624      html: false,
29625      __experimentalBorder: {
29626        color: true,
29627        radius: true,
29628        style: true,
29629        width: true
29630      },
29631      typography: {
29632        fontSize: true,
29633        lineHeight: true,
29634        __experimentalFontFamily: true,
29635        __experimentalFontWeight: true,
29636        __experimentalFontStyle: true,
29637        __experimentalTextTransform: true,
29638        __experimentalTextDecoration: true,
29639        __experimentalLetterSpacing: true,
29640        __experimentalDefaultControls: {
29641          fontSize: true
29642        }
29643      },
29644      color: {
29645        gradients: true,
29646        link: true,
29647        __experimentalDefaultControls: {
29648          background: true,
29649          text: true
29650        }
29651      },
29652      spacing: {
29653        margin: true,
29654        padding: true,
29655        __experimentalDefaultControls: {
29656          margin: false,
29657          padding: false
29658        }
29659      },
29660      __unstablePasteTextInline: true,
29661      __experimentalOnMerge: true,
29662      __experimentalSlashInserter: true,
29663      interactivity: {
29664        clientNavigation: true
29665      }
29666    },
29667    selectors: {
29668      border: ".wp-block-list:not(.wp-block-list .wp-block-list)"
29669    },
29670    editorStyle: "wp-block-list-editor",
29671    style: "wp-block-list"
29672  };
29673  
29674  
29675  const {
29676    name: list_name
29677  } = list_metadata;
29678  
29679  const list_settings = {
29680    icon: library_list,
29681    example: {
29682      innerBlocks: [{
29683        name: 'core/list-item',
29684        attributes: {
29685          content: (0,external_wp_i18n_namespaceObject.__)('Alice.')
29686        }
29687      }, {
29688        name: 'core/list-item',
29689        attributes: {
29690          content: (0,external_wp_i18n_namespaceObject.__)('The White Rabbit.')
29691        }
29692      }, {
29693        name: 'core/list-item',
29694        attributes: {
29695          content: (0,external_wp_i18n_namespaceObject.__)('The Cheshire Cat.')
29696        }
29697      }, {
29698        name: 'core/list-item',
29699        attributes: {
29700          content: (0,external_wp_i18n_namespaceObject.__)('The Mad Hatter.')
29701        }
29702      }, {
29703        name: 'core/list-item',
29704        attributes: {
29705          content: (0,external_wp_i18n_namespaceObject.__)('The Queen of Hearts.')
29706        }
29707      }]
29708    },
29709    transforms: list_transforms,
29710    edit: list_edit_Edit,
29711    save: list_save_save,
29712    deprecated: list_deprecated
29713  };
29714  
29715  const list_init = () => initBlock({
29716    name: list_name,
29717    metadata: list_metadata,
29718    settings: list_settings
29719  });
29720  
29721  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list-item.js
29722  /**
29723   * WordPress dependencies
29724   */
29725  
29726  
29727  const listItem = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29728    xmlns: "http://www.w3.org/2000/svg",
29729    viewBox: "0 0 24 24",
29730    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29731      d: "M12 11v1.5h8V11h-8zm-6-1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"
29732    })
29733  });
29734  /* harmony default export */ const list_item = (listItem);
29735  
29736  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js
29737  /**
29738   * WordPress dependencies
29739   */
29740  
29741  
29742  const formatIndentRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29743    xmlns: "http://www.w3.org/2000/svg",
29744    viewBox: "0 0 24 24",
29745    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29746      d: "M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM20.0303 9.03033L17.0607 12L20.0303 14.9697L18.9697 16.0303L15.4697 12.5303L14.9393 12L15.4697 11.4697L18.9697 7.96967L20.0303 9.03033Z"
29747    })
29748  });
29749  /* harmony default export */ const format_indent_rtl = (formatIndentRTL);
29750  
29751  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent.js
29752  /**
29753   * WordPress dependencies
29754   */
29755  
29756  
29757  const formatIndent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29758    xmlns: "http://www.w3.org/2000/svg",
29759    viewBox: "0 0 24 24",
29760    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29761      d: "M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-8-3.5l3 3-3 3 1 1 4-4-4-4-1 1z"
29762    })
29763  });
29764  /* harmony default export */ const format_indent = (formatIndent);
29765  
29766  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-indent-list-item.js
29767  /**
29768   * WordPress dependencies
29769   */
29770  
29771  
29772  
29773  
29774  function useIndentListItem(clientId) {
29775    const {
29776      replaceBlocks,
29777      selectionChange,
29778      multiSelect
29779    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
29780    const {
29781      getBlock,
29782      getPreviousBlockClientId,
29783      getSelectionStart,
29784      getSelectionEnd,
29785      hasMultiSelection,
29786      getMultiSelectedBlockClientIds
29787    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
29788    return (0,external_wp_element_namespaceObject.useCallback)(() => {
29789      const _hasMultiSelection = hasMultiSelection();
29790      const clientIds = _hasMultiSelection ? getMultiSelectedBlockClientIds() : [clientId];
29791      const clonedBlocks = clientIds.map(_clientId => (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(_clientId)));
29792      const previousSiblingId = getPreviousBlockClientId(clientId);
29793      const newListItem = (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(previousSiblingId));
29794      // If the sibling has no innerBlocks, create a new `list` block.
29795      if (!newListItem.innerBlocks?.length) {
29796        newListItem.innerBlocks = [(0,external_wp_blocks_namespaceObject.createBlock)('core/list')];
29797      }
29798      // A list item usually has one `list`, but it's possible to have
29799      // more. So we need to preserve the previous `list` blocks and
29800      // merge the new blocks to the last `list`.
29801      newListItem.innerBlocks[newListItem.innerBlocks.length - 1].innerBlocks.push(...clonedBlocks);
29802  
29803      // We get the selection start/end here, because when
29804      // we replace blocks, the selection is updated too.
29805      const selectionStart = getSelectionStart();
29806      const selectionEnd = getSelectionEnd();
29807      // Replace the previous sibling of the block being indented and the indented blocks,
29808      // with a new block whose attributes are equal to the ones of the previous sibling and
29809      // whose descendants are the children of the previous sibling, followed by the indented blocks.
29810      replaceBlocks([previousSiblingId, ...clientIds], [newListItem]);
29811      if (!_hasMultiSelection) {
29812        selectionChange(clonedBlocks[0].clientId, selectionEnd.attributeKey, selectionEnd.clientId === selectionStart.clientId ? selectionStart.offset : selectionEnd.offset, selectionEnd.offset);
29813      } else {
29814        multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId);
29815      }
29816      return true;
29817    }, [clientId]);
29818  }
29819  
29820  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-outdent-list-item.js
29821  /**
29822   * WordPress dependencies
29823   */
29824  
29825  
29826  
29827  
29828  function useOutdentListItem() {
29829    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
29830    const {
29831      moveBlocksToPosition,
29832      removeBlock,
29833      insertBlock,
29834      updateBlockListSettings
29835    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
29836    const {
29837      getBlockRootClientId,
29838      getBlockName,
29839      getBlockOrder,
29840      getBlockIndex,
29841      getSelectedBlockClientIds,
29842      getBlock,
29843      getBlockListSettings
29844    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
29845    function getParentListItemId(id) {
29846      const listId = getBlockRootClientId(id);
29847      const parentListItemId = getBlockRootClientId(listId);
29848      if (!parentListItemId) {
29849        return;
29850      }
29851      if (getBlockName(parentListItemId) !== 'core/list-item') {
29852        return;
29853      }
29854      return parentListItemId;
29855    }
29856    return (0,external_wp_element_namespaceObject.useCallback)((clientIds = getSelectedBlockClientIds()) => {
29857      if (!Array.isArray(clientIds)) {
29858        clientIds = [clientIds];
29859      }
29860      if (!clientIds.length) {
29861        return;
29862      }
29863      const firstClientId = clientIds[0];
29864  
29865      // Can't outdent if it's not a list item.
29866      if (getBlockName(firstClientId) !== 'core/list-item') {
29867        return;
29868      }
29869      const parentListItemId = getParentListItemId(firstClientId);
29870  
29871      // Can't outdent if it's at the top level.
29872      if (!parentListItemId) {
29873        return;
29874      }
29875      const parentListId = getBlockRootClientId(firstClientId);
29876      const lastClientId = clientIds[clientIds.length - 1];
29877      const order = getBlockOrder(parentListId);
29878      const followingListItems = order.slice(getBlockIndex(lastClientId) + 1);
29879      registry.batch(() => {
29880        if (followingListItems.length) {
29881          let nestedListId = getBlockOrder(firstClientId)[0];
29882          if (!nestedListId) {
29883            const nestedListBlock = (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(parentListId), {}, []);
29884            nestedListId = nestedListBlock.clientId;
29885            insertBlock(nestedListBlock, 0, firstClientId, false);
29886            // Immediately update the block list settings, otherwise
29887            // blocks can't be moved here due to canInsert checks.
29888            updateBlockListSettings(nestedListId, getBlockListSettings(parentListId));
29889          }
29890          moveBlocksToPosition(followingListItems, parentListId, nestedListId);
29891        }
29892        moveBlocksToPosition(clientIds, parentListId, getBlockRootClientId(parentListItemId), getBlockIndex(parentListItemId) + 1);
29893        if (!getBlockOrder(parentListId).length) {
29894          const shouldSelectParent = false;
29895          removeBlock(parentListId, shouldSelectParent);
29896        }
29897      });
29898      return true;
29899    }, []);
29900  }
29901  
29902  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-enter.js
29903  /**
29904   * WordPress dependencies
29905   */
29906  
29907  
29908  
29909  
29910  
29911  
29912  
29913  /**
29914   * Internal dependencies
29915   */
29916  
29917  function use_enter_useEnter(props) {
29918    const {
29919      replaceBlocks,
29920      selectionChange
29921    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
29922    const {
29923      getBlock,
29924      getBlockRootClientId,
29925      getBlockIndex,
29926      getBlockName
29927    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
29928    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
29929    propsRef.current = props;
29930    const outdentListItem = useOutdentListItem();
29931    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
29932      function onKeyDown(event) {
29933        if (event.defaultPrevented || event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
29934          return;
29935        }
29936        const {
29937          content,
29938          clientId
29939        } = propsRef.current;
29940        if (content.length) {
29941          return;
29942        }
29943        event.preventDefault();
29944        const canOutdent = getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item';
29945        if (canOutdent) {
29946          outdentListItem();
29947          return;
29948        }
29949        // Here we are in top level list so we need to split.
29950        const topParentListBlock = getBlock(getBlockRootClientId(clientId));
29951        const blockIndex = getBlockIndex(clientId);
29952        const head = (0,external_wp_blocks_namespaceObject.cloneBlock)({
29953          ...topParentListBlock,
29954          innerBlocks: topParentListBlock.innerBlocks.slice(0, blockIndex)
29955        });
29956        const middle = (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)());
29957        // Last list item might contain a `list` block innerBlock
29958        // In that case append remaining innerBlocks blocks.
29959        const after = [...(topParentListBlock.innerBlocks[blockIndex].innerBlocks[0]?.innerBlocks || []), ...topParentListBlock.innerBlocks.slice(blockIndex + 1)];
29960        const tail = after.length ? [(0,external_wp_blocks_namespaceObject.cloneBlock)({
29961          ...topParentListBlock,
29962          innerBlocks: after
29963        })] : [];
29964        replaceBlocks(topParentListBlock.clientId, [head, middle, ...tail], 1);
29965        // We manually change the selection here because we are replacing
29966        // a different block than the selected one.
29967        selectionChange(middle.clientId);
29968      }
29969      element.addEventListener('keydown', onKeyDown);
29970      return () => {
29971        element.removeEventListener('keydown', onKeyDown);
29972      };
29973    }, []);
29974  }
29975  
29976  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-space.js
29977  /**
29978   * WordPress dependencies
29979   */
29980  
29981  
29982  
29983  
29984  
29985  /**
29986   * Internal dependencies
29987   */
29988  
29989  
29990  function useSpace(clientId) {
29991    const {
29992      getSelectionStart,
29993      getSelectionEnd,
29994      getBlockIndex
29995    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
29996    const indentListItem = useIndentListItem(clientId);
29997    const outdentListItem = useOutdentListItem();
29998    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
29999      function onKeyDown(event) {
30000        const {
30001          keyCode,
30002          shiftKey,
30003          altKey,
30004          metaKey,
30005          ctrlKey
30006        } = event;
30007        if (event.defaultPrevented || keyCode !== external_wp_keycodes_namespaceObject.SPACE && keyCode !== external_wp_keycodes_namespaceObject.TAB ||
30008        // Only override when no modifiers are pressed.
30009        altKey || metaKey || ctrlKey) {
30010          return;
30011        }
30012        const selectionStart = getSelectionStart();
30013        const selectionEnd = getSelectionEnd();
30014        if (selectionStart.offset === 0 && selectionEnd.offset === 0) {
30015          if (shiftKey) {
30016            // Note that backspace behaviour in defined in onMerge.
30017            if (keyCode === external_wp_keycodes_namespaceObject.TAB) {
30018              if (outdentListItem()) {
30019                event.preventDefault();
30020              }
30021            }
30022          } else if (getBlockIndex(clientId) !== 0) {
30023            if (indentListItem()) {
30024              event.preventDefault();
30025            }
30026          }
30027        }
30028      }
30029      element.addEventListener('keydown', onKeyDown);
30030      return () => {
30031        element.removeEventListener('keydown', onKeyDown);
30032      };
30033    }, [clientId, indentListItem]);
30034  }
30035  
30036  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-merge.js
30037  /**
30038   * WordPress dependencies
30039   */
30040  
30041  
30042  
30043  /**
30044   * Internal dependencies
30045   */
30046  
30047  function useMerge(clientId, onMerge) {
30048    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30049    const {
30050      getPreviousBlockClientId,
30051      getNextBlockClientId,
30052      getBlockOrder,
30053      getBlockRootClientId,
30054      getBlockName
30055    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30056    const {
30057      mergeBlocks,
30058      moveBlocksToPosition
30059    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30060    const outdentListItem = useOutdentListItem();
30061    function getTrailingId(id) {
30062      const order = getBlockOrder(id);
30063      if (!order.length) {
30064        return id;
30065      }
30066      return getTrailingId(order[order.length - 1]);
30067    }
30068    function getParentListItemId(id) {
30069      const listId = getBlockRootClientId(id);
30070      const parentListItemId = getBlockRootClientId(listId);
30071      if (!parentListItemId) {
30072        return;
30073      }
30074      if (getBlockName(parentListItemId) !== 'core/list-item') {
30075        return;
30076      }
30077      return parentListItemId;
30078    }
30079  
30080    /**
30081     * Return the next list item with respect to the given list item. If none,
30082     * return the next list item of the parent list item if it exists.
30083     *
30084     * @param {string} id A list item client ID.
30085     * @return {string?} The client ID of the next list item.
30086     */
30087    function _getNextId(id) {
30088      const next = getNextBlockClientId(id);
30089      if (next) {
30090        return next;
30091      }
30092      const parentListItemId = getParentListItemId(id);
30093      if (!parentListItemId) {
30094        return;
30095      }
30096      return _getNextId(parentListItemId);
30097    }
30098  
30099    /**
30100     * Given a client ID, return the client ID of the list item on the next
30101     * line, regardless of indentation level.
30102     *
30103     * @param {string} id The client ID of the current list item.
30104     * @return {string?} The client ID of the next list item.
30105     */
30106    function getNextId(id) {
30107      const order = getBlockOrder(id);
30108  
30109      // If the list item does not have a nested list, return the next list
30110      // item.
30111      if (!order.length) {
30112        return _getNextId(id);
30113      }
30114  
30115      // Get the first list item in the nested list.
30116      return getBlockOrder(order[0])[0];
30117    }
30118    return forward => {
30119      function mergeWithNested(clientIdA, clientIdB) {
30120        registry.batch(() => {
30121          // When merging a sub list item with a higher next list item, we
30122          // also need to move any nested list items. Check if there's a
30123          // listed list, and append its nested list items to the current
30124          // list.
30125          const [nestedListClientId] = getBlockOrder(clientIdB);
30126          if (nestedListClientId) {
30127            // If we are merging with the previous list item, and the
30128            // previous list item does not have nested list, move the
30129            // nested list to the previous list item.
30130            if (getPreviousBlockClientId(clientIdB) === clientIdA && !getBlockOrder(clientIdA).length) {
30131              moveBlocksToPosition([nestedListClientId], clientIdB, clientIdA);
30132            } else {
30133              moveBlocksToPosition(getBlockOrder(nestedListClientId), nestedListClientId, getBlockRootClientId(clientIdA));
30134            }
30135          }
30136          mergeBlocks(clientIdA, clientIdB);
30137        });
30138      }
30139      if (forward) {
30140        const nextBlockClientId = getNextId(clientId);
30141        if (!nextBlockClientId) {
30142          onMerge(forward);
30143          return;
30144        }
30145        if (getParentListItemId(nextBlockClientId)) {
30146          outdentListItem(nextBlockClientId);
30147        } else {
30148          mergeWithNested(clientId, nextBlockClientId);
30149        }
30150      } else {
30151        // Merging is only done from the top level. For lowel levels, the
30152        // list item is outdented instead.
30153        const previousBlockClientId = getPreviousBlockClientId(clientId);
30154        if (getParentListItemId(clientId)) {
30155          outdentListItem(clientId);
30156        } else if (previousBlockClientId) {
30157          const trailingId = getTrailingId(previousBlockClientId);
30158          mergeWithNested(trailingId, clientId);
30159        } else {
30160          onMerge(forward);
30161        }
30162      }
30163    };
30164  }
30165  
30166  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/edit.js
30167  /**
30168   * WordPress dependencies
30169   */
30170  
30171  
30172  
30173  
30174  
30175  
30176  
30177  /**
30178   * Internal dependencies
30179   */
30180  
30181  
30182  
30183  
30184  function edit_IndentUI({
30185    clientId
30186  }) {
30187    const indentListItem = useIndentListItem(clientId);
30188    const outdentListItem = useOutdentListItem();
30189    const {
30190      canIndent,
30191      canOutdent
30192    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
30193      const {
30194        getBlockIndex,
30195        getBlockRootClientId,
30196        getBlockName
30197      } = select(external_wp_blockEditor_namespaceObject.store);
30198      return {
30199        canIndent: getBlockIndex(clientId) > 0,
30200        canOutdent: getBlockName(getBlockRootClientId(getBlockRootClientId(clientId))) === 'core/list-item'
30201      };
30202    }, [clientId]);
30203    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30204      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30205        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
30206        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
30207        description: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
30208        disabled: !canOutdent,
30209        onClick: () => outdentListItem()
30210      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30211        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_indent_rtl : format_indent,
30212        title: (0,external_wp_i18n_namespaceObject.__)('Indent'),
30213        description: (0,external_wp_i18n_namespaceObject.__)('Indent list item'),
30214        disabled: !canIndent,
30215        onClick: () => indentListItem()
30216      })]
30217    });
30218  }
30219  function ListItemEdit({
30220    attributes,
30221    setAttributes,
30222    clientId,
30223    mergeBlocks
30224  }) {
30225    const {
30226      placeholder,
30227      content
30228    } = attributes;
30229    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
30230    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
30231      renderAppender: false,
30232      __unstableDisableDropZone: true
30233    });
30234    const useEnterRef = use_enter_useEnter({
30235      content,
30236      clientId
30237    });
30238    const useSpaceRef = useSpace(clientId);
30239    const onMerge = useMerge(clientId, mergeBlocks);
30240    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30241      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
30242        ...innerBlocksProps,
30243        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
30244          ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([useEnterRef, useSpaceRef]),
30245          identifier: "content",
30246          tagName: "div",
30247          onChange: nextContent => setAttributes({
30248            content: nextContent
30249          }),
30250          value: content,
30251          "aria-label": (0,external_wp_i18n_namespaceObject.__)('List text'),
30252          placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('List'),
30253          onMerge: onMerge
30254        }), innerBlocksProps.children]
30255      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
30256        group: "block",
30257        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_IndentUI, {
30258          clientId: clientId
30259        })
30260      })]
30261    });
30262  }
30263  
30264  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/save.js
30265  /**
30266   * WordPress dependencies
30267   */
30268  
30269  
30270  
30271  function list_item_save_save({
30272    attributes
30273  }) {
30274    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
30275      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
30276      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
30277        value: attributes.content
30278      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})]
30279    });
30280  }
30281  
30282  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/transforms.js
30283  /**
30284   * WordPress dependencies
30285   */
30286  
30287  const list_item_transforms_transforms = {
30288    to: [{
30289      type: 'block',
30290      blocks: ['core/paragraph'],
30291      transform: (attributes, innerBlocks = []) => [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes), ...innerBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block))]
30292    }]
30293  };
30294  /* harmony default export */ const list_item_transforms = (list_item_transforms_transforms);
30295  
30296  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list-item/index.js
30297  /**
30298   * WordPress dependencies
30299   */
30300  
30301  
30302  
30303  /**
30304   * Internal dependencies
30305   */
30306  
30307  const list_item_metadata = {
30308    $schema: "https://schemas.wp.org/trunk/block.json",
30309    apiVersion: 3,
30310    name: "core/list-item",
30311    title: "List item",
30312    category: "text",
30313    parent: ["core/list"],
30314    allowedBlocks: ["core/list"],
30315    description: "An individual item within a list.",
30316    textdomain: "default",
30317    attributes: {
30318      placeholder: {
30319        type: "string"
30320      },
30321      content: {
30322        type: "rich-text",
30323        source: "rich-text",
30324        selector: "li",
30325        role: "content"
30326      }
30327    },
30328    supports: {
30329      anchor: true,
30330      className: false,
30331      splitting: true,
30332      __experimentalBorder: {
30333        color: true,
30334        radius: true,
30335        style: true,
30336        width: true
30337      },
30338      color: {
30339        gradients: true,
30340        link: true,
30341        background: true,
30342        __experimentalDefaultControls: {
30343          text: true
30344        }
30345      },
30346      spacing: {
30347        margin: true,
30348        padding: true,
30349        __experimentalDefaultControls: {
30350          margin: false,
30351          padding: false
30352        }
30353      },
30354      typography: {
30355        fontSize: true,
30356        lineHeight: true,
30357        __experimentalFontFamily: true,
30358        __experimentalFontWeight: true,
30359        __experimentalFontStyle: true,
30360        __experimentalTextTransform: true,
30361        __experimentalTextDecoration: true,
30362        __experimentalLetterSpacing: true,
30363        __experimentalDefaultControls: {
30364          fontSize: true
30365        }
30366      },
30367      interactivity: {
30368        clientNavigation: true
30369      }
30370    },
30371    selectors: {
30372      root: ".wp-block-list > li",
30373      border: ".wp-block-list:not(.wp-block-list .wp-block-list) > li"
30374    }
30375  };
30376  
30377  
30378  
30379  
30380  const {
30381    name: list_item_name
30382  } = list_item_metadata;
30383  
30384  const list_item_settings = {
30385    icon: list_item,
30386    edit: ListItemEdit,
30387    save: list_item_save_save,
30388    merge(attributes, attributesToMerge) {
30389      return {
30390        ...attributes,
30391        content: attributes.content + attributesToMerge.content
30392      };
30393    },
30394    transforms: list_item_transforms,
30395    [unlock(external_wp_blockEditor_namespaceObject.privateApis).requiresWrapperOnCopy]: true
30396  };
30397  const list_item_init = () => initBlock({
30398    name: list_item_name,
30399    metadata: list_item_metadata,
30400    settings: list_item_settings
30401  });
30402  
30403  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/login.js
30404  /**
30405   * WordPress dependencies
30406   */
30407  
30408  
30409  const login = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30410    xmlns: "http://www.w3.org/2000/svg",
30411    viewBox: "0 0 24 24",
30412    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30413      d: "M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z"
30414    })
30415  });
30416  /* harmony default export */ const library_login = (login);
30417  
30418  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/edit.js
30419  /**
30420   * WordPress dependencies
30421   */
30422  
30423  
30424  
30425  
30426  
30427  
30428  function LoginOutEdit({
30429    attributes,
30430    setAttributes
30431  }) {
30432    const {
30433      displayLoginAsForm,
30434      redirectToCurrent
30435    } = attributes;
30436    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30437      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
30438        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
30439          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
30440          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
30441            __nextHasNoMarginBottom: true,
30442            label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
30443            checked: displayLoginAsForm,
30444            onChange: () => setAttributes({
30445              displayLoginAsForm: !displayLoginAsForm
30446            })
30447          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
30448            __nextHasNoMarginBottom: true,
30449            label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
30450            checked: redirectToCurrent,
30451            onChange: () => setAttributes({
30452              redirectToCurrent: !redirectToCurrent
30453            })
30454          })]
30455        })
30456      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
30457        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
30458          className: 'logged-in'
30459        }),
30460        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
30461          href: "#login-pseudo-link",
30462          children: (0,external_wp_i18n_namespaceObject.__)('Log out')
30463        })
30464      })]
30465    });
30466  }
30467  
30468  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/index.js
30469  /**
30470   * WordPress dependencies
30471   */
30472  
30473  
30474  /**
30475   * Internal dependencies
30476   */
30477  
30478  
30479  const loginout_metadata = {
30480    $schema: "https://schemas.wp.org/trunk/block.json",
30481    apiVersion: 3,
30482    name: "core/loginout",
30483    title: "Login/out",
30484    category: "theme",
30485    description: "Show login & logout links.",
30486    keywords: ["login", "logout", "form"],
30487    textdomain: "default",
30488    attributes: {
30489      displayLoginAsForm: {
30490        type: "boolean",
30491        "default": false
30492      },
30493      redirectToCurrent: {
30494        type: "boolean",
30495        "default": true
30496      }
30497    },
30498    example: {
30499      viewportWidth: 350
30500    },
30501    supports: {
30502      className: true,
30503      color: {
30504        background: true,
30505        text: false,
30506        gradients: true,
30507        link: true
30508      },
30509      spacing: {
30510        margin: true,
30511        padding: true,
30512        __experimentalDefaultControls: {
30513          margin: false,
30514          padding: false
30515        }
30516      },
30517      typography: {
30518        fontSize: true,
30519        lineHeight: true,
30520        __experimentalFontFamily: true,
30521        __experimentalFontWeight: true,
30522        __experimentalFontStyle: true,
30523        __experimentalTextTransform: true,
30524        __experimentalTextDecoration: true,
30525        __experimentalLetterSpacing: true,
30526        __experimentalDefaultControls: {
30527          fontSize: true
30528        }
30529      },
30530      __experimentalBorder: {
30531        radius: true,
30532        color: true,
30533        width: true,
30534        style: true
30535      },
30536      interactivity: {
30537        clientNavigation: true
30538      }
30539    },
30540    style: "wp-block-loginout"
30541  };
30542  const {
30543    name: loginout_name
30544  } = loginout_metadata;
30545  
30546  const loginout_settings = {
30547    icon: library_login,
30548    edit: LoginOutEdit
30549  };
30550  const loginout_init = () => initBlock({
30551    name: loginout_name,
30552    metadata: loginout_metadata,
30553    settings: loginout_settings
30554  });
30555  
30556  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media-and-text.js
30557  /**
30558   * WordPress dependencies
30559   */
30560  
30561  
30562  const mediaAndText = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30563    xmlns: "http://www.w3.org/2000/svg",
30564    viewBox: "0 0 24 24",
30565    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30566      d: "M3 6v11.5h8V6H3Zm11 3h7V7.5h-7V9Zm7 3.5h-7V11h7v1.5ZM14 16h7v-1.5h-7V16Z"
30567    })
30568  });
30569  /* harmony default export */ const media_and_text = (mediaAndText);
30570  
30571  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/constants.js
30572  /**
30573   * WordPress dependencies
30574   */
30575  
30576  const DEFAULT_MEDIA_SIZE_SLUG = 'full';
30577  const WIDTH_CONSTRAINT_PERCENTAGE = 15;
30578  const media_text_constants_LINK_DESTINATION_MEDIA = 'media';
30579  const media_text_constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
30580  const constants_TEMPLATE = [['core/paragraph', {
30581    placeholder: (0,external_wp_i18n_namespaceObject._x)('Content…', 'content placeholder')
30582  }]];
30583  
30584  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js
30585  /**
30586   * External dependencies
30587   */
30588  
30589  
30590  /**
30591   * WordPress dependencies
30592   */
30593  
30594  
30595  
30596  /**
30597   * Internal dependencies
30598   */
30599  
30600  
30601  
30602  const v1ToV5ImageFillStyles = (url, focalPoint) => {
30603    return url ? {
30604      backgroundImage: `url($url})`,
30605      backgroundPosition: focalPoint ? `$focalPoint.x * 100}% $focalPoint.y * 100}%` : `50% 50%`
30606    } : {};
30607  };
30608  const v6ToV7ImageFillStyles = (url, focalPoint) => {
30609    return url ? {
30610      backgroundImage: `url($url})`,
30611      backgroundPosition: focalPoint ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : `50% 50%`
30612    } : {};
30613  };
30614  const DEFAULT_MEDIA_WIDTH = 50;
30615  const noop = () => {};
30616  const media_text_deprecated_migrateCustomColors = attributes => {
30617    if (!attributes.customBackgroundColor) {
30618      return attributes;
30619    }
30620    const style = {
30621      color: {
30622        background: attributes.customBackgroundColor
30623      }
30624    };
30625    const {
30626      customBackgroundColor,
30627      ...restAttributes
30628    } = attributes;
30629    return {
30630      ...restAttributes,
30631      style
30632    };
30633  };
30634  
30635  // After align attribute's default was updated this function explicitly sets
30636  // the align value for deprecated blocks to the `wide` value which was default
30637  // for their versions of this block.
30638  const migrateDefaultAlign = attributes => {
30639    if (attributes.align) {
30640      return attributes;
30641    }
30642    return {
30643      ...attributes,
30644      align: 'wide'
30645    };
30646  };
30647  const v0Attributes = {
30648    align: {
30649      type: 'string',
30650      default: 'wide'
30651    },
30652    mediaAlt: {
30653      type: 'string',
30654      source: 'attribute',
30655      selector: 'figure img',
30656      attribute: 'alt',
30657      default: ''
30658    },
30659    mediaPosition: {
30660      type: 'string',
30661      default: 'left'
30662    },
30663    mediaId: {
30664      type: 'number'
30665    },
30666    mediaType: {
30667      type: 'string'
30668    },
30669    mediaWidth: {
30670      type: 'number',
30671      default: 50
30672    },
30673    isStackedOnMobile: {
30674      type: 'boolean',
30675      default: false
30676    }
30677  };
30678  const v4ToV5BlockAttributes = {
30679    ...v0Attributes,
30680    isStackedOnMobile: {
30681      type: 'boolean',
30682      default: true
30683    },
30684    mediaUrl: {
30685      type: 'string',
30686      source: 'attribute',
30687      selector: 'figure video,figure img',
30688      attribute: 'src'
30689    },
30690    mediaLink: {
30691      type: 'string'
30692    },
30693    linkDestination: {
30694      type: 'string'
30695    },
30696    linkTarget: {
30697      type: 'string',
30698      source: 'attribute',
30699      selector: 'figure a',
30700      attribute: 'target'
30701    },
30702    href: {
30703      type: 'string',
30704      source: 'attribute',
30705      selector: 'figure a',
30706      attribute: 'href'
30707    },
30708    rel: {
30709      type: 'string',
30710      source: 'attribute',
30711      selector: 'figure a',
30712      attribute: 'rel'
30713    },
30714    linkClass: {
30715      type: 'string',
30716      source: 'attribute',
30717      selector: 'figure a',
30718      attribute: 'class'
30719    },
30720    mediaSizeSlug: {
30721      type: 'string'
30722    },
30723    verticalAlignment: {
30724      type: 'string'
30725    },
30726    imageFill: {
30727      type: 'boolean'
30728    },
30729    focalPoint: {
30730      type: 'object'
30731    }
30732  };
30733  const v6Attributes = {
30734    ...v4ToV5BlockAttributes,
30735    mediaAlt: {
30736      type: 'string',
30737      source: 'attribute',
30738      selector: 'figure img',
30739      attribute: 'alt',
30740      default: '',
30741      role: 'content'
30742    },
30743    mediaId: {
30744      type: 'number',
30745      role: 'content'
30746    },
30747    mediaUrl: {
30748      type: 'string',
30749      source: 'attribute',
30750      selector: 'figure video,figure img',
30751      attribute: 'src',
30752      role: 'content'
30753    },
30754    href: {
30755      type: 'string',
30756      source: 'attribute',
30757      selector: 'figure a',
30758      attribute: 'href',
30759      role: 'content'
30760    },
30761    mediaType: {
30762      type: 'string',
30763      role: 'content'
30764    }
30765  };
30766  const v7Attributes = {
30767    ...v6Attributes,
30768    align: {
30769      type: 'string',
30770      // v7 changed the default for the `align` attribute.
30771      default: 'none'
30772    },
30773    // New attribute.
30774    useFeaturedImage: {
30775      type: 'boolean',
30776      default: false
30777    }
30778  };
30779  const v4ToV5Supports = {
30780    anchor: true,
30781    align: ['wide', 'full'],
30782    html: false,
30783    color: {
30784      gradients: true,
30785      link: true
30786    }
30787  };
30788  const v6Supports = {
30789    ...v4ToV5Supports,
30790    color: {
30791      gradients: true,
30792      link: true,
30793      __experimentalDefaultControls: {
30794        background: true,
30795        text: true
30796      }
30797    },
30798    spacing: {
30799      margin: true,
30800      padding: true
30801    },
30802    typography: {
30803      fontSize: true,
30804      lineHeight: true,
30805      __experimentalFontFamily: true,
30806      __experimentalFontWeight: true,
30807      __experimentalFontStyle: true,
30808      __experimentalTextTransform: true,
30809      __experimentalTextDecoration: true,
30810      __experimentalLetterSpacing: true,
30811      __experimentalDefaultControls: {
30812        fontSize: true
30813      }
30814    }
30815  };
30816  const v7Supports = {
30817    ...v6Supports,
30818    __experimentalBorder: {
30819      color: true,
30820      radius: true,
30821      style: true,
30822      width: true,
30823      __experimentalDefaultControls: {
30824        color: true,
30825        radius: true,
30826        style: true,
30827        width: true
30828      }
30829    },
30830    color: {
30831      gradients: true,
30832      heading: true,
30833      link: true,
30834      __experimentalDefaultControls: {
30835        background: true,
30836        text: true
30837      }
30838    },
30839    interactivity: {
30840      clientNavigation: true
30841    }
30842  };
30843  
30844  // Version with 'none' as the default alignment.
30845  // See: https://github.com/WordPress/gutenberg/pull/64981
30846  const media_text_deprecated_v7 = {
30847    attributes: v7Attributes,
30848    supports: v7Supports,
30849    usesContext: ['postId', 'postType'],
30850    save({
30851      attributes
30852    }) {
30853      const {
30854        isStackedOnMobile,
30855        mediaAlt,
30856        mediaPosition,
30857        mediaType,
30858        mediaUrl,
30859        mediaWidth,
30860        mediaId,
30861        verticalAlignment,
30862        imageFill,
30863        focalPoint,
30864        linkClass,
30865        href,
30866        linkTarget,
30867        rel
30868      } = attributes;
30869      const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
30870      const newRel = !rel ? undefined : rel;
30871      const imageClasses = dist_clsx({
30872        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
30873        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
30874      });
30875      let image = mediaUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
30876        src: mediaUrl,
30877        alt: mediaAlt,
30878        className: imageClasses || null
30879      }) : null;
30880      if (href) {
30881        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
30882          className: linkClass,
30883          href: href,
30884          target: linkTarget,
30885          rel: newRel,
30886          children: image
30887        });
30888      }
30889      const mediaTypeRenders = {
30890        image: () => image,
30891        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
30892          controls: true,
30893          src: mediaUrl
30894        })
30895      };
30896      const className = dist_clsx({
30897        'has-media-on-the-right': 'right' === mediaPosition,
30898        'is-stacked-on-mobile': isStackedOnMobile,
30899        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
30900        'is-image-fill': imageFill
30901      });
30902      const backgroundStyles = imageFill ? v6ToV7ImageFillStyles(mediaUrl, focalPoint) : {};
30903      let gridTemplateColumns;
30904      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
30905        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
30906      }
30907      const style = {
30908        gridTemplateColumns
30909      };
30910      if ('right' === mediaPosition) {
30911        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
30912          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
30913            className,
30914            style
30915          }),
30916          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
30917            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
30918              className: 'wp-block-media-text__content'
30919            })
30920          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
30921            className: "wp-block-media-text__media",
30922            style: backgroundStyles,
30923            children: (mediaTypeRenders[mediaType] || noop)()
30924          })]
30925        });
30926      }
30927      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
30928        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
30929          className,
30930          style
30931        }),
30932        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
30933          className: "wp-block-media-text__media",
30934          style: backgroundStyles,
30935          children: (mediaTypeRenders[mediaType] || noop)()
30936        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
30937          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
30938            className: 'wp-block-media-text__content'
30939          })
30940        })]
30941      });
30942    }
30943  };
30944  
30945  // Version with wide as the default alignment.
30946  // See: https://github.com/WordPress/gutenberg/pull/48404
30947  const media_text_deprecated_v6 = {
30948    attributes: v6Attributes,
30949    supports: v6Supports,
30950    save({
30951      attributes
30952    }) {
30953      const {
30954        isStackedOnMobile,
30955        mediaAlt,
30956        mediaPosition,
30957        mediaType,
30958        mediaUrl,
30959        mediaWidth,
30960        mediaId,
30961        verticalAlignment,
30962        imageFill,
30963        focalPoint,
30964        linkClass,
30965        href,
30966        linkTarget,
30967        rel
30968      } = attributes;
30969      const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
30970      const newRel = !rel ? undefined : rel;
30971      const imageClasses = dist_clsx({
30972        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
30973        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
30974      });
30975      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
30976        src: mediaUrl,
30977        alt: mediaAlt,
30978        className: imageClasses || null
30979      });
30980      if (href) {
30981        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
30982          className: linkClass,
30983          href: href,
30984          target: linkTarget,
30985          rel: newRel,
30986          children: image
30987        });
30988      }
30989      const mediaTypeRenders = {
30990        image: () => image,
30991        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
30992          controls: true,
30993          src: mediaUrl
30994        })
30995      };
30996      const className = dist_clsx({
30997        'has-media-on-the-right': 'right' === mediaPosition,
30998        'is-stacked-on-mobile': isStackedOnMobile,
30999        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31000        'is-image-fill': imageFill
31001      });
31002      const backgroundStyles = imageFill ? v6ToV7ImageFillStyles(mediaUrl, focalPoint) : {};
31003      let gridTemplateColumns;
31004      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31005        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31006      }
31007      const style = {
31008        gridTemplateColumns
31009      };
31010      if ('right' === mediaPosition) {
31011        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31012          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31013            className,
31014            style
31015          }),
31016          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31017            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31018              className: 'wp-block-media-text__content'
31019            })
31020          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31021            className: "wp-block-media-text__media",
31022            style: backgroundStyles,
31023            children: (mediaTypeRenders[mediaType] || noop)()
31024          })]
31025        });
31026      }
31027      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31028        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31029          className,
31030          style
31031        }),
31032        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31033          className: "wp-block-media-text__media",
31034          style: backgroundStyles,
31035          children: (mediaTypeRenders[mediaType] || noop)()
31036        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31037          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31038            className: 'wp-block-media-text__content'
31039          })
31040        })]
31041      });
31042    },
31043    migrate: migrateDefaultAlign,
31044    isEligible(attributes, innerBlocks, {
31045      block
31046    }) {
31047      const {
31048        attributes: finalizedAttributes
31049      } = block;
31050      // When the align attribute defaults to none, valid block markup should
31051      // not contain any alignment CSS class. Unfortunately, this
31052      // deprecation's version of the block won't be invalidated due to the
31053      // alignwide class still being in the markup. That is because the custom
31054      // CSS classname support picks it up and adds it to the className
31055      // attribute. At the time of parsing, the className attribute won't
31056      // contain the alignwide class, hence the need to check the finalized
31057      // block attributes.
31058      return attributes.align === undefined && !!finalizedAttributes.className?.includes('alignwide');
31059    }
31060  };
31061  
31062  // Version with non-rounded background position attribute for focal point.
31063  // See: https://github.com/WordPress/gutenberg/pull/33915
31064  const media_text_deprecated_v5 = {
31065    attributes: v4ToV5BlockAttributes,
31066    supports: v4ToV5Supports,
31067    save({
31068      attributes
31069    }) {
31070      const {
31071        isStackedOnMobile,
31072        mediaAlt,
31073        mediaPosition,
31074        mediaType,
31075        mediaUrl,
31076        mediaWidth,
31077        mediaId,
31078        verticalAlignment,
31079        imageFill,
31080        focalPoint,
31081        linkClass,
31082        href,
31083        linkTarget,
31084        rel
31085      } = attributes;
31086      const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
31087      const newRel = !rel ? undefined : rel;
31088      const imageClasses = dist_clsx({
31089        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
31090        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
31091      });
31092      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31093        src: mediaUrl,
31094        alt: mediaAlt,
31095        className: imageClasses || null
31096      });
31097      if (href) {
31098        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31099          className: linkClass,
31100          href: href,
31101          target: linkTarget,
31102          rel: newRel,
31103          children: image
31104        });
31105      }
31106      const mediaTypeRenders = {
31107        image: () => image,
31108        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31109          controls: true,
31110          src: mediaUrl
31111        })
31112      };
31113      const className = dist_clsx({
31114        'has-media-on-the-right': 'right' === mediaPosition,
31115        'is-stacked-on-mobile': isStackedOnMobile,
31116        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31117        'is-image-fill': imageFill
31118      });
31119      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
31120      let gridTemplateColumns;
31121      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31122        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31123      }
31124      const style = {
31125        gridTemplateColumns
31126      };
31127      if ('right' === mediaPosition) {
31128        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31129          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31130            className,
31131            style
31132          }),
31133          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31134            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31135              className: 'wp-block-media-text__content'
31136            })
31137          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31138            className: "wp-block-media-text__media",
31139            style: backgroundStyles,
31140            children: (mediaTypeRenders[mediaType] || noop)()
31141          })]
31142        });
31143      }
31144      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31145        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31146          className,
31147          style
31148        }),
31149        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31150          className: "wp-block-media-text__media",
31151          style: backgroundStyles,
31152          children: (mediaTypeRenders[mediaType] || noop)()
31153        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31154          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31155            className: 'wp-block-media-text__content'
31156          })
31157        })]
31158      });
31159    },
31160    migrate: migrateDefaultAlign
31161  };
31162  
31163  // Version with CSS grid
31164  // See: https://github.com/WordPress/gutenberg/pull/40806
31165  const media_text_deprecated_v4 = {
31166    attributes: v4ToV5BlockAttributes,
31167    supports: v4ToV5Supports,
31168    save({
31169      attributes
31170    }) {
31171      const {
31172        isStackedOnMobile,
31173        mediaAlt,
31174        mediaPosition,
31175        mediaType,
31176        mediaUrl,
31177        mediaWidth,
31178        mediaId,
31179        verticalAlignment,
31180        imageFill,
31181        focalPoint,
31182        linkClass,
31183        href,
31184        linkTarget,
31185        rel
31186      } = attributes;
31187      const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
31188      const newRel = !rel ? undefined : rel;
31189      const imageClasses = dist_clsx({
31190        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
31191        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
31192      });
31193      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31194        src: mediaUrl,
31195        alt: mediaAlt,
31196        className: imageClasses || null
31197      });
31198      if (href) {
31199        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31200          className: linkClass,
31201          href: href,
31202          target: linkTarget,
31203          rel: newRel,
31204          children: image
31205        });
31206      }
31207      const mediaTypeRenders = {
31208        image: () => image,
31209        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31210          controls: true,
31211          src: mediaUrl
31212        })
31213      };
31214      const className = dist_clsx({
31215        'has-media-on-the-right': 'right' === mediaPosition,
31216        'is-stacked-on-mobile': isStackedOnMobile,
31217        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31218        'is-image-fill': imageFill
31219      });
31220      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
31221      let gridTemplateColumns;
31222      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31223        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31224      }
31225      const style = {
31226        gridTemplateColumns
31227      };
31228      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31229        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31230          className,
31231          style
31232        }),
31233        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31234          className: "wp-block-media-text__media",
31235          style: backgroundStyles,
31236          children: (mediaTypeRenders[mediaType] || noop)()
31237        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31238          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31239            className: 'wp-block-media-text__content'
31240          })
31241        })]
31242      });
31243    },
31244    migrate: migrateDefaultAlign
31245  };
31246  
31247  // Version with ad-hoc color attributes
31248  // See: https://github.com/WordPress/gutenberg/pull/21169
31249  const media_text_deprecated_v3 = {
31250    attributes: {
31251      ...v0Attributes,
31252      isStackedOnMobile: {
31253        type: 'boolean',
31254        default: true
31255      },
31256      backgroundColor: {
31257        type: 'string'
31258      },
31259      customBackgroundColor: {
31260        type: 'string'
31261      },
31262      mediaLink: {
31263        type: 'string'
31264      },
31265      linkDestination: {
31266        type: 'string'
31267      },
31268      linkTarget: {
31269        type: 'string',
31270        source: 'attribute',
31271        selector: 'figure a',
31272        attribute: 'target'
31273      },
31274      href: {
31275        type: 'string',
31276        source: 'attribute',
31277        selector: 'figure a',
31278        attribute: 'href'
31279      },
31280      rel: {
31281        type: 'string',
31282        source: 'attribute',
31283        selector: 'figure a',
31284        attribute: 'rel'
31285      },
31286      linkClass: {
31287        type: 'string',
31288        source: 'attribute',
31289        selector: 'figure a',
31290        attribute: 'class'
31291      },
31292      verticalAlignment: {
31293        type: 'string'
31294      },
31295      imageFill: {
31296        type: 'boolean'
31297      },
31298      focalPoint: {
31299        type: 'object'
31300      }
31301    },
31302    migrate: (0,external_wp_compose_namespaceObject.compose)(media_text_deprecated_migrateCustomColors, migrateDefaultAlign),
31303    save({
31304      attributes
31305    }) {
31306      const {
31307        backgroundColor,
31308        customBackgroundColor,
31309        isStackedOnMobile,
31310        mediaAlt,
31311        mediaPosition,
31312        mediaType,
31313        mediaUrl,
31314        mediaWidth,
31315        mediaId,
31316        verticalAlignment,
31317        imageFill,
31318        focalPoint,
31319        linkClass,
31320        href,
31321        linkTarget,
31322        rel
31323      } = attributes;
31324      const newRel = !rel ? undefined : rel;
31325      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31326        src: mediaUrl,
31327        alt: mediaAlt,
31328        className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
31329      });
31330      if (href) {
31331        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31332          className: linkClass,
31333          href: href,
31334          target: linkTarget,
31335          rel: newRel,
31336          children: image
31337        });
31338      }
31339      const mediaTypeRenders = {
31340        image: () => image,
31341        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31342          controls: true,
31343          src: mediaUrl
31344        })
31345      };
31346      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
31347      const className = dist_clsx({
31348        'has-media-on-the-right': 'right' === mediaPosition,
31349        'has-background': backgroundClass || customBackgroundColor,
31350        [backgroundClass]: backgroundClass,
31351        'is-stacked-on-mobile': isStackedOnMobile,
31352        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31353        'is-image-fill': imageFill
31354      });
31355      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
31356      let gridTemplateColumns;
31357      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31358        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31359      }
31360      const style = {
31361        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
31362        gridTemplateColumns
31363      };
31364      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31365        className: className,
31366        style: style,
31367        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31368          className: "wp-block-media-text__media",
31369          style: backgroundStyles,
31370          children: (mediaTypeRenders[mediaType] || noop)()
31371        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31372          className: "wp-block-media-text__content",
31373          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
31374        })]
31375      });
31376    }
31377  };
31378  
31379  // Version with stack on mobile off by default
31380  // See: https://github.com/WordPress/gutenberg/pull/14364
31381  const media_text_deprecated_v2 = {
31382    attributes: {
31383      ...v0Attributes,
31384      backgroundColor: {
31385        type: 'string'
31386      },
31387      customBackgroundColor: {
31388        type: 'string'
31389      },
31390      mediaUrl: {
31391        type: 'string',
31392        source: 'attribute',
31393        selector: 'figure video,figure img',
31394        attribute: 'src'
31395      },
31396      verticalAlignment: {
31397        type: 'string'
31398      },
31399      imageFill: {
31400        type: 'boolean'
31401      },
31402      focalPoint: {
31403        type: 'object'
31404      }
31405    },
31406    migrate: (0,external_wp_compose_namespaceObject.compose)(media_text_deprecated_migrateCustomColors, migrateDefaultAlign),
31407    save({
31408      attributes
31409    }) {
31410      const {
31411        backgroundColor,
31412        customBackgroundColor,
31413        isStackedOnMobile,
31414        mediaAlt,
31415        mediaPosition,
31416        mediaType,
31417        mediaUrl,
31418        mediaWidth,
31419        mediaId,
31420        verticalAlignment,
31421        imageFill,
31422        focalPoint
31423      } = attributes;
31424      const mediaTypeRenders = {
31425        image: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31426          src: mediaUrl,
31427          alt: mediaAlt,
31428          className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
31429        }),
31430        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31431          controls: true,
31432          src: mediaUrl
31433        })
31434      };
31435      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
31436      const className = dist_clsx({
31437        'has-media-on-the-right': 'right' === mediaPosition,
31438        [backgroundClass]: backgroundClass,
31439        'is-stacked-on-mobile': isStackedOnMobile,
31440        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31441        'is-image-fill': imageFill
31442      });
31443      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
31444      let gridTemplateColumns;
31445      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31446        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31447      }
31448      const style = {
31449        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
31450        gridTemplateColumns
31451      };
31452      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31453        className: className,
31454        style: style,
31455        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31456          className: "wp-block-media-text__media",
31457          style: backgroundStyles,
31458          children: (mediaTypeRenders[mediaType] || noop)()
31459        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31460          className: "wp-block-media-text__content",
31461          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
31462        })]
31463      });
31464    }
31465  };
31466  
31467  // Version without the wp-image-#### class on image
31468  // See: https://github.com/WordPress/gutenberg/pull/11922
31469  const media_text_deprecated_v1 = {
31470    attributes: {
31471      ...v0Attributes,
31472      backgroundColor: {
31473        type: 'string'
31474      },
31475      customBackgroundColor: {
31476        type: 'string'
31477      },
31478      mediaUrl: {
31479        type: 'string',
31480        source: 'attribute',
31481        selector: 'figure video,figure img',
31482        attribute: 'src'
31483      }
31484    },
31485    migrate: migrateDefaultAlign,
31486    save({
31487      attributes
31488    }) {
31489      const {
31490        backgroundColor,
31491        customBackgroundColor,
31492        isStackedOnMobile,
31493        mediaAlt,
31494        mediaPosition,
31495        mediaType,
31496        mediaUrl,
31497        mediaWidth
31498      } = attributes;
31499      const mediaTypeRenders = {
31500        image: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31501          src: mediaUrl,
31502          alt: mediaAlt
31503        }),
31504        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31505          controls: true,
31506          src: mediaUrl
31507        })
31508      };
31509      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
31510      const className = dist_clsx({
31511        'has-media-on-the-right': 'right' === mediaPosition,
31512        [backgroundClass]: backgroundClass,
31513        'is-stacked-on-mobile': isStackedOnMobile
31514      });
31515      let gridTemplateColumns;
31516      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31517        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31518      }
31519      const style = {
31520        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
31521        gridTemplateColumns
31522      };
31523      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31524        className: className,
31525        style: style,
31526        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31527          className: "wp-block-media-text__media",
31528          children: (mediaTypeRenders[mediaType] || noop)()
31529        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31530          className: "wp-block-media-text__content",
31531          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
31532        })]
31533      });
31534    }
31535  };
31536  /* harmony default export */ const media_text_deprecated = ([media_text_deprecated_v7, media_text_deprecated_v6, media_text_deprecated_v5, media_text_deprecated_v4, media_text_deprecated_v3, media_text_deprecated_v2, media_text_deprecated_v1]);
31537  
31538  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-left.js
31539  /**
31540   * WordPress dependencies
31541   */
31542  
31543  
31544  const pullLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
31545    xmlns: "http://www.w3.org/2000/svg",
31546    viewBox: "0 0 24 24",
31547    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31548      d: "M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z"
31549    })
31550  });
31551  /* harmony default export */ const pull_left = (pullLeft);
31552  
31553  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-right.js
31554  /**
31555   * WordPress dependencies
31556   */
31557  
31558  
31559  const pullRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
31560    xmlns: "http://www.w3.org/2000/svg",
31561    viewBox: "0 0 24 24",
31562    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31563      d: "M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z"
31564    })
31565  });
31566  /* harmony default export */ const pull_right = (pullRight);
31567  
31568  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js
31569  /**
31570   * WordPress dependencies
31571   */
31572  
31573  
31574  
31575  const media = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
31576    xmlns: "http://www.w3.org/2000/svg",
31577    viewBox: "0 0 24 24",
31578    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31579      d: "m7 6.5 4 2.5-4 2.5z"
31580    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31581      fillRule: "evenodd",
31582      clipRule: "evenodd",
31583      d: "m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z"
31584    })]
31585  });
31586  /* harmony default export */ const library_media = (media);
31587  
31588  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/image-fill.js
31589  function imageFillStyles(url, focalPoint) {
31590    return url ? {
31591      objectPosition: focalPoint ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : `50% 50%`
31592    } : {};
31593  }
31594  
31595  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js
31596  /**
31597   * External dependencies
31598   */
31599  
31600  
31601  /**
31602   * WordPress dependencies
31603   */
31604  
31605  
31606  
31607  
31608  
31609  
31610  
31611  
31612  
31613  
31614  /**
31615   * Internal dependencies
31616   */
31617  
31618  
31619  /**
31620   * Constants
31621   */
31622  
31623  
31624  const media_container_ALLOWED_MEDIA_TYPES = ['image', 'video'];
31625  const media_container_noop = () => {};
31626  const ResizableBoxContainer = (0,external_wp_element_namespaceObject.forwardRef)(({
31627    isSelected,
31628    isStackedOnMobile,
31629    ...props
31630  }, ref) => {
31631    const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
31632    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
31633      ref: ref,
31634      showHandle: isSelected && (!isMobile || !isStackedOnMobile),
31635      ...props
31636    });
31637  });
31638  function ToolbarEditButton({
31639    mediaId,
31640    mediaUrl,
31641    onSelectMedia,
31642    toggleUseFeaturedImage,
31643    useFeaturedImage
31644  }) {
31645    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
31646      group: "other",
31647      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
31648        mediaId: mediaId,
31649        mediaURL: mediaUrl,
31650        allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
31651        accept: "image/*,video/*",
31652        onSelect: onSelectMedia,
31653        onToggleFeaturedImage: toggleUseFeaturedImage,
31654        useFeaturedImage: useFeaturedImage,
31655        onReset: () => onSelectMedia(undefined)
31656      })
31657    });
31658  }
31659  function PlaceholderContainer({
31660    className,
31661    mediaUrl,
31662    onSelectMedia,
31663    toggleUseFeaturedImage
31664  }) {
31665    const {
31666      createErrorNotice
31667    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
31668    const onUploadError = message => {
31669      createErrorNotice(message, {
31670        type: 'snackbar'
31671      });
31672    };
31673    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
31674      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
31675        icon: library_media
31676      }),
31677      labels: {
31678        title: (0,external_wp_i18n_namespaceObject.__)('Media area')
31679      },
31680      className: className,
31681      onSelect: onSelectMedia,
31682      accept: "image/*,video/*",
31683      onToggleFeaturedImage: toggleUseFeaturedImage,
31684      allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
31685      onError: onUploadError,
31686      disableMediaButtons: mediaUrl
31687    });
31688  }
31689  function MediaContainer(props, ref) {
31690    const {
31691      className,
31692      commitWidthChange,
31693      focalPoint,
31694      imageFill,
31695      isSelected,
31696      isStackedOnMobile,
31697      mediaAlt,
31698      mediaId,
31699      mediaPosition,
31700      mediaType,
31701      mediaUrl,
31702      mediaWidth,
31703      onSelectMedia,
31704      onWidthChange,
31705      enableResize,
31706      toggleUseFeaturedImage,
31707      useFeaturedImage,
31708      featuredImageURL,
31709      featuredImageAlt,
31710      refMedia
31711    } = props;
31712    const isTemporaryMedia = !mediaId && (0,external_wp_blob_namespaceObject.isBlobURL)(mediaUrl);
31713    const {
31714      toggleSelection
31715    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
31716    if (mediaUrl || featuredImageURL || useFeaturedImage) {
31717      const onResizeStart = () => {
31718        toggleSelection(false);
31719      };
31720      const onResize = (event, direction, elt) => {
31721        onWidthChange(parseInt(elt.style.width));
31722      };
31723      const onResizeStop = (event, direction, elt) => {
31724        toggleSelection(true);
31725        commitWidthChange(parseInt(elt.style.width));
31726      };
31727      const enablePositions = {
31728        right: enableResize && mediaPosition === 'left',
31729        left: enableResize && mediaPosition === 'right'
31730      };
31731      const positionStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl || featuredImageURL, focalPoint) : {};
31732      const mediaTypeRenderers = {
31733        image: () => useFeaturedImage && featuredImageURL ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31734          ref: refMedia,
31735          src: featuredImageURL,
31736          alt: featuredImageAlt,
31737          style: positionStyles
31738        }) : mediaUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31739          ref: refMedia,
31740          src: mediaUrl,
31741          alt: mediaAlt,
31742          style: positionStyles
31743        }),
31744        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31745          controls: true,
31746          ref: refMedia,
31747          src: mediaUrl
31748        })
31749      };
31750      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ResizableBoxContainer, {
31751        as: "figure",
31752        className: dist_clsx(className, 'editor-media-container__resizer', {
31753          'is-transient': isTemporaryMedia
31754        }),
31755        size: {
31756          width: mediaWidth + '%'
31757        },
31758        minWidth: "10%",
31759        maxWidth: "100%",
31760        enable: enablePositions,
31761        onResizeStart: onResizeStart,
31762        onResize: onResize,
31763        onResizeStop: onResizeStop,
31764        axis: "x",
31765        isSelected: isSelected,
31766        isStackedOnMobile: isStackedOnMobile,
31767        ref: ref,
31768        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ToolbarEditButton, {
31769          onSelectMedia: onSelectMedia,
31770          mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
31771          mediaId: mediaId,
31772          toggleUseFeaturedImage: toggleUseFeaturedImage
31773        }), (mediaTypeRenderers[mediaType] || media_container_noop)(), isTemporaryMedia && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderContainer, {
31774          ...props
31775        }), !featuredImageURL && useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
31776          className: "wp-block-media-text--placeholder-image",
31777          style: positionStyles,
31778          withIllustration: true
31779        })]
31780      });
31781    }
31782    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderContainer, {
31783      ...props
31784    });
31785  }
31786  /* harmony default export */ const media_container = ((0,external_wp_element_namespaceObject.forwardRef)(MediaContainer));
31787  
31788  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/edit.js
31789  /**
31790   * External dependencies
31791   */
31792  
31793  
31794  /**
31795   * WordPress dependencies
31796   */
31797  
31798  
31799  
31800  
31801  
31802  
31803  
31804  
31805  
31806  /**
31807   * Internal dependencies
31808   */
31809  
31810  
31811  
31812  
31813  
31814  
31815  
31816  const {
31817    ResolutionTool: edit_ResolutionTool
31818  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
31819  
31820  // this limits the resize to a safe zone to avoid making broken layouts
31821  const applyWidthConstraints = width => Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE));
31822  function getImageSourceUrlBySizeSlug(image, slug) {
31823    // eslint-disable-next-line camelcase
31824    return image?.media_details?.sizes?.[slug]?.source_url;
31825  }
31826  function edit_attributesFromMedia({
31827    attributes: {
31828      linkDestination,
31829      href
31830    },
31831    setAttributes
31832  }) {
31833    return media => {
31834      if (!media || !media.url) {
31835        setAttributes({
31836          mediaAlt: undefined,
31837          mediaId: undefined,
31838          mediaType: undefined,
31839          mediaUrl: undefined,
31840          mediaLink: undefined,
31841          href: undefined,
31842          focalPoint: undefined
31843        });
31844        return;
31845      }
31846      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
31847        media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
31848      }
31849      let mediaType;
31850      let src;
31851      // For media selections originated from a file upload.
31852      if (media.media_type) {
31853        if (media.media_type === 'image') {
31854          mediaType = 'image';
31855        } else {
31856          // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
31857          // video contain the media type of 'file' in the object returned from the rest api.
31858          mediaType = 'video';
31859        }
31860      } else {
31861        // For media selections originated from existing files in the media library.
31862        mediaType = media.type;
31863      }
31864      if (mediaType === 'image') {
31865        // Try the "large" size URL, falling back to the "full" size URL below.
31866        src = media.sizes?.large?.url ||
31867        // eslint-disable-next-line camelcase
31868        media.media_details?.sizes?.large?.source_url;
31869      }
31870      let newHref = href;
31871      if (linkDestination === media_text_constants_LINK_DESTINATION_MEDIA) {
31872        // Update the media link.
31873        newHref = media.url;
31874      }
31875  
31876      // Check if the image is linked to the attachment page.
31877      if (linkDestination === media_text_constants_LINK_DESTINATION_ATTACHMENT) {
31878        // Update the media link.
31879        newHref = media.link;
31880      }
31881      setAttributes({
31882        mediaAlt: media.alt,
31883        mediaId: media.id,
31884        mediaType,
31885        mediaUrl: src || media.url,
31886        mediaLink: media.link || undefined,
31887        href: newHref,
31888        focalPoint: undefined
31889      });
31890    };
31891  }
31892  function MediaTextEdit({
31893    attributes,
31894    isSelected,
31895    setAttributes,
31896    context: {
31897      postId,
31898      postType
31899    }
31900  }) {
31901    const {
31902      focalPoint,
31903      href,
31904      imageFill,
31905      isStackedOnMobile,
31906      linkClass,
31907      linkDestination,
31908      linkTarget,
31909      mediaAlt,
31910      mediaId,
31911      mediaPosition,
31912      mediaType,
31913      mediaUrl,
31914      mediaWidth,
31915      rel,
31916      verticalAlignment,
31917      allowedBlocks,
31918      useFeaturedImage
31919    } = attributes;
31920    const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
31921    const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
31922    const featuredImageMedia = (0,external_wp_data_namespaceObject.useSelect)(select => featuredImage && select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
31923      context: 'view'
31924    }), [featuredImage]);
31925    const featuredImageURL = useFeaturedImage ? featuredImageMedia?.source_url : '';
31926    const featuredImageAlt = useFeaturedImage ? featuredImageMedia?.alt_text : '';
31927    const toggleUseFeaturedImage = () => {
31928      setAttributes({
31929        imageFill: false,
31930        mediaType: 'image',
31931        mediaId: undefined,
31932        mediaUrl: undefined,
31933        mediaAlt: undefined,
31934        mediaLink: undefined,
31935        linkDestination: undefined,
31936        linkTarget: undefined,
31937        linkClass: undefined,
31938        rel: undefined,
31939        href: undefined,
31940        useFeaturedImage: !useFeaturedImage
31941      });
31942    };
31943    const {
31944      imageSizes,
31945      image
31946    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
31947      const {
31948        getSettings
31949      } = select(external_wp_blockEditor_namespaceObject.store);
31950      return {
31951        image: mediaId && isSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(mediaId, {
31952          context: 'view'
31953        }) : null,
31954        imageSizes: getSettings()?.imageSizes
31955      };
31956    }, [isSelected, mediaId]);
31957    const refMedia = (0,external_wp_element_namespaceObject.useRef)();
31958    const imperativeFocalPointPreview = value => {
31959      const {
31960        style
31961      } = refMedia.current;
31962      const {
31963        x,
31964        y
31965      } = value;
31966      style.objectPosition = `$x * 100}% $y * 100}%`;
31967    };
31968    const [temporaryMediaWidth, setTemporaryMediaWidth] = (0,external_wp_element_namespaceObject.useState)(null);
31969    const onSelectMedia = edit_attributesFromMedia({
31970      attributes,
31971      setAttributes
31972    });
31973    const onSetHref = props => {
31974      setAttributes(props);
31975    };
31976    const onWidthChange = width => {
31977      setTemporaryMediaWidth(applyWidthConstraints(width));
31978    };
31979    const commitWidthChange = width => {
31980      setAttributes({
31981        mediaWidth: applyWidthConstraints(width)
31982      });
31983      setTemporaryMediaWidth(null);
31984    };
31985    const classNames = dist_clsx({
31986      'has-media-on-the-right': 'right' === mediaPosition,
31987      'is-selected': isSelected,
31988      'is-stacked-on-mobile': isStackedOnMobile,
31989      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31990      'is-image-fill-element': imageFill
31991    });
31992    const widthString = `$temporaryMediaWidth || mediaWidth}%`;
31993    const gridTemplateColumns = 'right' === mediaPosition ? `1fr $widthString}` : `$widthString} 1fr`;
31994    const style = {
31995      gridTemplateColumns,
31996      msGridColumns: gridTemplateColumns
31997    };
31998    const onMediaAltChange = newMediaAlt => {
31999      setAttributes({
32000        mediaAlt: newMediaAlt
32001      });
32002    };
32003    const onVerticalAlignmentChange = alignment => {
32004      setAttributes({
32005        verticalAlignment: alignment
32006      });
32007    };
32008    const imageSizeOptions = imageSizes.filter(({
32009      slug
32010    }) => getImageSourceUrlBySizeSlug(image, slug)).map(({
32011      name,
32012      slug
32013    }) => ({
32014      value: slug,
32015      label: name
32016    }));
32017    const updateImage = newMediaSizeSlug => {
32018      const newUrl = getImageSourceUrlBySizeSlug(image, newMediaSizeSlug);
32019      if (!newUrl) {
32020        return null;
32021      }
32022      setAttributes({
32023        mediaUrl: newUrl,
32024        mediaSizeSlug: newMediaSizeSlug
32025      });
32026    };
32027    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
32028    const mediaTextGeneralSettings = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
32029      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
32030      resetAll: () => {
32031        setAttributes({
32032          isStackedOnMobile: true,
32033          imageFill: false,
32034          mediaAlt: '',
32035          focalPoint: undefined,
32036          mediaWidth: 50,
32037          mediaSizeSlug: undefined
32038        });
32039      },
32040      dropdownMenuProps: dropdownMenuProps,
32041      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32042        label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
32043        isShownByDefault: true,
32044        hasValue: () => mediaWidth !== 50,
32045        onDeselect: () => setAttributes({
32046          mediaWidth: 50
32047        }),
32048        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
32049          __nextHasNoMarginBottom: true,
32050          __next40pxDefaultSize: true,
32051          label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
32052          value: temporaryMediaWidth || mediaWidth,
32053          onChange: commitWidthChange,
32054          min: WIDTH_CONSTRAINT_PERCENTAGE,
32055          max: 100 - WIDTH_CONSTRAINT_PERCENTAGE
32056        })
32057      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32058        label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
32059        isShownByDefault: true,
32060        hasValue: () => !isStackedOnMobile,
32061        onDeselect: () => setAttributes({
32062          isStackedOnMobile: true
32063        }),
32064        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
32065          __nextHasNoMarginBottom: true,
32066          label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
32067          checked: isStackedOnMobile,
32068          onChange: () => setAttributes({
32069            isStackedOnMobile: !isStackedOnMobile
32070          })
32071        })
32072      }), mediaType === 'image' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32073        label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill'),
32074        isShownByDefault: true,
32075        hasValue: () => !!imageFill,
32076        onDeselect: () => setAttributes({
32077          imageFill: false
32078        }),
32079        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
32080          __nextHasNoMarginBottom: true,
32081          label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill'),
32082          checked: !!imageFill,
32083          onChange: () => setAttributes({
32084            imageFill: !imageFill
32085          })
32086        })
32087      }), imageFill && (mediaUrl || featuredImageURL) && mediaType === 'image' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32088        label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
32089        isShownByDefault: true,
32090        hasValue: () => !!focalPoint,
32091        onDeselect: () => setAttributes({
32092          focalPoint: undefined
32093        }),
32094        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FocalPointPicker, {
32095          __nextHasNoMarginBottom: true,
32096          label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
32097          url: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
32098          value: focalPoint,
32099          onChange: value => setAttributes({
32100            focalPoint: value
32101          }),
32102          onDragStart: imperativeFocalPointPreview,
32103          onDrag: imperativeFocalPointPreview
32104        })
32105      }), mediaType === 'image' && mediaUrl && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32106        label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
32107        isShownByDefault: true,
32108        hasValue: () => !!mediaAlt,
32109        onDeselect: () => setAttributes({
32110          mediaAlt: ''
32111        }),
32112        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
32113          __nextHasNoMarginBottom: true,
32114          label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
32115          value: mediaAlt,
32116          onChange: onMediaAltChange,
32117          help: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
32118            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
32119              href:
32120              // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
32121              (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
32122              children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
32123            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
32124          })
32125        })
32126      }), mediaType === 'image' && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ResolutionTool, {
32127        value: mediaSizeSlug,
32128        options: imageSizeOptions,
32129        onChange: updateImage
32130      })]
32131    });
32132    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
32133      className: classNames,
32134      style
32135    });
32136    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
32137      className: 'wp-block-media-text__content'
32138    }, {
32139      template: constants_TEMPLATE,
32140      allowedBlocks
32141    });
32142    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
32143    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
32144      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
32145        children: mediaTextGeneralSettings
32146      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
32147        group: "block",
32148        children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
32149          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentControl, {
32150            onChange: onVerticalAlignmentChange,
32151            value: verticalAlignment
32152          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
32153            icon: pull_left,
32154            title: (0,external_wp_i18n_namespaceObject.__)('Show media on left'),
32155            isActive: mediaPosition === 'left',
32156            onClick: () => setAttributes({
32157              mediaPosition: 'left'
32158            })
32159          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
32160            icon: pull_right,
32161            title: (0,external_wp_i18n_namespaceObject.__)('Show media on right'),
32162            isActive: mediaPosition === 'right',
32163            onClick: () => setAttributes({
32164              mediaPosition: 'right'
32165            })
32166          })]
32167        }), mediaType === 'image' && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
32168          url: href || '',
32169          onChangeUrl: onSetHref,
32170          linkDestination: linkDestination,
32171          mediaType: mediaType,
32172          mediaUrl: image && image.source_url,
32173          mediaLink: image && image.link,
32174          linkTarget: linkTarget,
32175          linkClass: linkClass,
32176          rel: rel
32177        })]
32178      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32179        ...blockProps,
32180        children: [mediaPosition === 'right' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32181          ...innerBlocksProps
32182        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(media_container, {
32183          className: "wp-block-media-text__media",
32184          onSelectMedia: onSelectMedia,
32185          onWidthChange: onWidthChange,
32186          commitWidthChange: commitWidthChange,
32187          refMedia: refMedia,
32188          enableResize: blockEditingMode === 'default',
32189          toggleUseFeaturedImage: toggleUseFeaturedImage,
32190          focalPoint,
32191          imageFill,
32192          isSelected,
32193          isStackedOnMobile,
32194          mediaAlt,
32195          mediaId,
32196          mediaPosition,
32197          mediaType,
32198          mediaUrl,
32199          mediaWidth,
32200          useFeaturedImage,
32201          featuredImageURL,
32202          featuredImageAlt
32203        }), mediaPosition !== 'right' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32204          ...innerBlocksProps
32205        })]
32206      })]
32207    });
32208  }
32209  /* harmony default export */ const media_text_edit = (MediaTextEdit);
32210  
32211  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/save.js
32212  /**
32213   * External dependencies
32214   */
32215  
32216  
32217  /**
32218   * WordPress dependencies
32219   */
32220  
32221  
32222  /**
32223   * Internal dependencies
32224   */
32225  
32226  
32227  
32228  
32229  const save_DEFAULT_MEDIA_WIDTH = 50;
32230  const save_noop = () => {};
32231  function media_text_save_save({
32232    attributes
32233  }) {
32234    const {
32235      isStackedOnMobile,
32236      mediaAlt,
32237      mediaPosition,
32238      mediaType,
32239      mediaUrl,
32240      mediaWidth,
32241      mediaId,
32242      verticalAlignment,
32243      imageFill,
32244      focalPoint,
32245      linkClass,
32246      href,
32247      linkTarget,
32248      rel
32249    } = attributes;
32250    const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
32251    const newRel = !rel ? undefined : rel;
32252    const imageClasses = dist_clsx({
32253      [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
32254      [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
32255    });
32256    const positionStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
32257    let image = mediaUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32258      src: mediaUrl,
32259      alt: mediaAlt,
32260      className: imageClasses || null,
32261      style: positionStyles
32262    }) : null;
32263    if (href) {
32264      image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32265        className: linkClass,
32266        href: href,
32267        target: linkTarget,
32268        rel: newRel,
32269        children: image
32270      });
32271    }
32272    const mediaTypeRenders = {
32273      image: () => image,
32274      video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32275        controls: true,
32276        src: mediaUrl
32277      })
32278    };
32279    const className = dist_clsx({
32280      'has-media-on-the-right': 'right' === mediaPosition,
32281      'is-stacked-on-mobile': isStackedOnMobile,
32282      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32283      'is-image-fill-element': imageFill
32284    });
32285    let gridTemplateColumns;
32286    if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) {
32287      gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32288    }
32289    const style = {
32290      gridTemplateColumns
32291    };
32292    if ('right' === mediaPosition) {
32293      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32294        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32295          className,
32296          style
32297        }),
32298        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32299          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32300            className: 'wp-block-media-text__content'
32301          })
32302        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32303          className: "wp-block-media-text__media",
32304          children: (mediaTypeRenders[mediaType] || save_noop)()
32305        })]
32306      });
32307    }
32308    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32309      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32310        className,
32311        style
32312      }),
32313      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32314        className: "wp-block-media-text__media",
32315        children: (mediaTypeRenders[mediaType] || save_noop)()
32316      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32317        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32318          className: 'wp-block-media-text__content'
32319        })
32320      })]
32321    });
32322  }
32323  
32324  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js
32325  /**
32326   * WordPress dependencies
32327   */
32328  
32329  const media_text_transforms_transforms = {
32330    from: [{
32331      type: 'block',
32332      blocks: ['core/image'],
32333      transform: ({
32334        alt,
32335        url,
32336        id,
32337        anchor
32338      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
32339        mediaAlt: alt,
32340        mediaId: id,
32341        mediaUrl: url,
32342        mediaType: 'image',
32343        anchor
32344      })
32345    }, {
32346      type: 'block',
32347      blocks: ['core/video'],
32348      transform: ({
32349        src,
32350        id,
32351        anchor
32352      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
32353        mediaId: id,
32354        mediaUrl: src,
32355        mediaType: 'video',
32356        anchor
32357      })
32358    }, {
32359      type: 'block',
32360      blocks: ['core/cover'],
32361      transform: ({
32362        align,
32363        alt,
32364        anchor,
32365        backgroundType,
32366        customGradient,
32367        customOverlayColor,
32368        gradient,
32369        id,
32370        overlayColor,
32371        style,
32372        textColor,
32373        url
32374      }, innerBlocks) => {
32375        let additionalAttributes = {};
32376        if (customGradient) {
32377          additionalAttributes = {
32378            style: {
32379              color: {
32380                gradient: customGradient
32381              }
32382            }
32383          };
32384        } else if (customOverlayColor) {
32385          additionalAttributes = {
32386            style: {
32387              color: {
32388                background: customOverlayColor
32389              }
32390            }
32391          };
32392        }
32393  
32394        // Maintain custom text color block support value.
32395        if (style?.color?.text) {
32396          additionalAttributes.style = {
32397            color: {
32398              ...additionalAttributes.style?.color,
32399              text: style.color.text
32400            }
32401          };
32402        }
32403        return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
32404          align,
32405          anchor,
32406          backgroundColor: overlayColor,
32407          gradient,
32408          mediaAlt: alt,
32409          mediaId: id,
32410          mediaType: backgroundType,
32411          mediaUrl: url,
32412          textColor,
32413          ...additionalAttributes
32414        }, innerBlocks);
32415      }
32416    }],
32417    to: [{
32418      type: 'block',
32419      blocks: ['core/image'],
32420      isMatch: ({
32421        mediaType,
32422        mediaUrl
32423      }) => {
32424        return !mediaUrl || mediaType === 'image';
32425      },
32426      transform: ({
32427        mediaAlt,
32428        mediaId,
32429        mediaUrl,
32430        anchor
32431      }) => {
32432        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
32433          alt: mediaAlt,
32434          id: mediaId,
32435          url: mediaUrl,
32436          anchor
32437        });
32438      }
32439    }, {
32440      type: 'block',
32441      blocks: ['core/video'],
32442      isMatch: ({
32443        mediaType,
32444        mediaUrl
32445      }) => {
32446        return !mediaUrl || mediaType === 'video';
32447      },
32448      transform: ({
32449        mediaId,
32450        mediaUrl,
32451        anchor
32452      }) => {
32453        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
32454          id: mediaId,
32455          src: mediaUrl,
32456          anchor
32457        });
32458      }
32459    }, {
32460      type: 'block',
32461      blocks: ['core/cover'],
32462      transform: ({
32463        align,
32464        anchor,
32465        backgroundColor,
32466        focalPoint,
32467        gradient,
32468        mediaAlt,
32469        mediaId,
32470        mediaType,
32471        mediaUrl,
32472        style,
32473        textColor
32474      }, innerBlocks) => {
32475        const additionalAttributes = {};
32476  
32477        // Migrate the background styles or gradient to Cover's custom
32478        // gradient and overlay properties.
32479        if (style?.color?.gradient) {
32480          additionalAttributes.customGradient = style.color.gradient;
32481        } else if (style?.color?.background) {
32482          additionalAttributes.customOverlayColor = style.color.background;
32483        }
32484  
32485        // Maintain custom text color support style.
32486        if (style?.color?.text) {
32487          additionalAttributes.style = {
32488            color: {
32489              text: style.color.text
32490            }
32491          };
32492        }
32493        const coverAttributes = {
32494          align,
32495          alt: mediaAlt,
32496          anchor,
32497          backgroundType: mediaType,
32498          dimRatio: !!mediaUrl ? 50 : 100,
32499          focalPoint,
32500          gradient,
32501          id: mediaId,
32502          overlayColor: backgroundColor,
32503          textColor,
32504          url: mediaUrl,
32505          ...additionalAttributes
32506        };
32507        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', coverAttributes, innerBlocks);
32508      }
32509    }]
32510  };
32511  /* harmony default export */ const media_text_transforms = (media_text_transforms_transforms);
32512  
32513  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/index.js
32514  /**
32515   * WordPress dependencies
32516   */
32517  
32518  
32519  
32520  /**
32521   * Internal dependencies
32522   */
32523  
32524  
32525  
32526  const media_text_metadata = {
32527    $schema: "https://schemas.wp.org/trunk/block.json",
32528    apiVersion: 3,
32529    name: "core/media-text",
32530    title: "Media & Text",
32531    category: "media",
32532    description: "Set media and words side-by-side for a richer layout.",
32533    keywords: ["image", "video"],
32534    textdomain: "default",
32535    attributes: {
32536      align: {
32537        type: "string",
32538        "default": "none"
32539      },
32540      mediaAlt: {
32541        type: "string",
32542        source: "attribute",
32543        selector: "figure img",
32544        attribute: "alt",
32545        "default": "",
32546        role: "content"
32547      },
32548      mediaPosition: {
32549        type: "string",
32550        "default": "left"
32551      },
32552      mediaId: {
32553        type: "number",
32554        role: "content"
32555      },
32556      mediaUrl: {
32557        type: "string",
32558        source: "attribute",
32559        selector: "figure video,figure img",
32560        attribute: "src",
32561        role: "content"
32562      },
32563      mediaLink: {
32564        type: "string"
32565      },
32566      linkDestination: {
32567        type: "string"
32568      },
32569      linkTarget: {
32570        type: "string",
32571        source: "attribute",
32572        selector: "figure a",
32573        attribute: "target"
32574      },
32575      href: {
32576        type: "string",
32577        source: "attribute",
32578        selector: "figure a",
32579        attribute: "href",
32580        role: "content"
32581      },
32582      rel: {
32583        type: "string",
32584        source: "attribute",
32585        selector: "figure a",
32586        attribute: "rel"
32587      },
32588      linkClass: {
32589        type: "string",
32590        source: "attribute",
32591        selector: "figure a",
32592        attribute: "class"
32593      },
32594      mediaType: {
32595        type: "string",
32596        role: "content"
32597      },
32598      mediaWidth: {
32599        type: "number",
32600        "default": 50
32601      },
32602      mediaSizeSlug: {
32603        type: "string"
32604      },
32605      isStackedOnMobile: {
32606        type: "boolean",
32607        "default": true
32608      },
32609      verticalAlignment: {
32610        type: "string"
32611      },
32612      imageFill: {
32613        type: "boolean"
32614      },
32615      focalPoint: {
32616        type: "object"
32617      },
32618      allowedBlocks: {
32619        type: "array"
32620      },
32621      useFeaturedImage: {
32622        type: "boolean",
32623        "default": false
32624      }
32625    },
32626    usesContext: ["postId", "postType"],
32627    supports: {
32628      anchor: true,
32629      align: ["wide", "full"],
32630      html: false,
32631      __experimentalBorder: {
32632        color: true,
32633        radius: true,
32634        style: true,
32635        width: true,
32636        __experimentalDefaultControls: {
32637          color: true,
32638          radius: true,
32639          style: true,
32640          width: true
32641        }
32642      },
32643      color: {
32644        gradients: true,
32645        heading: true,
32646        link: true,
32647        __experimentalDefaultControls: {
32648          background: true,
32649          text: true
32650        }
32651      },
32652      spacing: {
32653        margin: true,
32654        padding: true
32655      },
32656      typography: {
32657        fontSize: true,
32658        lineHeight: true,
32659        __experimentalFontFamily: true,
32660        __experimentalFontWeight: true,
32661        __experimentalFontStyle: true,
32662        __experimentalTextTransform: true,
32663        __experimentalTextDecoration: true,
32664        __experimentalLetterSpacing: true,
32665        __experimentalDefaultControls: {
32666          fontSize: true
32667        }
32668      },
32669      interactivity: {
32670        clientNavigation: true
32671      }
32672    },
32673    editorStyle: "wp-block-media-text-editor",
32674    style: "wp-block-media-text"
32675  };
32676  
32677  
32678  const {
32679    name: media_text_name
32680  } = media_text_metadata;
32681  
32682  const media_text_settings = {
32683    icon: media_and_text,
32684    example: {
32685      viewportWidth: 601,
32686      // Columns collapse "@media (max-width: 600px)".
32687      attributes: {
32688        mediaType: 'image',
32689        mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg'
32690      },
32691      innerBlocks: [{
32692        name: 'core/paragraph',
32693        attributes: {
32694          content: (0,external_wp_i18n_namespaceObject.__)('The wren<br>Earns his living<br>Noiselessly.')
32695        }
32696      }, {
32697        name: 'core/paragraph',
32698        attributes: {
32699          content: (0,external_wp_i18n_namespaceObject.__)('— Kobayashi Issa (一茶)')
32700        }
32701      }]
32702    },
32703    transforms: media_text_transforms,
32704    edit: media_text_edit,
32705    save: media_text_save_save,
32706    deprecated: media_text_deprecated
32707  };
32708  const media_text_init = () => initBlock({
32709    name: media_text_name,
32710    metadata: media_text_metadata,
32711    settings: media_text_settings
32712  });
32713  
32714  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/edit.js
32715  /**
32716   * WordPress dependencies
32717   */
32718  
32719  
32720  
32721  
32722  
32723  
32724  
32725  
32726  
32727  function MissingEdit({
32728    attributes,
32729    clientId
32730  }) {
32731    const {
32732      originalName,
32733      originalUndelimitedContent
32734    } = attributes;
32735    const hasContent = !!originalUndelimitedContent;
32736    const {
32737      hasFreeformBlock,
32738      hasHTMLBlock
32739    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32740      const {
32741        canInsertBlockType,
32742        getBlockRootClientId
32743      } = select(external_wp_blockEditor_namespaceObject.store);
32744      return {
32745        hasFreeformBlock: canInsertBlockType('core/freeform', getBlockRootClientId(clientId)),
32746        hasHTMLBlock: canInsertBlockType('core/html', getBlockRootClientId(clientId))
32747      };
32748    }, [clientId]);
32749    const {
32750      replaceBlock
32751    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
32752    function convertToHTML() {
32753      replaceBlock(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
32754        content: originalUndelimitedContent
32755      }));
32756    }
32757    const actions = [];
32758    let messageHTML;
32759    const convertToHtmlButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
32760      __next40pxDefaultSize: true,
32761      onClick: convertToHTML,
32762      variant: "primary",
32763      children: (0,external_wp_i18n_namespaceObject.__)('Keep as HTML')
32764    }, "convert");
32765    if (hasContent && !hasFreeformBlock && !originalName) {
32766      if (hasHTMLBlock) {
32767        messageHTML = (0,external_wp_i18n_namespaceObject.__)('It appears you are trying to use the deprecated Classic block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely. Alternatively, you can refresh the page to use the Classic block.');
32768        actions.push(convertToHtmlButton);
32769      } else {
32770        messageHTML = (0,external_wp_i18n_namespaceObject.__)('It appears you are trying to use the deprecated Classic block. You can leave this block intact, or remove it entirely. Alternatively, you can refresh the page to use the Classic block.');
32771      }
32772    } else if (hasContent && hasHTMLBlock) {
32773      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */
32774      (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the "%s" block. You can leave it as-is, convert it to custom HTML, or remove it.'), originalName);
32775      actions.push(convertToHtmlButton);
32776    } else {
32777      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */
32778      (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the "%s" block. You can leave it as-is or remove it.'), originalName);
32779    }
32780    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32781      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
32782        className: 'has-warning'
32783      }),
32784      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
32785        actions: actions,
32786        children: messageHTML
32787      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
32788        children: (0,external_wp_dom_namespaceObject.safeHTML)(originalUndelimitedContent)
32789      })]
32790    });
32791  }
32792  
32793  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/save.js
32794  /**
32795   * WordPress dependencies
32796   */
32797  
32798  
32799  function missing_save_save({
32800    attributes
32801  }) {
32802    // Preserve the missing block's content.
32803    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
32804      children: attributes.originalContent
32805    });
32806  }
32807  
32808  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/index.js
32809  /**
32810   * WordPress dependencies
32811   */
32812  
32813  
32814  /**
32815   * Internal dependencies
32816   */
32817  
32818  
32819  const missing_metadata = {
32820    $schema: "https://schemas.wp.org/trunk/block.json",
32821    apiVersion: 3,
32822    name: "core/missing",
32823    title: "Unsupported",
32824    category: "text",
32825    description: "Your site doesn\u2019t include support for this block.",
32826    textdomain: "default",
32827    attributes: {
32828      originalName: {
32829        type: "string"
32830      },
32831      originalUndelimitedContent: {
32832        type: "string"
32833      },
32834      originalContent: {
32835        type: "string",
32836        source: "raw"
32837      }
32838    },
32839    supports: {
32840      className: false,
32841      customClassName: false,
32842      inserter: false,
32843      html: false,
32844      reusable: false,
32845      interactivity: {
32846        clientNavigation: true
32847      }
32848    }
32849  };
32850  
32851  const {
32852    name: missing_name
32853  } = missing_metadata;
32854  
32855  const missing_settings = {
32856    name: missing_name,
32857    __experimentalLabel(attributes, {
32858      context
32859    }) {
32860      if (context === 'accessibility') {
32861        const {
32862          originalName
32863        } = attributes;
32864        const originalBlockType = originalName ? (0,external_wp_blocks_namespaceObject.getBlockType)(originalName) : undefined;
32865        if (originalBlockType) {
32866          return originalBlockType.settings.title || originalName;
32867        }
32868        return '';
32869      }
32870    },
32871    edit: MissingEdit,
32872    save: missing_save_save
32873  };
32874  const missing_init = () => initBlock({
32875    name: missing_name,
32876    metadata: missing_metadata,
32877    settings: missing_settings
32878  });
32879  
32880  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more.js
32881  /**
32882   * WordPress dependencies
32883   */
32884  
32885  
32886  const more = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
32887    viewBox: "0 0 24 24",
32888    xmlns: "http://www.w3.org/2000/svg",
32889    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32890      d: "M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z"
32891    })
32892  });
32893  /* harmony default export */ const library_more = (more);
32894  
32895  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/edit.js
32896  /**
32897   * WordPress dependencies
32898   */
32899  
32900  
32901  
32902  
32903  
32904  
32905  
32906  
32907  const DEFAULT_TEXT = (0,external_wp_i18n_namespaceObject.__)('Read more');
32908  function MoreEdit({
32909    attributes: {
32910      customText,
32911      noTeaser
32912    },
32913    insertBlocksAfter,
32914    setAttributes
32915  }) {
32916    const onChangeInput = event => {
32917      setAttributes({
32918        customText: event.target.value
32919      });
32920    };
32921    const onKeyDown = ({
32922      keyCode
32923    }) => {
32924      if (keyCode === external_wp_keycodes_namespaceObject.ENTER) {
32925        insertBlocksAfter([(0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())]);
32926      }
32927    };
32928    const getHideExcerptHelp = checked => checked ? (0,external_wp_i18n_namespaceObject.__)('The excerpt is hidden.') : (0,external_wp_i18n_namespaceObject.__)('The excerpt is visible.');
32929    const toggleHideExcerpt = () => setAttributes({
32930      noTeaser: !noTeaser
32931    });
32932    const style = {
32933      width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em`
32934    };
32935    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
32936      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
32937        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
32938          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
32939            __nextHasNoMarginBottom: true,
32940            label: (0,external_wp_i18n_namespaceObject.__)('Hide the excerpt on the full content page'),
32941            checked: !!noTeaser,
32942            onChange: toggleHideExcerpt,
32943            help: getHideExcerptHelp
32944          })
32945        })
32946      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32947        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
32948        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
32949          "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
32950          type: "text",
32951          value: customText,
32952          placeholder: DEFAULT_TEXT,
32953          onChange: onChangeInput,
32954          onKeyDown: onKeyDown,
32955          style: style
32956        })
32957      })]
32958    });
32959  }
32960  
32961  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/save.js
32962  /**
32963   * WordPress dependencies
32964   */
32965  
32966  
32967  function more_save_save({
32968    attributes: {
32969      customText,
32970      noTeaser
32971    }
32972  }) {
32973    const moreTag = customText ? `<!--more $customText}-->` : '<!--more-->';
32974    const noTeaserTag = noTeaser ? '<!--noteaser-->' : '';
32975    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
32976      children: [moreTag, noTeaserTag].filter(Boolean).join('\n')
32977    });
32978  }
32979  
32980  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/transforms.js
32981  /**
32982   * WordPress dependencies
32983   */
32984  
32985  const more_transforms_transforms = {
32986    from: [{
32987      type: 'raw',
32988      schema: {
32989        'wp-block': {
32990          attributes: ['data-block']
32991        }
32992      },
32993      isMatch: node => node.dataset && node.dataset.block === 'core/more',
32994      transform(node) {
32995        const {
32996          customText,
32997          noTeaser
32998        } = node.dataset;
32999        const attrs = {};
33000        // Don't copy unless defined and not an empty string.
33001        if (customText) {
33002          attrs.customText = customText;
33003        }
33004        // Special handling for boolean.
33005        if (noTeaser === '') {
33006          attrs.noTeaser = true;
33007        }
33008        return (0,external_wp_blocks_namespaceObject.createBlock)('core/more', attrs);
33009      }
33010    }]
33011  };
33012  /* harmony default export */ const more_transforms = (more_transforms_transforms);
33013  
33014  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/index.js
33015  /**
33016   * WordPress dependencies
33017   */
33018  
33019  
33020  /**
33021   * Internal dependencies
33022   */
33023  
33024  
33025  const more_metadata = {
33026    $schema: "https://schemas.wp.org/trunk/block.json",
33027    apiVersion: 3,
33028    name: "core/more",
33029    title: "More",
33030    category: "design",
33031    description: "Content before this block will be shown in the excerpt on your archives page.",
33032    keywords: ["read more"],
33033    textdomain: "default",
33034    attributes: {
33035      customText: {
33036        type: "string",
33037        "default": ""
33038      },
33039      noTeaser: {
33040        type: "boolean",
33041        "default": false
33042      }
33043    },
33044    supports: {
33045      customClassName: false,
33046      className: false,
33047      html: false,
33048      multiple: false,
33049      interactivity: {
33050        clientNavigation: true
33051      }
33052    },
33053    editorStyle: "wp-block-more-editor"
33054  };
33055  
33056  
33057  const {
33058    name: more_name
33059  } = more_metadata;
33060  
33061  const more_settings = {
33062    icon: library_more,
33063    example: {},
33064    __experimentalLabel(attributes, {
33065      context
33066    }) {
33067      const customName = attributes?.metadata?.name;
33068      if (context === 'list-view' && customName) {
33069        return customName;
33070      }
33071      if (context === 'accessibility') {
33072        return attributes.customText;
33073      }
33074    },
33075    transforms: more_transforms,
33076    edit: MoreEdit,
33077    save: more_save_save
33078  };
33079  const more_init = () => initBlock({
33080    name: more_name,
33081    metadata: more_metadata,
33082    settings: more_settings
33083  });
33084  
33085  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/navigation.js
33086  /**
33087   * WordPress dependencies
33088   */
33089  
33090  
33091  const navigation = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
33092    viewBox: "0 0 24 24",
33093    xmlns: "http://www.w3.org/2000/svg",
33094    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
33095      d: "M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z"
33096    })
33097  });
33098  /* harmony default export */ const library_navigation = (navigation);
33099  
33100  ;// CONCATENATED MODULE: external ["wp","a11y"]
33101  const external_wp_a11y_namespaceObject = window["wp"]["a11y"];
33102  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
33103  /**
33104   * WordPress dependencies
33105   */
33106  
33107  
33108  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
33109  
33110  /**
33111   * Return an SVG icon.
33112   *
33113   * @param {IconProps}                                 props icon is the SVG component to render
33114   *                                                          size is a number specifiying the icon size in pixels
33115   *                                                          Other props will be passed to wrapped SVG component
33116   * @param {import('react').ForwardedRef<HTMLElement>} ref   The forwarded ref to the SVG element.
33117   *
33118   * @return {JSX.Element}  Icon component
33119   */
33120  function Icon({
33121    icon,
33122    size = 24,
33123    ...props
33124  }, ref) {
33125    return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
33126      width: size,
33127      height: size,
33128      ...props,
33129      ref
33130    });
33131  }
33132  /* harmony default export */ const build_module_icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon));
33133  
33134  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
33135  /**
33136   * WordPress dependencies
33137   */
33138  
33139  
33140  const close_close = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
33141    xmlns: "http://www.w3.org/2000/svg",
33142    viewBox: "0 0 24 24",
33143    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
33144      d: "m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"
33145    })
33146  });
33147  /* harmony default export */ const library_close = (close_close);
33148  
33149  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/constants.js
33150  const constants_DEFAULT_BLOCK = {
33151    name: 'core/navigation-link'
33152  };
33153  const PRIORITIZED_INSERTER_BLOCKS = ['core/navigation-link/page', 'core/navigation-link'];
33154  
33155  // These parameters must be kept aligned with those in
33156  // lib/compat/wordpress-6.3/navigation-block-preloading.php
33157  // and
33158  // edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js
33159  const PRELOADED_NAVIGATION_MENUS_QUERY = {
33160    per_page: 100,
33161    status: ['publish', 'draft'],
33162    order: 'desc',
33163    orderby: 'date'
33164  };
33165  const SELECT_NAVIGATION_MENUS_ARGS = ['postType', 'wp_navigation', PRELOADED_NAVIGATION_MENUS_QUERY];
33166  
33167  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js
33168  /**
33169   * WordPress dependencies
33170   */
33171  
33172  
33173  
33174  /**
33175   * Internal dependencies
33176   */
33177  
33178  function useNavigationMenu(ref) {
33179    const permissions = (0,external_wp_coreData_namespaceObject.useResourcePermissions)({
33180      kind: 'postType',
33181      name: 'wp_navigation',
33182      id: ref
33183    });
33184    const {
33185      navigationMenu,
33186      isNavigationMenuResolved,
33187      isNavigationMenuMissing
33188    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
33189      return selectExistingMenu(select, ref);
33190    }, [ref]);
33191    const {
33192      // Can the user create navigation menus?
33193      canCreate: canCreateNavigationMenus,
33194      // Can the user update the specific navigation menu with the given post ID?
33195      canUpdate: canUpdateNavigationMenu,
33196      // Can the user delete the specific navigation menu with the given post ID?
33197      canDelete: canDeleteNavigationMenu,
33198      isResolving: isResolvingPermissions,
33199      hasResolved: hasResolvedPermissions
33200    } = permissions;
33201    const {
33202      records: navigationMenus,
33203      isResolving: isResolvingNavigationMenus,
33204      hasResolved: hasResolvedNavigationMenus
33205    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', `wp_navigation`, PRELOADED_NAVIGATION_MENUS_QUERY);
33206    const canSwitchNavigationMenu = ref ? navigationMenus?.length > 1 : navigationMenus?.length > 0;
33207    return {
33208      navigationMenu,
33209      isNavigationMenuResolved,
33210      isNavigationMenuMissing,
33211      navigationMenus,
33212      isResolvingNavigationMenus,
33213      hasResolvedNavigationMenus,
33214      canSwitchNavigationMenu,
33215      canUserCreateNavigationMenus: canCreateNavigationMenus,
33216      isResolvingCanUserCreateNavigationMenus: isResolvingPermissions,
33217      hasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,
33218      canUserUpdateNavigationMenu: canUpdateNavigationMenu,
33219      hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
33220      canUserDeleteNavigationMenu: canDeleteNavigationMenu,
33221      hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
33222    };
33223  }
33224  function selectExistingMenu(select, ref) {
33225    if (!ref) {
33226      return {
33227        isNavigationMenuResolved: false,
33228        isNavigationMenuMissing: true
33229      };
33230    }
33231    const {
33232      getEntityRecord,
33233      getEditedEntityRecord,
33234      hasFinishedResolution
33235    } = select(external_wp_coreData_namespaceObject.store);
33236    const args = ['postType', 'wp_navigation', ref];
33237    const navigationMenu = getEntityRecord(...args);
33238    const editedNavigationMenu = getEditedEntityRecord(...args);
33239    const hasResolvedNavigationMenu = hasFinishedResolution('getEditedEntityRecord', args);
33240  
33241    // Only published Navigation posts are considered valid.
33242    // Draft Navigation posts are valid only on the editor,
33243    // requiring a post update to publish to show in frontend.
33244    // To achieve that, index.php must reflect this validation only for published.
33245    const isNavigationMenuPublishedOrDraft = editedNavigationMenu.status === 'publish' || editedNavigationMenu.status === 'draft';
33246    return {
33247      isNavigationMenuResolved: hasResolvedNavigationMenu,
33248      isNavigationMenuMissing: hasResolvedNavigationMenu && (!navigationMenu || !isNavigationMenuPublishedOrDraft),
33249      // getEditedEntityRecord will return the post regardless of status.
33250      // Therefore if the found post is not published then we should ignore it.
33251      navigationMenu: isNavigationMenuPublishedOrDraft ? editedNavigationMenu : null
33252    };
33253  }
33254  
33255  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-entities.js
33256  /**
33257   * WordPress dependencies
33258   */
33259  
33260  
33261  /**
33262   * @typedef {Object} NavigationEntitiesData
33263   * @property {Array|undefined} pages                - a collection of WP Post entity objects of post type "Page".
33264   * @property {boolean}         isResolvingPages     - indicates whether the request to fetch pages is currently resolving.
33265   * @property {boolean}         hasResolvedPages     - indicates whether the request to fetch pages has finished resolving.
33266   * @property {Array|undefined} menus                - a collection of Menu entity objects.
33267   * @property {boolean}         isResolvingMenus     - indicates whether the request to fetch menus is currently resolving.
33268   * @property {boolean}         hasResolvedMenus     - indicates whether the request to fetch menus has finished resolving.
33269   * @property {Array|undefined} menusItems           - a collection of Menu Item entity objects for the current menuId.
33270   * @property {boolean}         hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.
33271   * @property {boolean}         hasPages             - indicates whether there is currently any data for pages.
33272   * @property {boolean}         hasMenus             - indicates whether there is currently any data for menus.
33273   */
33274  
33275  /**
33276   * Manages fetching and resolution state for all entities required
33277   * for the Navigation block.
33278   *
33279   * @param {number} menuId the menu for which to retrieve menuItem data.
33280   * @return { NavigationEntitiesData } the entity data.
33281   */
33282  function useNavigationEntities(menuId) {
33283    const {
33284      records: menus,
33285      isResolving: isResolvingMenus,
33286      hasResolved: hasResolvedMenus
33287    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'menu', {
33288      per_page: -1,
33289      context: 'view'
33290    });
33291    const {
33292      records: pages,
33293      isResolving: isResolvingPages,
33294      hasResolved: hasResolvedPages
33295    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', 'page', {
33296      parent: 0,
33297      order: 'asc',
33298      orderby: 'id',
33299      per_page: -1,
33300      context: 'view'
33301    });
33302    const {
33303      records: menuItems,
33304      hasResolved: hasResolvedMenuItems
33305    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'menuItem', {
33306      menus: menuId,
33307      per_page: -1,
33308      context: 'view'
33309    }, {
33310      enabled: !!menuId
33311    });
33312    return {
33313      pages,
33314      isResolvingPages,
33315      hasResolvedPages,
33316      hasPages: !!(hasResolvedPages && pages?.length),
33317      menus,
33318      isResolvingMenus,
33319      hasResolvedMenus,
33320      hasMenus: !!(hasResolvedMenus && menus?.length),
33321      menuItems,
33322      hasResolvedMenuItems
33323    };
33324  }
33325  
33326  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/placeholder-preview.js
33327  /**
33328   * WordPress dependencies
33329   */
33330  
33331  
33332  
33333  
33334  const PlaceholderPreview = ({
33335    isVisible = true
33336  }) => {
33337    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33338      "aria-hidden": !isVisible ? true : undefined,
33339      className: "wp-block-navigation-placeholder__preview",
33340      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33341        className: "wp-block-navigation-placeholder__actions__indicator",
33342        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
33343          icon: library_navigation
33344        }), (0,external_wp_i18n_namespaceObject.__)('Navigation')]
33345      })
33346    });
33347  };
33348  /* harmony default export */ const placeholder_preview = (PlaceholderPreview);
33349  
33350  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
33351  /**
33352   * WordPress dependencies
33353   */
33354  
33355  
33356  const moreVertical = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
33357    xmlns: "http://www.w3.org/2000/svg",
33358    viewBox: "0 0 24 24",
33359    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
33360      d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
33361    })
33362  });
33363  /* harmony default export */ const more_vertical = (moreVertical);
33364  
33365  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-selector.js
33366  /**
33367   * WordPress dependencies
33368   */
33369  
33370  
33371  
33372  
33373  
33374  
33375  
33376  /**
33377   * Internal dependencies
33378   */
33379  
33380  
33381  
33382  
33383  
33384  function buildMenuLabel(title, id, status) {
33385    if (!title) {
33386      /* translators: %s: the index of the menu in the list of menus. */
33387      return (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('(no title %s)'), id);
33388    }
33389    if (status === 'publish') {
33390      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title);
33391    }
33392    return (0,external_wp_i18n_namespaceObject.sprintf)(
33393    // translators: 1: title of the menu. 2: status of the menu (draft, pending, etc.).
33394    (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$s)'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title), status);
33395  }
33396  function NavigationMenuSelector({
33397    currentMenuId,
33398    onSelectNavigationMenu,
33399    onSelectClassicMenu,
33400    onCreateNew,
33401    actionLabel,
33402    createNavigationMenuIsSuccess,
33403    createNavigationMenuIsError
33404  }) {
33405    /* translators: %s: The name of a menu. */
33406    const createActionLabel = (0,external_wp_i18n_namespaceObject.__)("Create from '%s'");
33407    const [isUpdatingMenuRef, setIsUpdatingMenuRef] = (0,external_wp_element_namespaceObject.useState)(false);
33408    actionLabel = actionLabel || createActionLabel;
33409    const {
33410      menus: classicMenus
33411    } = useNavigationEntities();
33412    const {
33413      navigationMenus,
33414      isResolvingNavigationMenus,
33415      hasResolvedNavigationMenus,
33416      canUserCreateNavigationMenus,
33417      canSwitchNavigationMenu
33418    } = useNavigationMenu();
33419    const [currentTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
33420    const menuChoices = (0,external_wp_element_namespaceObject.useMemo)(() => {
33421      return navigationMenus?.map(({
33422        id,
33423        title,
33424        status
33425      }, index) => {
33426        const label = buildMenuLabel(title?.rendered, index + 1, status);
33427        return {
33428          value: id,
33429          label,
33430          ariaLabel: (0,external_wp_i18n_namespaceObject.sprintf)(actionLabel, label),
33431          disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
33432        };
33433      }) || [];
33434    }, [navigationMenus, actionLabel, isResolvingNavigationMenus, hasResolvedNavigationMenus, isUpdatingMenuRef]);
33435    const hasNavigationMenus = !!navigationMenus?.length;
33436    const hasClassicMenus = !!classicMenus?.length;
33437    const showNavigationMenus = !!canSwitchNavigationMenu;
33438    const showClassicMenus = !!canUserCreateNavigationMenus;
33439    const noMenuSelected = hasNavigationMenus && !currentMenuId;
33440    const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
33441    const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
33442    let selectorLabel = '';
33443    if (isResolvingNavigationMenus) {
33444      selectorLabel = (0,external_wp_i18n_namespaceObject.__)('Loading…');
33445    } else if (noMenuSelected || noBlockMenus || menuUnavailable) {
33446      // Note: classic Menus may be available.
33447      selectorLabel = (0,external_wp_i18n_namespaceObject.__)('Choose or create a Navigation Menu');
33448    } else {
33449      // Current Menu's title.
33450      selectorLabel = currentTitle;
33451    }
33452    (0,external_wp_element_namespaceObject.useEffect)(() => {
33453      if (isUpdatingMenuRef && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
33454        setIsUpdatingMenuRef(false);
33455      }
33456    }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenus, createNavigationMenuIsError, isUpdatingMenuRef, menuUnavailable, noBlockMenus, noMenuSelected]);
33457    const NavigationMenuSelectorDropdown = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
33458      label: selectorLabel,
33459      icon: more_vertical,
33460      toggleProps: {
33461        size: 'small'
33462      },
33463      children: ({
33464        onClose
33465      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33466        children: [showNavigationMenus && hasNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
33467          label: (0,external_wp_i18n_namespaceObject.__)('Menus'),
33468          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItemsChoice, {
33469            value: currentMenuId,
33470            onSelect: menuId => {
33471              onSelectNavigationMenu(menuId);
33472              onClose();
33473            },
33474            choices: menuChoices
33475          })
33476        }), showClassicMenus && hasClassicMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
33477          label: (0,external_wp_i18n_namespaceObject.__)('Import Classic Menus'),
33478          children: classicMenus?.map(menu => {
33479            const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(menu.name);
33480            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
33481              onClick: async () => {
33482                setIsUpdatingMenuRef(true);
33483                await onSelectClassicMenu(menu);
33484                setIsUpdatingMenuRef(false);
33485                onClose();
33486              },
33487              "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(createActionLabel, label),
33488              disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus,
33489              children: label
33490            }, menu.id);
33491          })
33492        }), canUserCreateNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
33493          label: (0,external_wp_i18n_namespaceObject.__)('Tools'),
33494          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
33495            onClick: async () => {
33496              setIsUpdatingMenuRef(true);
33497              await onCreateNew();
33498              setIsUpdatingMenuRef(false);
33499              onClose();
33500            },
33501            disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus,
33502            children: (0,external_wp_i18n_namespaceObject.__)('Create new Menu')
33503          })
33504        })]
33505      })
33506    });
33507    return NavigationMenuSelectorDropdown;
33508  }
33509  /* harmony default export */ const navigation_menu_selector = (NavigationMenuSelector);
33510  
33511  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/index.js
33512  /**
33513   * WordPress dependencies
33514   */
33515  
33516  
33517  
33518  
33519  
33520  
33521  /**
33522   * Internal dependencies
33523   */
33524  
33525  
33526  
33527  
33528  
33529  
33530  function NavigationPlaceholder({
33531    isSelected,
33532    currentMenuId,
33533    clientId,
33534    canUserCreateNavigationMenus = false,
33535    isResolvingCanUserCreateNavigationMenus,
33536    onSelectNavigationMenu,
33537    onSelectClassicMenu,
33538    onCreateEmpty
33539  }) {
33540    const {
33541      isResolvingMenus,
33542      hasResolvedMenus
33543    } = useNavigationEntities();
33544    (0,external_wp_element_namespaceObject.useEffect)(() => {
33545      if (!isSelected) {
33546        return;
33547      }
33548      if (isResolvingMenus) {
33549        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Loading navigation block setup options…'));
33550      }
33551      if (hasResolvedMenus) {
33552        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Navigation block setup options ready.'));
33553      }
33554    }, [hasResolvedMenus, isResolvingMenus, isSelected]);
33555    const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenus;
33556    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33557      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
33558        className: "wp-block-navigation-placeholder",
33559        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder_preview, {
33560          isVisible: !isSelected
33561        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33562          "aria-hidden": !isSelected ? true : undefined,
33563          className: "wp-block-navigation-placeholder__controls",
33564          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33565            className: "wp-block-navigation-placeholder__actions",
33566            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33567              className: "wp-block-navigation-placeholder__actions__indicator",
33568              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
33569                icon: library_navigation
33570              }), " ", (0,external_wp_i18n_namespaceObject.__)('Navigation')]
33571            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {}), isResolvingActions && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigation_menu_selector, {
33572              currentMenuId: currentMenuId,
33573              clientId: clientId,
33574              onSelectNavigationMenu: onSelectNavigationMenu,
33575              onSelectClassicMenu: onSelectClassicMenu
33576            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {}), canUserCreateNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
33577              __next40pxDefaultSize: true,
33578              variant: "tertiary",
33579              onClick: onCreateEmpty,
33580              children: (0,external_wp_i18n_namespaceObject.__)('Start empty')
33581            })]
33582          })
33583        })]
33584      })
33585    });
33586  }
33587  
33588  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/menu.js
33589  /**
33590   * WordPress dependencies
33591   */
33592  
33593  
33594  const menu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
33595    xmlns: "http://www.w3.org/2000/svg",
33596    viewBox: "0 0 24 24",
33597    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
33598      d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"
33599    })
33600  });
33601  /* harmony default export */ const library_menu = (menu);
33602  
33603  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-icon.js
33604  /**
33605   * WordPress dependencies
33606   */
33607  
33608  
33609  
33610  
33611  function OverlayMenuIcon({
33612    icon
33613  }) {
33614    if (icon === 'menu') {
33615      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
33616        icon: library_menu
33617      });
33618    }
33619    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
33620      xmlns: "http://www.w3.org/2000/svg",
33621      viewBox: "0 0 24 24",
33622      width: "24",
33623      height: "24",
33624      "aria-hidden": "true",
33625      focusable: "false",
33626      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Rect, {
33627        x: "4",
33628        y: "7.5",
33629        width: "16",
33630        height: "1.5"
33631      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Rect, {
33632        x: "4",
33633        y: "15",
33634        width: "16",
33635        height: "1.5"
33636      })]
33637    });
33638  }
33639  
33640  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/responsive-wrapper.js
33641  /**
33642   * External dependencies
33643   */
33644  
33645  
33646  /**
33647   * WordPress dependencies
33648   */
33649  
33650  
33651  
33652  
33653  
33654  /**
33655   * Internal dependencies
33656   */
33657  
33658  
33659  
33660  
33661  function ResponsiveWrapper({
33662    children,
33663    id,
33664    isOpen,
33665    isResponsive,
33666    onToggle,
33667    isHiddenByDefault,
33668    overlayBackgroundColor,
33669    overlayTextColor,
33670    hasIcon,
33671    icon
33672  }) {
33673    if (!isResponsive) {
33674      return children;
33675    }
33676    const responsiveContainerClasses = dist_clsx('wp-block-navigation__responsive-container', {
33677      'has-text-color': !!overlayTextColor.color || !!overlayTextColor?.class,
33678      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', overlayTextColor?.slug)]: !!overlayTextColor?.slug,
33679      'has-background': !!overlayBackgroundColor.color || overlayBackgroundColor?.class,
33680      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayBackgroundColor?.slug)]: !!overlayBackgroundColor?.slug,
33681      'is-menu-open': isOpen,
33682      'hidden-by-default': isHiddenByDefault
33683    });
33684    const styles = {
33685      color: !overlayTextColor?.slug && overlayTextColor?.color,
33686      backgroundColor: !overlayBackgroundColor?.slug && overlayBackgroundColor?.color && overlayBackgroundColor.color
33687    };
33688    const openButtonClasses = dist_clsx('wp-block-navigation__responsive-container-open', {
33689      'always-shown': isHiddenByDefault
33690    });
33691    const modalId = `$id}-modal`;
33692    const dialogProps = {
33693      className: 'wp-block-navigation__responsive-dialog',
33694      ...(isOpen && {
33695        role: 'dialog',
33696        'aria-modal': true,
33697        'aria-label': (0,external_wp_i18n_namespaceObject.__)('Menu')
33698      })
33699    };
33700    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33701      children: [!isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
33702        __next40pxDefaultSize: true,
33703        "aria-haspopup": "true",
33704        "aria-label": hasIcon && (0,external_wp_i18n_namespaceObject.__)('Open menu'),
33705        className: openButtonClasses,
33706        onClick: () => onToggle(true),
33707        children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
33708          icon: icon
33709        }), !hasIcon && (0,external_wp_i18n_namespaceObject.__)('Menu')]
33710      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33711        className: responsiveContainerClasses,
33712        style: styles,
33713        id: modalId,
33714        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33715          className: "wp-block-navigation__responsive-close",
33716          tabIndex: "-1",
33717          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33718            ...dialogProps,
33719            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
33720              __next40pxDefaultSize: true,
33721              className: "wp-block-navigation__responsive-container-close",
33722              "aria-label": hasIcon && (0,external_wp_i18n_namespaceObject.__)('Close menu'),
33723              onClick: () => onToggle(false),
33724              children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
33725                icon: library_close
33726              }), !hasIcon && (0,external_wp_i18n_namespaceObject.__)('Close')]
33727            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33728              className: "wp-block-navigation__responsive-container-content",
33729              id: `$modalId}-content`,
33730              children: children
33731            })]
33732          })
33733        })
33734      })]
33735    });
33736  }
33737  
33738  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/inner-blocks.js
33739  /**
33740   * WordPress dependencies
33741   */
33742  
33743  
33744  
33745  
33746  
33747  /**
33748   * Internal dependencies
33749   */
33750  
33751  
33752  
33753  function NavigationInnerBlocks({
33754    clientId,
33755    hasCustomPlaceholder,
33756    orientation,
33757    templateLock
33758  }) {
33759    const {
33760      isImmediateParentOfSelectedBlock,
33761      selectedBlockHasChildren,
33762      isSelected
33763    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
33764      const {
33765        getBlockCount,
33766        hasSelectedInnerBlock,
33767        getSelectedBlockClientId
33768      } = select(external_wp_blockEditor_namespaceObject.store);
33769      const selectedBlockId = getSelectedBlockClientId();
33770      return {
33771        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
33772        selectedBlockHasChildren: !!getBlockCount(selectedBlockId),
33773        // This prop is already available but computing it here ensures it's
33774        // fresh compared to isImmediateParentOfSelectedBlock.
33775        isSelected: selectedBlockId === clientId
33776      };
33777    }, [clientId]);
33778    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_navigation');
33779  
33780    // When the block is selected itself or has a top level item selected that
33781    // doesn't itself have children, show the standard appender. Else show no
33782    // appender.
33783    const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren;
33784    const placeholder = (0,external_wp_element_namespaceObject.useMemo)(() => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder_preview, {}), []);
33785    const hasMenuItems = !!blocks?.length;
33786  
33787    // If there is a `ref` attribute pointing to a `wp_navigation` but
33788    // that menu has no **items** (i.e. empty) then show a placeholder.
33789    // The block must also be selected else the placeholder will display
33790    // alongside the appender.
33791    const showPlaceholder = !hasCustomPlaceholder && !hasMenuItems && !isSelected;
33792    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
33793      className: 'wp-block-navigation__container'
33794    }, {
33795      value: blocks,
33796      onInput,
33797      onChange,
33798      prioritizedInserterBlocks: PRIORITIZED_INSERTER_BLOCKS,
33799      defaultBlock: constants_DEFAULT_BLOCK,
33800      directInsert: true,
33801      orientation,
33802      templateLock,
33803      // As an exception to other blocks which feature nesting, show
33804      // the block appender even when a child block is selected.
33805      // This should be a temporary fix, to be replaced by improvements to
33806      // the sibling inserter.
33807      // See https://github.com/WordPress/gutenberg/issues/37572.
33808      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren ||
33809      // Show the appender while dragging to allow inserting element between item and the appender.
33810      parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
33811      placeholder: showPlaceholder ? placeholder : undefined,
33812      __experimentalCaptureToolbars: true,
33813      __unstableDisableLayoutClassNames: true
33814    });
33815    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33816      ...innerBlocksProps
33817    });
33818  }
33819  
33820  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-name-control.js
33821  /**
33822   * WordPress dependencies
33823   */
33824  
33825  
33826  
33827  
33828  function NavigationMenuNameControl() {
33829    const [title, updateTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
33830    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
33831      __next40pxDefaultSize: true,
33832      __nextHasNoMarginBottom: true,
33833      label: (0,external_wp_i18n_namespaceObject.__)('Menu name'),
33834      value: title,
33835      onChange: updateTitle
33836    });
33837  }
33838  
33839  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/are-blocks-dirty.js
33840  function areBlocksDirty(originalBlocks, blocks) {
33841    return !isDeepEqual(originalBlocks, blocks, (prop, x) => {
33842      // Skip inner blocks of page list during comparison as they
33843      // are **always** controlled and may be updated async due to
33844      // syncing with entity records. Left unchecked this would
33845      // inadvertently trigger the dirty state.
33846      if (x?.name === 'core/page-list' && prop === 'innerBlocks') {
33847        return true;
33848      }
33849    });
33850  }
33851  
33852  /**
33853   * Conditionally compares two candidates for deep equality.
33854   * Provides an option to skip a given property of an object during comparison.
33855   *
33856   * @param {*}                  x          1st candidate for comparison
33857   * @param {*}                  y          2nd candidate for comparison
33858   * @param {Function|undefined} shouldSkip a function which can be used to skip a given property of an object.
33859   * @return {boolean}                      whether the two candidates are deeply equal.
33860   */
33861  const isDeepEqual = (x, y, shouldSkip) => {
33862    if (x === y) {
33863      return true;
33864    } else if (typeof x === 'object' && x !== null && x !== undefined && typeof y === 'object' && y !== null && y !== undefined) {
33865      if (Object.keys(x).length !== Object.keys(y).length) {
33866        return false;
33867      }
33868      for (const prop in x) {
33869        if (y.hasOwnProperty(prop)) {
33870          // Afford skipping a given property of an object.
33871          if (shouldSkip && shouldSkip(prop, x)) {
33872            return true;
33873          }
33874          if (!isDeepEqual(x[prop], y[prop], shouldSkip)) {
33875            return false;
33876          }
33877        } else {
33878          return false;
33879        }
33880      }
33881      return true;
33882    }
33883    return false;
33884  };
33885  
33886  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/unsaved-inner-blocks.js
33887  /**
33888   * WordPress dependencies
33889   */
33890  
33891  
33892  
33893  
33894  
33895  
33896  /**
33897   * Internal dependencies
33898   */
33899  
33900  
33901  
33902  const EMPTY_OBJECT = {};
33903  function UnsavedInnerBlocks({
33904    blocks,
33905    createNavigationMenu,
33906    hasSelection
33907  }) {
33908    const originalBlocksRef = (0,external_wp_element_namespaceObject.useRef)();
33909    (0,external_wp_element_namespaceObject.useEffect)(() => {
33910      // Initially store the uncontrolled inner blocks for
33911      // dirty state comparison.
33912      if (!originalBlocksRef?.current) {
33913        originalBlocksRef.current = blocks;
33914      }
33915    }, [blocks]);
33916  
33917    // If the current inner blocks are different from the original inner blocks
33918    // from the post content then the user has made changes to the inner blocks.
33919    // At this point the inner blocks can be considered "dirty".
33920    // Note: referential equality is not sufficient for comparison as the inner blocks
33921    // of the page list are controlled and may be updated async due to syncing with
33922    // entity records. As a result we need to perform a deep equality check skipping
33923    // the page list's inner blocks.
33924    const innerBlocksAreDirty = areBlocksDirty(originalBlocksRef?.current, blocks);
33925  
33926    // The block will be disabled in a block preview, use this as a way of
33927    // avoiding the side-effects of this component for block previews.
33928    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
33929    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
33930      className: 'wp-block-navigation__container'
33931    }, {
33932      renderAppender: hasSelection ? undefined : false,
33933      defaultBlock: constants_DEFAULT_BLOCK,
33934      directInsert: true
33935    });
33936    const {
33937      isSaving,
33938      hasResolvedAllNavigationMenus
33939    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
33940      if (isDisabled) {
33941        return EMPTY_OBJECT;
33942      }
33943      const {
33944        hasFinishedResolution,
33945        isSavingEntityRecord
33946      } = select(external_wp_coreData_namespaceObject.store);
33947      return {
33948        isSaving: isSavingEntityRecord('postType', 'wp_navigation'),
33949        hasResolvedAllNavigationMenus: hasFinishedResolution('getEntityRecords', SELECT_NAVIGATION_MENUS_ARGS)
33950      };
33951    }, [isDisabled]);
33952  
33953    // Automatically save the uncontrolled blocks.
33954    (0,external_wp_element_namespaceObject.useEffect)(() => {
33955      // The block will be disabled when used in a BlockPreview.
33956      // In this case avoid automatic creation of a wp_navigation post.
33957      // Otherwise the user will be spammed with lots of menus!
33958      //
33959      // Also ensure other navigation menus have loaded so an
33960      // accurate name can be created.
33961      //
33962      // Don't try saving when another save is already
33963      // in progress.
33964      //
33965      // And finally only create the menu when the block is selected,
33966      // which is an indication they want to start editing.
33967      if (isDisabled || isSaving || !hasResolvedAllNavigationMenus || !hasSelection || !innerBlocksAreDirty) {
33968        return;
33969      }
33970      createNavigationMenu(null, blocks);
33971    }, [blocks, createNavigationMenu, isDisabled, isSaving, hasResolvedAllNavigationMenus, innerBlocksAreDirty, hasSelection]);
33972    const Wrapper = isSaving ? external_wp_components_namespaceObject.Disabled : 'div';
33973    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wrapper, {
33974      ...innerBlocksProps
33975    });
33976  }
33977  
33978  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-delete-control.js
33979  /**
33980   * WordPress dependencies
33981   */
33982  
33983  
33984  
33985  
33986  
33987  
33988  
33989  
33990  function NavigationMenuDeleteControl({
33991    onDelete
33992  }) {
33993    const [isConfirmDialogVisible, setIsConfirmDialogVisible] = (0,external_wp_element_namespaceObject.useState)(false);
33994    const id = (0,external_wp_coreData_namespaceObject.useEntityId)('postType', 'wp_navigation');
33995    const {
33996      deleteEntityRecord
33997    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
33998    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33999      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
34000        __next40pxDefaultSize: true,
34001        className: "wp-block-navigation-delete-menu-button",
34002        variant: "secondary",
34003        isDestructive: true,
34004        onClick: () => {
34005          setIsConfirmDialogVisible(true);
34006        },
34007        children: (0,external_wp_i18n_namespaceObject.__)('Delete menu')
34008      }), isConfirmDialogVisible && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
34009        isOpen: true,
34010        onConfirm: () => {
34011          deleteEntityRecord('postType', 'wp_navigation', id, {
34012            force: true
34013          });
34014          onDelete();
34015        },
34016        onCancel: () => {
34017          setIsConfirmDialogVisible(false);
34018        },
34019        confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Delete'),
34020        size: "medium",
34021        children: (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to delete this Navigation Menu?')
34022      })]
34023    });
34024  }
34025  
34026  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-navigation-notice.js
34027  /**
34028   * WordPress dependencies
34029   */
34030  
34031  
34032  
34033  function useNavigationNotice({
34034    name,
34035    message = ''
34036  } = {}) {
34037    const noticeRef = (0,external_wp_element_namespaceObject.useRef)();
34038    const {
34039      createWarningNotice,
34040      removeNotice
34041    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
34042    const showNotice = (0,external_wp_element_namespaceObject.useCallback)(customMsg => {
34043      if (noticeRef.current) {
34044        return;
34045      }
34046      noticeRef.current = name;
34047      createWarningNotice(customMsg || message, {
34048        id: noticeRef.current,
34049        type: 'snackbar'
34050      });
34051    }, [noticeRef, createWarningNotice, message, name]);
34052    const hideNotice = (0,external_wp_element_namespaceObject.useCallback)(() => {
34053      if (!noticeRef.current) {
34054        return;
34055      }
34056      removeNotice(noticeRef.current);
34057      noticeRef.current = null;
34058    }, [noticeRef, removeNotice]);
34059    return [showNotice, hideNotice];
34060  }
34061  /* harmony default export */ const use_navigation_notice = (useNavigationNotice);
34062  
34063  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-preview.js
34064  /**
34065   * WordPress dependencies
34066   */
34067  
34068  
34069  
34070  /**
34071   * Internal dependencies
34072   */
34073  
34074  
34075  
34076  
34077  function OverlayMenuPreview({
34078    setAttributes,
34079    hasIcon,
34080    icon
34081  }) {
34082    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34083      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
34084        __nextHasNoMarginBottom: true,
34085        label: (0,external_wp_i18n_namespaceObject.__)('Show icon button'),
34086        help: (0,external_wp_i18n_namespaceObject.__)('Configure the visual appearance of the button that toggles the overlay menu.'),
34087        onChange: value => setAttributes({
34088          hasIcon: value
34089        }),
34090        checked: hasIcon
34091      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
34092        __next40pxDefaultSize: true,
34093        __nextHasNoMarginBottom: true,
34094        className: "wp-block-navigation__overlay-menu-icon-toggle-group",
34095        label: (0,external_wp_i18n_namespaceObject.__)('Icon'),
34096        value: icon,
34097        onChange: value => setAttributes({
34098          icon: value
34099        }),
34100        isBlock: true,
34101        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
34102          value: "handle",
34103          "aria-label": (0,external_wp_i18n_namespaceObject.__)('handle'),
34104          label: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
34105            icon: "handle"
34106          })
34107        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
34108          value: "menu",
34109          "aria-label": (0,external_wp_i18n_namespaceObject.__)('menu'),
34110          label: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
34111            icon: "menu"
34112          })
34113        })]
34114      })]
34115    });
34116  }
34117  
34118  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/menu-items-to-blocks.js
34119  /**
34120   * WordPress dependencies
34121   */
34122  
34123  
34124  
34125  /**
34126   * Convert a flat menu item structure to a nested blocks structure.
34127   *
34128   * @param {Object[]} menuItems An array of menu items.
34129   *
34130   * @return {WPBlock[]} An array of blocks.
34131   */
34132  function menuItemsToBlocks(menuItems) {
34133    if (!menuItems) {
34134      return null;
34135    }
34136    const menuTree = createDataTree(menuItems);
34137    const blocks = mapMenuItemsToBlocks(menuTree);
34138    return (0,external_wp_hooks_namespaceObject.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems);
34139  }
34140  
34141  /**
34142   * A recursive function that maps menu item nodes to blocks.
34143   *
34144   * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.
34145   * @param {number}          level     An integer representing the nesting level.
34146   * @return {Object} Object containing innerBlocks and mapping.
34147   */
34148  function mapMenuItemsToBlocks(menuItems, level = 0) {
34149    let mapping = {};
34150  
34151    // The menuItem should be in menu_order sort order.
34152    const sortedItems = [...menuItems].sort((a, b) => a.menu_order - b.menu_order);
34153    const innerBlocks = sortedItems.map(menuItem => {
34154      if (menuItem.type === 'block') {
34155        const [block] = (0,external_wp_blocks_namespaceObject.parse)(menuItem.content.raw);
34156        if (!block) {
34157          return (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', {
34158            content: menuItem.content
34159          });
34160        }
34161        return block;
34162      }
34163      const blockType = menuItem.children?.length ? 'core/navigation-submenu' : 'core/navigation-link';
34164      const attributes = menuItemToBlockAttributes(menuItem, blockType, level);
34165  
34166      // If there are children recurse to build those nested blocks.
34167      const {
34168        innerBlocks: nestedBlocks = [],
34169        // alias to avoid shadowing
34170        mapping: nestedMapping = {} // alias to avoid shadowing
34171      } = menuItem.children?.length ? mapMenuItemsToBlocks(menuItem.children, level + 1) : {};
34172  
34173      // Update parent mapping with nested mapping.
34174      mapping = {
34175        ...mapping,
34176        ...nestedMapping
34177      };
34178  
34179      // Create block with nested "innerBlocks".
34180      const block = (0,external_wp_blocks_namespaceObject.createBlock)(blockType, attributes, nestedBlocks);
34181  
34182      // Create mapping for menuItem -> block.
34183      mapping[menuItem.id] = block.clientId;
34184      return block;
34185    });
34186    return {
34187      innerBlocks,
34188      mapping
34189    };
34190  }
34191  
34192  /**
34193   * A WP nav_menu_item object.
34194   * For more documentation on the individual fields present on a menu item please see:
34195   * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789
34196   *
34197   * @typedef WPNavMenuItem
34198   *
34199   * @property {Object} title       stores the raw and rendered versions of the title/label for this menu item.
34200   * @property {Array}  xfn         the XFN relationships expressed in the link of this menu item.
34201   * @property {Array}  classes     the HTML class attributes for this menu item.
34202   * @property {string} attr_title  the HTML title attribute for this menu item.
34203   * @property {string} object      The type of object originally represented, such as 'category', 'post', or 'attachment'.
34204   * @property {string} object_id   The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.
34205   * @property {string} description The description of this menu item.
34206   * @property {string} url         The URL to which this menu item points.
34207   * @property {string} type        The family of objects originally represented, such as 'post_type' or 'taxonomy'.
34208   * @property {string} target      The target attribute of the link element for this menu item.
34209   */
34210  
34211  /**
34212   * Convert block attributes to menu item.
34213   *
34214   * @param {WPNavMenuItem} menuItem  the menu item to be converted to block attributes.
34215   * @param {string}        blockType The block type.
34216   * @param {number}        level     An integer representing the nesting level.
34217   * @return {Object} the block attributes converted from the WPNavMenuItem item.
34218   */
34219  function menuItemToBlockAttributes({
34220    title: menuItemTitleField,
34221    xfn,
34222    classes,
34223    // eslint-disable-next-line camelcase
34224    attr_title,
34225    object,
34226    // eslint-disable-next-line camelcase
34227    object_id,
34228    description,
34229    url,
34230    type: menuItemTypeField,
34231    target
34232  }, blockType, level) {
34233    // For historical reasons, the `core/navigation-link` variation type is `tag`
34234    // whereas WP Core expects `post_tag` as the `object` type.
34235    // To avoid writing a block migration we perform a conversion here.
34236    // See also inverse equivalent in `blockAttributesToMenuItem`.
34237    if (object && object === 'post_tag') {
34238      object = 'tag';
34239    }
34240    return {
34241      label: menuItemTitleField?.rendered || '',
34242      ...(object?.length && {
34243        type: object
34244      }),
34245      kind: menuItemTypeField?.replace('_', '-') || 'custom',
34246      url: url || '',
34247      ...(xfn?.length && xfn.join(' ').trim() && {
34248        rel: xfn.join(' ').trim()
34249      }),
34250      ...(classes?.length && classes.join(' ').trim() && {
34251        className: classes.join(' ').trim()
34252      }),
34253      /* eslint-disable camelcase */
34254      ...(attr_title?.length && {
34255        title: attr_title
34256      }),
34257      ...(object_id && 'custom' !== object && {
34258        id: object_id
34259      }),
34260      /* eslint-enable camelcase */
34261      ...(description?.length && {
34262        description
34263      }),
34264      ...(target === '_blank' && {
34265        opensInNewTab: true
34266      }),
34267      ...(blockType === 'core/navigation-submenu' && {
34268        isTopLevelItem: level === 0
34269      }),
34270      ...(blockType === 'core/navigation-link' && {
34271        isTopLevelLink: level === 0
34272      })
34273    };
34274  }
34275  
34276  /**
34277   * Creates a nested, hierarchical tree representation from unstructured data that
34278   * has an inherent relationship defined between individual items.
34279   *
34280   * For example, by default, each element in the dataset should have an `id` and
34281   * `parent` property where the `parent` property indicates a relationship between
34282   * the current item and another item with a matching `id` properties.
34283   *
34284   * This is useful for building linked lists of data from flat data structures.
34285   *
34286   * @param {Array}  dataset  linked data to be rearranged into a hierarchical tree based on relational fields.
34287   * @param {string} id       the property which uniquely identifies each entry within the array.
34288   * @param {*}      relation the property which identifies how the current item is related to other items in the data (if at all).
34289   * @return {Array} a nested array of parent/child relationships
34290   */
34291  function createDataTree(dataset, id = 'id', relation = 'parent') {
34292    const hashTable = Object.create(null);
34293    const dataTree = [];
34294    for (const data of dataset) {
34295      hashTable[data[id]] = {
34296        ...data,
34297        children: []
34298      };
34299      if (data[relation]) {
34300        hashTable[data[relation]] = hashTable[data[relation]] || {};
34301        hashTable[data[relation]].children = hashTable[data[relation]].children || [];
34302        hashTable[data[relation]].children.push(hashTable[data[id]]);
34303      } else {
34304        dataTree.push(hashTable[data[id]]);
34305      }
34306    }
34307    return dataTree;
34308  }
34309  
34310  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js
34311  /**
34312   * WordPress dependencies
34313   */
34314  
34315  
34316  
34317  
34318  
34319  /**
34320   * Internal dependencies
34321   */
34322  
34323  const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
34324  const CLASSIC_MENU_CONVERSION_ERROR = 'error';
34325  const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
34326  const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
34327  
34328  // This is needed to ensure that multiple components using this hook
34329  // do not import the same classic menu twice.
34330  let classicMenuBeingConvertedId = null;
34331  function useConvertClassicToBlockMenu(createNavigationMenu, {
34332    throwOnError = false
34333  } = {}) {
34334    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
34335    const {
34336      editEntityRecord
34337    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
34338    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CLASSIC_MENU_CONVERSION_IDLE);
34339    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
34340    const convertClassicMenuToBlockMenu = (0,external_wp_element_namespaceObject.useCallback)(async (menuId, menuName, postStatus = 'publish') => {
34341      let navigationMenu;
34342      let classicMenuItems;
34343  
34344      // 1. Fetch the classic Menu items.
34345      try {
34346        classicMenuItems = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getMenuItems({
34347          menus: menuId,
34348          per_page: -1,
34349          context: 'view'
34350        });
34351      } catch (err) {
34352        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
34353        // translators: %s: the name of a menu (e.g. Header navigation).
34354        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName), {
34355          cause: err
34356        });
34357      }
34358  
34359      // Handle offline response which resolves to `null`.
34360      if (classicMenuItems === null) {
34361        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
34362        // translators: %s: the name of a menu (e.g. Header navigation).
34363        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName));
34364      }
34365  
34366      // 2. Convert the classic items into blocks.
34367      const {
34368        innerBlocks
34369      } = menuItemsToBlocks(classicMenuItems);
34370  
34371      // 3. Create the `wp_navigation` Post with the blocks.
34372      try {
34373        navigationMenu = await createNavigationMenu(menuName, innerBlocks, postStatus);
34374  
34375        /**
34376         * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.
34377         * This status change causes the menu to be displayed on the front of the site and sets the post state to be "dirty".
34378         * The problem being solved is if saveEditedEntityRecord was used here, the menu would be updated on the frontend and the editor _automatically_,
34379         * without user interaction.
34380         * If the user abandons the site editor without saving, there would still be a wp_navigation post created as draft.
34381         */
34382        await editEntityRecord('postType', 'wp_navigation', navigationMenu.id, {
34383          status: 'publish'
34384        }, {
34385          throwOnError: true
34386        });
34387      } catch (err) {
34388        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
34389        // translators: %s: the name of a menu (e.g. Header navigation).
34390        (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
34391          cause: err
34392        });
34393      }
34394      return navigationMenu;
34395    }, [createNavigationMenu, editEntityRecord, registry]);
34396    const convert = (0,external_wp_element_namespaceObject.useCallback)(async (menuId, menuName, postStatus) => {
34397      // Check whether this classic menu is being imported already.
34398      if (classicMenuBeingConvertedId === menuId) {
34399        return;
34400      }
34401  
34402      // Set the ID for the currently importing classic menu.
34403      classicMenuBeingConvertedId = menuId;
34404      if (!menuId || !menuName) {
34405        setError('Unable to convert menu. Missing menu details.');
34406        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
34407        return;
34408      }
34409      setStatus(CLASSIC_MENU_CONVERSION_PENDING);
34410      setError(null);
34411      return await convertClassicMenuToBlockMenu(menuId, menuName, postStatus).then(navigationMenu => {
34412        setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
34413        // Reset the ID for the currently importing classic menu.
34414        classicMenuBeingConvertedId = null;
34415        return navigationMenu;
34416      }).catch(err => {
34417        setError(err?.message);
34418        // Reset the ID for the currently importing classic menu.
34419        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
34420  
34421        // Reset the ID for the currently importing classic menu.
34422        classicMenuBeingConvertedId = null;
34423  
34424        // Rethrow error for debugging.
34425        if (throwOnError) {
34426          throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
34427          // translators: %s: the name of a menu (e.g. Header navigation).
34428          (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
34429            cause: err
34430          });
34431        }
34432      });
34433    }, [convertClassicMenuToBlockMenu, throwOnError]);
34434    return {
34435      convert,
34436      status,
34437      error
34438    };
34439  }
34440  /* harmony default export */ const use_convert_classic_menu_to_block_menu = (useConvertClassicToBlockMenu);
34441  
34442  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/create-template-part-id.js
34443  /**
34444   * Generates a template part Id based on slug and theme inputs.
34445   *
34446   * @param {string} theme the template part's theme.
34447   * @param {string} slug  the template part's slug
34448   * @return {string|null} the template part's Id.
34449   */
34450  function createTemplatePartId(theme, slug) {
34451    return theme && slug ? theme + '//' + slug : null;
34452  }
34453  
34454  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-template-part-area-label.js
34455  /**
34456   * WordPress dependencies
34457   */
34458  
34459  
34460  
34461  
34462  /**
34463   * Internal dependencies
34464   */
34465  
34466  // TODO: this util should perhaps be refactored somewhere like core-data.
34467  
34468  function useTemplatePartAreaLabel(clientId) {
34469    return (0,external_wp_data_namespaceObject.useSelect)(select => {
34470      // Use the lack of a clientId as an opportunity to bypass the rest
34471      // of this hook.
34472      if (!clientId) {
34473        return;
34474      }
34475      const {
34476        getBlock,
34477        getBlockParentsByBlockName
34478      } = select(external_wp_blockEditor_namespaceObject.store);
34479      const withAscendingResults = true;
34480      const parentTemplatePartClientIds = getBlockParentsByBlockName(clientId, 'core/template-part', withAscendingResults);
34481      if (!parentTemplatePartClientIds?.length) {
34482        return;
34483      }
34484  
34485      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
34486      // Blocks can be loaded into a *non-post* block editor.
34487      // This code is lifted from this file:
34488      // packages/block-library/src/template-part/edit/advanced-controls.js
34489      /* eslint-disable @wordpress/data-no-store-string-literals */
34490      const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();
34491      /* eslint-enable @wordpress/data-no-store-string-literals */
34492      const {
34493        getCurrentTheme,
34494        getEditedEntityRecord
34495      } = select(external_wp_coreData_namespaceObject.store);
34496      for (const templatePartClientId of parentTemplatePartClientIds) {
34497        const templatePartBlock = getBlock(templatePartClientId);
34498  
34499        // The 'area' usually isn't stored on the block, but instead
34500        // on the entity.
34501        const {
34502          theme = getCurrentTheme()?.stylesheet,
34503          slug
34504        } = templatePartBlock.attributes;
34505        const templatePartEntityId = createTemplatePartId(theme, slug);
34506        const templatePartEntity = getEditedEntityRecord('postType', 'wp_template_part', templatePartEntityId);
34507  
34508        // Look up the `label` for the area in the defined areas so
34509        // that an internationalized label can be used.
34510        if (templatePartEntity?.area) {
34511          return definedAreas.find(definedArea => definedArea.area !== 'uncategorized' && definedArea.area === templatePartEntity.area)?.label;
34512        }
34513      }
34514    }, [clientId]);
34515  }
34516  
34517  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-generate-default-navigation-title.js
34518  /**
34519   * WordPress dependencies
34520   */
34521  
34522  
34523  
34524  
34525  
34526  
34527  /**
34528   * Internal dependencies
34529   */
34530  
34531  const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
34532    status: 'draft',
34533    per_page: -1
34534  }];
34535  const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', {
34536    per_page: -1,
34537    status: 'publish'
34538  }];
34539  function useGenerateDefaultNavigationTitle(clientId) {
34540    // The block will be disabled in a block preview, use this as a way of
34541    // avoiding the side-effects of this component for block previews.
34542    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
34543  
34544    // Because we can't conditionally call hooks, pass an undefined client id
34545    // arg to bypass the expensive `useTemplateArea` code. The hook will return
34546    // early.
34547    const area = useTemplatePartAreaLabel(isDisabled ? undefined : clientId);
34548    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
34549    return (0,external_wp_element_namespaceObject.useCallback)(async () => {
34550      // Ensure other navigation menus have loaded so an
34551      // accurate name can be created.
34552      if (isDisabled) {
34553        return '';
34554      }
34555      const {
34556        getEntityRecords
34557      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
34558      const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]);
34559      const title = area ? (0,external_wp_i18n_namespaceObject.sprintf)(
34560      // translators: %s: the name of a menu (e.g. Header navigation).
34561      (0,external_wp_i18n_namespaceObject.__)('%s navigation'), area) :
34562      // translators: 'navigation' as in website navigation.
34563      (0,external_wp_i18n_namespaceObject.__)('Navigation');
34564  
34565      // Determine how many menus start with the automatic title.
34566      const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => menu?.title?.raw?.startsWith(title) ? count + 1 : count, 0);
34567  
34568      // Append a number to the end of the title if a menu with
34569      // the same name exists.
34570      const titleWithCount = matchingMenuTitleCount > 0 ? `$title} $matchingMenuTitleCount + 1}` : title;
34571      return titleWithCount || '';
34572    }, [isDisabled, area, registry]);
34573  }
34574  
34575  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-create-navigation-menu.js
34576  /**
34577   * WordPress dependencies
34578   */
34579  
34580  
34581  
34582  
34583  
34584  /**
34585   * Internal dependencies
34586   */
34587  
34588  const CREATE_NAVIGATION_MENU_SUCCESS = 'success';
34589  const CREATE_NAVIGATION_MENU_ERROR = 'error';
34590  const CREATE_NAVIGATION_MENU_PENDING = 'pending';
34591  const CREATE_NAVIGATION_MENU_IDLE = 'idle';
34592  function useCreateNavigationMenu(clientId) {
34593    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CREATE_NAVIGATION_MENU_IDLE);
34594    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
34595    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
34596    const {
34597      saveEntityRecord,
34598      editEntityRecord
34599    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
34600    const generateDefaultTitle = useGenerateDefaultNavigationTitle(clientId);
34601  
34602    // This callback uses data from the two placeholder steps and only creates
34603    // a new navigation menu when the user completes the final step.
34604    const create = (0,external_wp_element_namespaceObject.useCallback)(async (title = null, blocks = [], postStatus) => {
34605      // Guard against creating Navigations without a title.
34606      // Note you can pass no title, but if one is passed it must be
34607      // a string otherwise the title may end up being empty.
34608      if (title && typeof title !== 'string') {
34609        setError('Invalid title supplied when creating Navigation Menu.');
34610        setStatus(CREATE_NAVIGATION_MENU_ERROR);
34611        throw new Error(`Value of supplied title argument was not a string.`);
34612      }
34613      setStatus(CREATE_NAVIGATION_MENU_PENDING);
34614      setValue(null);
34615      setError(null);
34616      if (!title) {
34617        title = await generateDefaultTitle().catch(err => {
34618          setError(err?.message);
34619          setStatus(CREATE_NAVIGATION_MENU_ERROR);
34620          throw new Error('Failed to create title when saving new Navigation Menu.', {
34621            cause: err
34622          });
34623        });
34624      }
34625      const record = {
34626        title,
34627        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
34628        status: postStatus
34629      };
34630  
34631      // Return affords ability to await on this function directly
34632      return saveEntityRecord('postType', 'wp_navigation', record).then(response => {
34633        setValue(response);
34634        setStatus(CREATE_NAVIGATION_MENU_SUCCESS);
34635  
34636        // Set the status to publish so that the Navigation block
34637        // shows up in the multi entity save flow.
34638        if (postStatus !== 'publish') {
34639          editEntityRecord('postType', 'wp_navigation', response.id, {
34640            status: 'publish'
34641          });
34642        }
34643        return response;
34644      }).catch(err => {
34645        setError(err?.message);
34646        setStatus(CREATE_NAVIGATION_MENU_ERROR);
34647        throw new Error('Unable to save new Navigation Menu', {
34648          cause: err
34649        });
34650      });
34651    }, [saveEntityRecord, editEntityRecord, generateDefaultTitle]);
34652    return {
34653      create,
34654      status,
34655      value,
34656      error,
34657      isIdle: status === CREATE_NAVIGATION_MENU_IDLE,
34658      isPending: status === CREATE_NAVIGATION_MENU_PENDING,
34659      isSuccess: status === CREATE_NAVIGATION_MENU_SUCCESS,
34660      isError: status === CREATE_NAVIGATION_MENU_ERROR
34661    };
34662  }
34663  
34664  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-inner-blocks.js
34665  /**
34666   * WordPress dependencies
34667   */
34668  
34669  
34670  const use_inner_blocks_EMPTY_ARRAY = [];
34671  function useInnerBlocks(clientId) {
34672    return (0,external_wp_data_namespaceObject.useSelect)(select => {
34673      const {
34674        getBlock,
34675        getBlocks,
34676        hasSelectedInnerBlock
34677      } = select(external_wp_blockEditor_namespaceObject.store);
34678  
34679      // This relies on the fact that `getBlock` won't return controlled
34680      // inner blocks, while `getBlocks` does. It might be more stable to
34681      // introduce a selector like `getUncontrolledInnerBlocks`, just in
34682      // case `getBlock` is fixed.
34683      const _uncontrolledInnerBlocks = getBlock(clientId).innerBlocks;
34684      const _hasUncontrolledInnerBlocks = !!_uncontrolledInnerBlocks?.length;
34685      const _controlledInnerBlocks = _hasUncontrolledInnerBlocks ? use_inner_blocks_EMPTY_ARRAY : getBlocks(clientId);
34686      return {
34687        innerBlocks: _hasUncontrolledInnerBlocks ? _uncontrolledInnerBlocks : _controlledInnerBlocks,
34688        hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
34689        uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
34690        controlledInnerBlocks: _controlledInnerBlocks,
34691        isInnerBlockSelected: hasSelectedInnerBlock(clientId, true)
34692      };
34693    }, [clientId]);
34694  }
34695  
34696  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/utils.js
34697  /**
34698   * External dependencies
34699   */
34700  
34701  function getComputedStyle(node) {
34702    return node.ownerDocument.defaultView.getComputedStyle(node);
34703  }
34704  function detectColors(colorsDetectionElement, setColor, setBackground) {
34705    if (!colorsDetectionElement) {
34706      return;
34707    }
34708    setColor(getComputedStyle(colorsDetectionElement).color);
34709    let backgroundColorNode = colorsDetectionElement;
34710    let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
34711    while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) {
34712      backgroundColorNode = backgroundColorNode.parentNode;
34713      backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
34714    }
34715    setBackground(backgroundColor);
34716  }
34717  
34718  /**
34719   * Determine the colors for a menu.
34720   *
34721   * Order of priority is:
34722   * 1: Overlay custom colors (if submenu)
34723   * 2: Overlay theme colors (if submenu)
34724   * 3: Custom colors
34725   * 4: Theme colors
34726   * 5: Global styles
34727   *
34728   * @param {Object}  context
34729   * @param {boolean} isSubMenu
34730   */
34731  function getColors(context, isSubMenu) {
34732    const {
34733      textColor,
34734      customTextColor,
34735      backgroundColor,
34736      customBackgroundColor,
34737      overlayTextColor,
34738      customOverlayTextColor,
34739      overlayBackgroundColor,
34740      customOverlayBackgroundColor,
34741      style
34742    } = context;
34743    const colors = {};
34744    if (isSubMenu && !!customOverlayTextColor) {
34745      colors.customTextColor = customOverlayTextColor;
34746    } else if (isSubMenu && !!overlayTextColor) {
34747      colors.textColor = overlayTextColor;
34748    } else if (!!customTextColor) {
34749      colors.customTextColor = customTextColor;
34750    } else if (!!textColor) {
34751      colors.textColor = textColor;
34752    } else if (!!style?.color?.text) {
34753      colors.customTextColor = style.color.text;
34754    }
34755    if (isSubMenu && !!customOverlayBackgroundColor) {
34756      colors.customBackgroundColor = customOverlayBackgroundColor;
34757    } else if (isSubMenu && !!overlayBackgroundColor) {
34758      colors.backgroundColor = overlayBackgroundColor;
34759    } else if (!!customBackgroundColor) {
34760      colors.customBackgroundColor = customBackgroundColor;
34761    } else if (!!backgroundColor) {
34762      colors.backgroundColor = backgroundColor;
34763    } else if (!!style?.color?.background) {
34764      colors.customTextColor = style.color.background;
34765    }
34766    return colors;
34767  }
34768  function getNavigationChildBlockProps(innerBlocksColors) {
34769    return {
34770      className: dist_clsx('wp-block-navigation__submenu-container', {
34771        'has-text-color': !!(innerBlocksColors.textColor || innerBlocksColors.customTextColor),
34772        [`has-$innerBlocksColors.textColor}-color`]: !!innerBlocksColors.textColor,
34773        'has-background': !!(innerBlocksColors.backgroundColor || innerBlocksColors.customBackgroundColor),
34774        [`has-$innerBlocksColors.backgroundColor}-background-color`]: !!innerBlocksColors.backgroundColor
34775      }),
34776      style: {
34777        color: innerBlocksColors.customTextColor,
34778        backgroundColor: innerBlocksColors.customBackgroundColor
34779      }
34780    };
34781  }
34782  
34783  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/manage-menus-button.js
34784  /**
34785   * WordPress dependencies
34786   */
34787  
34788  
34789  
34790  
34791  const ManageMenusButton = ({
34792    className = '',
34793    disabled,
34794    isMenuItem = false
34795  }) => {
34796    let ComponentName = external_wp_components_namespaceObject.Button;
34797    if (isMenuItem) {
34798      ComponentName = external_wp_components_namespaceObject.MenuItem;
34799    }
34800    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComponentName, {
34801      variant: "link",
34802      disabled: disabled,
34803      className: className,
34804      href: (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', {
34805        post_type: 'wp_navigation'
34806      }),
34807      children: (0,external_wp_i18n_namespaceObject.__)('Manage menus')
34808    });
34809  };
34810  /* harmony default export */ const manage_menus_button = (ManageMenusButton);
34811  
34812  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/deleted-navigation-warning.js
34813  /**
34814   * WordPress dependencies
34815   */
34816  
34817  
34818  
34819  
34820  
34821  function DeletedNavigationWarning({
34822    onCreateNew,
34823    isNotice = false
34824  }) {
34825    const message = (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Navigation Menu has been deleted or is unavailable. <button>Create a new Menu?</button>'), {
34826      button: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
34827        __next40pxDefaultSize: true,
34828        onClick: onCreateNew,
34829        variant: "link"
34830      })
34831    });
34832    return isNotice ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
34833      status: "warning",
34834      isDismissible: false,
34835      children: message
34836    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
34837      children: message
34838    });
34839  }
34840  /* harmony default export */ const deleted_navigation_warning = (DeletedNavigationWarning);
34841  
34842  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/add-submenu.js
34843  /**
34844   * WordPress dependencies
34845   */
34846  
34847  
34848  const addSubmenu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34849    xmlns: "http://www.w3.org/2000/svg",
34850    viewBox: "0 0 24 24",
34851    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34852      d: "M2 12c0 3.6 2.4 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.5 0-4.5-1.5-4.5-4s2-4.5 4.5-4.5h3.5V6H8c-3.6 0-6 2.4-6 6zm19.5-1h-8v1.5h8V11zm0 5h-8v1.5h8V16zm0-10h-8v1.5h8V6z"
34853    })
34854  });
34855  /* harmony default export */ const add_submenu = (addSubmenu);
34856  
34857  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js
34858  /**
34859   * WordPress dependencies
34860   */
34861  
34862  
34863  const chevronUp = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34864    viewBox: "0 0 24 24",
34865    xmlns: "http://www.w3.org/2000/svg",
34866    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34867      d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"
34868    })
34869  });
34870  /* harmony default export */ const chevron_up = (chevronUp);
34871  
34872  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
34873  /**
34874   * WordPress dependencies
34875   */
34876  
34877  
34878  const chevronDown = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34879    viewBox: "0 0 24 24",
34880    xmlns: "http://www.w3.org/2000/svg",
34881    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34882      d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
34883    })
34884  });
34885  /* harmony default export */ const chevron_down = (chevronDown);
34886  
34887  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/leaf-more-menu.js
34888  /**
34889   * WordPress dependencies
34890   */
34891  
34892  
34893  
34894  
34895  
34896  
34897  
34898  
34899  
34900  const POPOVER_PROPS = {
34901    className: 'block-editor-block-settings-menu__popover',
34902    placement: 'bottom-start'
34903  };
34904  const BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = ['core/navigation-link', 'core/navigation-submenu'];
34905  function AddSubmenuItem({
34906    block,
34907    onClose,
34908    expandedState,
34909    expand,
34910    setInsertedBlock
34911  }) {
34912    const {
34913      insertBlock,
34914      replaceBlock,
34915      replaceInnerBlocks
34916    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
34917    const clientId = block.clientId;
34918    const isDisabled = !BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(block.name);
34919    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34920      icon: add_submenu,
34921      disabled: isDisabled,
34922      onClick: () => {
34923        const updateSelectionOnInsert = false;
34924        const newLink = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
34925        if (block.name === 'core/navigation-submenu') {
34926          insertBlock(newLink, block.innerBlocks.length, clientId, updateSelectionOnInsert);
34927        } else {
34928          // Convert to a submenu if the block currently isn't one.
34929          const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', block.attributes, block.innerBlocks);
34930  
34931          // The following must happen as two independent actions.
34932          // Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds
34933          // selector to determine which block is "active". As the UX needs the newLink to be
34934          // the "active" block it must be the last block to be inserted.
34935          // Therefore the Submenu is first created and **then** the newLink is inserted
34936          // thus ensuring it is the last inserted block.
34937          replaceBlock(clientId, newSubmenu);
34938          replaceInnerBlocks(newSubmenu.clientId, [newLink], updateSelectionOnInsert);
34939        }
34940  
34941        // This call sets the local List View state for the "last inserted block".
34942        // This is required for the Nav Block to determine whether or not to display
34943        // the Link UI for this new block.
34944        setInsertedBlock(newLink);
34945        if (!expandedState[block.clientId]) {
34946          expand(block.clientId);
34947        }
34948        onClose();
34949      },
34950      children: (0,external_wp_i18n_namespaceObject.__)('Add submenu link')
34951    });
34952  }
34953  function LeafMoreMenu(props) {
34954    const {
34955      block
34956    } = props;
34957    const {
34958      clientId
34959    } = block;
34960    const {
34961      moveBlocksDown,
34962      moveBlocksUp,
34963      removeBlocks
34964    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
34965    const removeLabel = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */
34966    (0,external_wp_i18n_namespaceObject.__)('Remove %s'), (0,external_wp_blockEditor_namespaceObject.BlockTitle)({
34967      clientId,
34968      maximumLength: 25
34969    }));
34970    const rootClientId = (0,external_wp_data_namespaceObject.useSelect)(select => {
34971      const {
34972        getBlockRootClientId
34973      } = select(external_wp_blockEditor_namespaceObject.store);
34974      return getBlockRootClientId(clientId);
34975    }, [clientId]);
34976    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
34977      icon: more_vertical,
34978      label: (0,external_wp_i18n_namespaceObject.__)('Options'),
34979      className: "block-editor-block-settings-menu",
34980      popoverProps: POPOVER_PROPS,
34981      noIcons: true,
34982      ...props,
34983      children: ({
34984        onClose
34985      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34986        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
34987          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34988            icon: chevron_up,
34989            onClick: () => {
34990              moveBlocksUp([clientId], rootClientId);
34991              onClose();
34992            },
34993            children: (0,external_wp_i18n_namespaceObject.__)('Move up')
34994          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34995            icon: chevron_down,
34996            onClick: () => {
34997              moveBlocksDown([clientId], rootClientId);
34998              onClose();
34999            },
35000            children: (0,external_wp_i18n_namespaceObject.__)('Move down')
35001          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AddSubmenuItem, {
35002            block: block,
35003            onClose: onClose,
35004            expanded: true,
35005            expandedState: props.expandedState,
35006            expand: props.expand,
35007            setInsertedBlock: props.setInsertedBlock
35008          })]
35009        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
35010          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
35011            onClick: () => {
35012              removeBlocks([clientId], false);
35013              onClose();
35014            },
35015            children: removeLabel
35016          })
35017        })]
35018      })
35019    });
35020  }
35021  
35022  ;// CONCATENATED MODULE: external ["wp","escapeHtml"]
35023  const external_wp_escapeHtml_namespaceObject = window["wp"]["escapeHtml"];
35024  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/update-attributes.js
35025  /**
35026   * WordPress dependencies
35027   */
35028  
35029  
35030  
35031  /**
35032   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
35033   */
35034  /**
35035   * Navigation Link Block Attributes
35036   *
35037   * @typedef {Object} WPNavigationLinkBlockAttributes
35038   *
35039   * @property {string}               [label]         Link text.
35040   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
35041   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
35042   * @property {string}               [rel]           The relationship of the linked URL.
35043   * @property {number}               [id]            A post or term id.
35044   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
35045   * @property {string}               [url]           Link href.
35046   * @property {string}               [title]         Link title attribute.
35047   */
35048  /**
35049   * Link Control onChange handler that updates block attributes when a setting is changed.
35050   *
35051   * @param {Object}                          updatedValue    New block attributes to update.
35052   * @param {Function}                        setAttributes   Block attribute update function.
35053   * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
35054   */
35055  
35056  const updateAttributes = (updatedValue = {}, setAttributes, blockAttributes = {}) => {
35057    const {
35058      label: originalLabel = '',
35059      kind: originalKind = '',
35060      type: originalType = ''
35061    } = blockAttributes;
35062    const {
35063      title: newLabel = '',
35064      // the title of any provided Post.
35065      url: newUrl = '',
35066      opensInNewTab,
35067      id,
35068      kind: newKind = originalKind,
35069      type: newType = originalType
35070    } = updatedValue;
35071    const newLabelWithoutHttp = newLabel.replace(/http(s?):\/\//gi, '');
35072    const newUrlWithoutHttp = newUrl.replace(/http(s?):\/\//gi, '');
35073    const useNewLabel = newLabel && newLabel !== originalLabel &&
35074    // LinkControl without the title field relies
35075    // on the check below. Specifically, it assumes that
35076    // the URL is the same as a title.
35077    // This logic a) looks suspicious and b) should really
35078    // live in the LinkControl and not here. It's a great
35079    // candidate for future refactoring.
35080    newLabelWithoutHttp !== newUrlWithoutHttp;
35081  
35082    // Unfortunately this causes the escaping model to be inverted.
35083    // The escaped content is stored in the block attributes (and ultimately in the database),
35084    // and then the raw data is "recovered" when outputting into the DOM.
35085    // It would be preferable to store the **raw** data in the block attributes and escape it in JS.
35086    // Why? Because there isn't one way to escape data. Depending on the context, you need to do
35087    // different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.
35088    // See also:
35089    // - https://github.com/WordPress/gutenberg/pull/41063
35090    // - https://github.com/WordPress/gutenberg/pull/18617.
35091    const label = useNewLabel ? (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(newLabel) : originalLabel || (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(newUrlWithoutHttp);
35092  
35093    // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"
35094    const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
35095    const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
35096    const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
35097    const kind = isCustomLink ? 'custom' : newKind;
35098    setAttributes({
35099      // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
35100      ...(newUrl && {
35101        url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(newUrl))
35102      }),
35103      ...(label && {
35104        label
35105      }),
35106      ...(undefined !== opensInNewTab && {
35107        opensInNewTab
35108      }),
35109      ...(id && Number.isInteger(id) && {
35110        id
35111      }),
35112      ...(kind && {
35113        kind
35114      }),
35115      ...(type && type !== 'URL' && {
35116        type
35117      })
35118    });
35119  };
35120  
35121  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js
35122  /**
35123   * WordPress dependencies
35124   */
35125  
35126  
35127  const chevronRightSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35128    xmlns: "http://www.w3.org/2000/svg",
35129    viewBox: "0 0 24 24",
35130    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35131      d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"
35132    })
35133  });
35134  /* harmony default export */ const chevron_right_small = (chevronRightSmall);
35135  
35136  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js
35137  /**
35138   * WordPress dependencies
35139   */
35140  
35141  
35142  const chevronLeftSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35143    xmlns: "http://www.w3.org/2000/svg",
35144    viewBox: "0 0 24 24",
35145    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35146      d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"
35147    })
35148  });
35149  /* harmony default export */ const chevron_left_small = (chevronLeftSmall);
35150  
35151  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
35152  /**
35153   * WordPress dependencies
35154   */
35155  
35156  
35157  const plus = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35158    xmlns: "http://www.w3.org/2000/svg",
35159    viewBox: "0 0 24 24",
35160    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35161      d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z"
35162    })
35163  });
35164  /* harmony default export */ const library_plus = (plus);
35165  
35166  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/link-ui.js
35167  /**
35168   * WordPress dependencies
35169   */
35170  
35171  
35172  
35173  
35174  
35175  
35176  
35177  
35178  
35179  
35180  
35181  /**
35182   * Internal dependencies
35183   */
35184  
35185  
35186  
35187  const {
35188    PrivateQuickInserter: QuickInserter
35189  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
35190  
35191  /**
35192   * Given the Link block's type attribute, return the query params to give to
35193   * /wp/v2/search.
35194   *
35195   * @param {string} type Link block's type attribute.
35196   * @param {string} kind Link block's entity of kind (post-type|taxonomy)
35197   * @return {{ type?: string, subtype?: string }} Search query params.
35198   */
35199  function getSuggestionsQuery(type, kind) {
35200    switch (type) {
35201      case 'post':
35202      case 'page':
35203        return {
35204          type: 'post',
35205          subtype: type
35206        };
35207      case 'category':
35208        return {
35209          type: 'term',
35210          subtype: 'category'
35211        };
35212      case 'tag':
35213        return {
35214          type: 'term',
35215          subtype: 'post_tag'
35216        };
35217      case 'post_format':
35218        return {
35219          type: 'post-format'
35220        };
35221      default:
35222        if (kind === 'taxonomy') {
35223          return {
35224            type: 'term',
35225            subtype: type
35226          };
35227        }
35228        if (kind === 'post-type') {
35229          return {
35230            type: 'post',
35231            subtype: type
35232          };
35233        }
35234        return {
35235          // for custom link which has no type
35236          // always show pages as initial suggestions
35237          initialSuggestionsSearchOptions: {
35238            type: 'post',
35239            subtype: 'page',
35240            perPage: 20
35241          }
35242        };
35243    }
35244  }
35245  function LinkUIBlockInserter({
35246    clientId,
35247    onBack,
35248    onSelectBlock
35249  }) {
35250    const {
35251      rootBlockClientId
35252    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
35253      const {
35254        getBlockRootClientId
35255      } = select(external_wp_blockEditor_namespaceObject.store);
35256      return {
35257        rootBlockClientId: getBlockRootClientId(clientId)
35258      };
35259    }, [clientId]);
35260    const focusOnMountRef = (0,external_wp_compose_namespaceObject.useFocusOnMount)('firstElement');
35261    const dialogTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, `link-ui-block-inserter__title`);
35262    const dialogDescritionId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, `link-ui-block-inserter__description`);
35263    if (!clientId) {
35264      return null;
35265    }
35266    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
35267      className: "link-ui-block-inserter",
35268      role: "dialog",
35269      "aria-labelledby": dialogTitleId,
35270      "aria-describedby": dialogDescritionId,
35271      ref: focusOnMountRef,
35272      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.VisuallyHidden, {
35273        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
35274          id: dialogTitleId,
35275          children: (0,external_wp_i18n_namespaceObject.__)('Add block')
35276        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
35277          id: dialogDescritionId,
35278          children: (0,external_wp_i18n_namespaceObject.__)('Choose a block to add to your Navigation.')
35279        })]
35280      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
35281        className: "link-ui-block-inserter__back",
35282        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right_small : chevron_left_small,
35283        onClick: e => {
35284          e.preventDefault();
35285          onBack();
35286        },
35287        size: "small",
35288        children: (0,external_wp_i18n_namespaceObject.__)('Back')
35289      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QuickInserter, {
35290        rootClientId: rootBlockClientId,
35291        clientId: clientId,
35292        isAppender: false,
35293        prioritizePatterns: false,
35294        selectBlockOnInsert: true,
35295        hasSearch: false,
35296        onSelect: onSelectBlock
35297      })]
35298    });
35299  }
35300  function UnforwardedLinkUI(props, ref) {
35301    const {
35302      label,
35303      url,
35304      opensInNewTab,
35305      type,
35306      kind
35307    } = props.link;
35308    const postType = type || 'page';
35309    const [addingBlock, setAddingBlock] = (0,external_wp_element_namespaceObject.useState)(false);
35310    const [focusAddBlockButton, setFocusAddBlockButton] = (0,external_wp_element_namespaceObject.useState)(false);
35311    const {
35312      saveEntityRecord
35313    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
35314    const permissions = (0,external_wp_coreData_namespaceObject.useResourcePermissions)({
35315      kind: 'postType',
35316      name: postType
35317    });
35318    async function handleCreate(pageTitle) {
35319      const page = await saveEntityRecord('postType', postType, {
35320        title: pageTitle,
35321        status: 'draft'
35322      });
35323      return {
35324        id: page.id,
35325        type: postType,
35326        // Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)
35327        // is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.
35328        // Ideally in the future we will update both APIs to utilise the "raw" form of the title which is better suited to edit contexts.
35329        // e.g.
35330        // - title.raw = "Yes & No"
35331        // - title.rendered = "Yes &#038; No"
35332        // - decodeEntities( title.rendered ) = "Yes & No"
35333        // See:
35334        // - https://github.com/WordPress/gutenberg/pull/41063
35335        // - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218
35336        title: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(page.title.rendered),
35337        url: page.link,
35338        kind: 'post-type'
35339      };
35340    }
35341  
35342    // Memoize link value to avoid overriding the LinkControl's internal state.
35343    // This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.
35344    const link = (0,external_wp_element_namespaceObject.useMemo)(() => ({
35345      url,
35346      opensInNewTab,
35347      title: label && (0,external_wp_dom_namespaceObject.__unstableStripHTML)(label)
35348    }), [label, opensInNewTab, url]);
35349    const dialogTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkUI, `link-ui-link-control__title`);
35350    const dialogDescritionId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkUI, `link-ui-link-control__description`);
35351  
35352    // Selecting a block should close the popover and also remove the (previously) automatically inserted
35353    // link block so that the newly selected block can be inserted in its place.
35354    const {
35355      onClose: onSelectBlock
35356    } = props;
35357    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Popover, {
35358      ref: ref,
35359      placement: "bottom",
35360      onClose: props.onClose,
35361      anchor: props.anchor,
35362      shift: true,
35363      children: [!addingBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
35364        role: "dialog",
35365        "aria-labelledby": dialogTitleId,
35366        "aria-describedby": dialogDescritionId,
35367        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.VisuallyHidden, {
35368          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
35369            id: dialogTitleId,
35370            children: (0,external_wp_i18n_namespaceObject.__)('Add link')
35371          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
35372            id: dialogDescritionId,
35373            children: (0,external_wp_i18n_namespaceObject.__)('Search for and add a link to your Navigation.')
35374          })]
35375        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
35376          hasTextControl: true,
35377          hasRichPreviews: true,
35378          value: link,
35379          showInitialSuggestions: true,
35380          withCreateSuggestion: permissions.canCreate,
35381          createSuggestion: handleCreate,
35382          createSuggestionButtonText: searchTerm => {
35383            let format;
35384            if (type === 'post') {
35385              /* translators: %s: search term. */
35386              format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
35387            } else {
35388              /* translators: %s: search term. */
35389              format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
35390            }
35391            return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
35392              mark: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("mark", {})
35393            });
35394          },
35395          noDirectEntry: !!type,
35396          noURLSuggestion: !!type,
35397          suggestionsQuery: getSuggestionsQuery(type, kind),
35398          onChange: props.onChange,
35399          onRemove: props.onRemove,
35400          onCancel: props.onCancel,
35401          renderControlBottom: () => !link?.url?.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUITools, {
35402            focusAddBlockButton: focusAddBlockButton,
35403            setAddingBlock: () => {
35404              setAddingBlock(true);
35405              setFocusAddBlockButton(false);
35406            }
35407          })
35408        })]
35409      }), addingBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUIBlockInserter, {
35410        clientId: props.clientId,
35411        onBack: () => {
35412          setAddingBlock(false);
35413          setFocusAddBlockButton(true);
35414        },
35415        onSelectBlock: onSelectBlock
35416      })]
35417    });
35418  }
35419  const LinkUI = (0,external_wp_element_namespaceObject.forwardRef)(UnforwardedLinkUI);
35420  const LinkUITools = ({
35421    setAddingBlock,
35422    focusAddBlockButton
35423  }) => {
35424    const blockInserterAriaRole = 'listbox';
35425    const addBlockButtonRef = (0,external_wp_element_namespaceObject.useRef)();
35426  
35427    // Focus the add block button when the popover is opened.
35428    (0,external_wp_element_namespaceObject.useEffect)(() => {
35429      if (focusAddBlockButton) {
35430        addBlockButtonRef.current?.focus();
35431      }
35432    }, [focusAddBlockButton]);
35433    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
35434      className: "link-ui-tools",
35435      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
35436        __next40pxDefaultSize: true,
35437        ref: addBlockButtonRef,
35438        icon: library_plus,
35439        onClick: e => {
35440          e.preventDefault();
35441          setAddingBlock(true);
35442        },
35443        "aria-haspopup": blockInserterAriaRole,
35444        children: (0,external_wp_i18n_namespaceObject.__)('Add block')
35445      })
35446    });
35447  };
35448  /* harmony default export */ const link_ui = ((/* unused pure expression or super */ null && (LinkUITools)));
35449  
35450  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/menu-inspector-controls.js
35451  /**
35452   * WordPress dependencies
35453   */
35454  
35455  
35456  
35457  
35458  
35459  /**
35460   * Internal dependencies
35461   */
35462  
35463  
35464  
35465  
35466  
35467  
35468  
35469  
35470  
35471  const actionLabel = /* translators: %s: The name of a menu. */(0,external_wp_i18n_namespaceObject.__)("Switch to '%s'");
35472  const BLOCKS_WITH_LINK_UI_SUPPORT = ['core/navigation-link', 'core/navigation-submenu'];
35473  const {
35474    PrivateListView
35475  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
35476  function AdditionalBlockContent({
35477    block,
35478    insertedBlock,
35479    setInsertedBlock
35480  }) {
35481    const {
35482      updateBlockAttributes
35483    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35484    const supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(insertedBlock?.name);
35485    const blockWasJustInserted = insertedBlock?.clientId === block.clientId;
35486    const showLinkControls = supportsLinkControls && blockWasJustInserted;
35487    if (!showLinkControls) {
35488      return null;
35489    }
35490    const setInsertedBlockAttributes = _insertedBlockClientId => _updatedAttributes => {
35491      if (!_insertedBlockClientId) {
35492        return;
35493      }
35494      updateBlockAttributes(_insertedBlockClientId, _updatedAttributes);
35495    };
35496    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
35497      clientId: insertedBlock?.clientId,
35498      link: insertedBlock?.attributes,
35499      onClose: () => {
35500        setInsertedBlock(null);
35501      },
35502      onChange: updatedValue => {
35503        updateAttributes(updatedValue, setInsertedBlockAttributes(insertedBlock?.clientId), insertedBlock?.attributes);
35504        setInsertedBlock(null);
35505      },
35506      onCancel: () => {
35507        setInsertedBlock(null);
35508      }
35509    });
35510  }
35511  const MainContent = ({
35512    clientId,
35513    currentMenuId,
35514    isLoading,
35515    isNavigationMenuMissing,
35516    onCreateNew
35517  }) => {
35518    const hasChildren = (0,external_wp_data_namespaceObject.useSelect)(select => {
35519      return !!select(external_wp_blockEditor_namespaceObject.store).getBlockCount(clientId);
35520    }, [clientId]);
35521    const {
35522      navigationMenu
35523    } = useNavigationMenu(currentMenuId);
35524    if (currentMenuId && isNavigationMenuMissing) {
35525      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(deleted_navigation_warning, {
35526        onCreateNew: onCreateNew,
35527        isNotice: true
35528      });
35529    }
35530    if (isLoading) {
35531      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {});
35532    }
35533    const description = navigationMenu ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: The name of a menu. */
35534    (0,external_wp_i18n_namespaceObject.__)('Structure for Navigation Menu: %s'), navigationMenu?.title || (0,external_wp_i18n_namespaceObject.__)('Untitled menu')) : (0,external_wp_i18n_namespaceObject.__)('You have not yet created any menus. Displaying a list of your Pages');
35535    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
35536      className: "wp-block-navigation__menu-inspector-controls",
35537      children: [!hasChildren && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
35538        className: "wp-block-navigation__menu-inspector-controls__empty-message",
35539        children: (0,external_wp_i18n_namespaceObject.__)('This Navigation Menu is empty.')
35540      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivateListView, {
35541        rootClientId: clientId,
35542        isExpanded: true,
35543        description: description,
35544        showAppender: true,
35545        blockSettingsMenu: LeafMoreMenu,
35546        additionalBlockContent: AdditionalBlockContent
35547      })]
35548    });
35549  };
35550  const MenuInspectorControls = props => {
35551    const {
35552      createNavigationMenuIsSuccess,
35553      createNavigationMenuIsError,
35554      currentMenuId = null,
35555      onCreateNew,
35556      onSelectClassicMenu,
35557      onSelectNavigationMenu,
35558      isManageMenusButtonDisabled,
35559      blockEditingMode
35560    } = props;
35561    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
35562      group: "list",
35563      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
35564        title: null,
35565        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
35566          className: "wp-block-navigation-off-canvas-editor__header",
35567          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHeading, {
35568            className: "wp-block-navigation-off-canvas-editor__title",
35569            level: 2,
35570            children: (0,external_wp_i18n_namespaceObject.__)('Menu')
35571          }), blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigation_menu_selector, {
35572            currentMenuId: currentMenuId,
35573            onSelectClassicMenu: onSelectClassicMenu,
35574            onSelectNavigationMenu: onSelectNavigationMenu,
35575            onCreateNew: onCreateNew,
35576            createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
35577            createNavigationMenuIsError: createNavigationMenuIsError,
35578            actionLabel: actionLabel,
35579            isManageMenusButtonDisabled: isManageMenusButtonDisabled
35580          })]
35581        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MainContent, {
35582          ...props
35583        })]
35584      })
35585    });
35586  };
35587  /* harmony default export */ const menu_inspector_controls = (MenuInspectorControls);
35588  
35589  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/accessible-description.js
35590  /**
35591   * WordPress dependencies
35592   */
35593  
35594  
35595  function AccessibleDescription({
35596    id,
35597    children
35598  }) {
35599    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
35600      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
35601        id: id,
35602        className: "wp-block-navigation__description",
35603        children: children
35604      })
35605    });
35606  }
35607  
35608  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/accessible-menu-description.js
35609  /**
35610   * WordPress dependencies
35611   */
35612  
35613  
35614  
35615  /**
35616   * Internal dependencies
35617   */
35618  
35619  
35620  function AccessibleMenuDescription({
35621    id
35622  }) {
35623    const [menuTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
35624    /* translators: %s: Title of a Navigation Menu post. */
35625    const description = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu: "%s"`), menuTitle);
35626    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleDescription, {
35627      id: id,
35628      children: description
35629    });
35630  }
35631  
35632  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/index.js
35633  /**
35634   * External dependencies
35635   */
35636  
35637  
35638  /**
35639   * WordPress dependencies
35640   */
35641  
35642  
35643  
35644  
35645  
35646  
35647  
35648  
35649  
35650  
35651  /**
35652   * Internal dependencies
35653   */
35654  
35655  
35656  
35657  
35658  
35659  
35660  
35661  
35662  
35663  
35664  
35665  
35666  
35667  
35668  
35669  
35670  
35671  
35672  
35673  
35674  
35675  
35676  
35677  
35678  function useResponsiveMenu(navRef) {
35679    const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0,external_wp_element_namespaceObject.useState)(false);
35680    (0,external_wp_element_namespaceObject.useEffect)(() => {
35681      if (!navRef.current) {
35682        return;
35683      }
35684      const htmlElement = navRef.current.ownerDocument.documentElement;
35685  
35686      // Add a `has-modal-open` class to the <html> when the responsive
35687      // menu is open. This reproduces the same behavior of the frontend.
35688      if (isResponsiveMenuOpen) {
35689        htmlElement.classList.add('has-modal-open');
35690      } else {
35691        htmlElement.classList.remove('has-modal-open');
35692      }
35693      return () => {
35694        htmlElement?.classList.remove('has-modal-open');
35695      };
35696    }, [navRef, isResponsiveMenuOpen]);
35697    return [isResponsiveMenuOpen, setResponsiveMenuVisibility];
35698  }
35699  function ColorTools({
35700    textColor,
35701    setTextColor,
35702    backgroundColor,
35703    setBackgroundColor,
35704    overlayTextColor,
35705    setOverlayTextColor,
35706    overlayBackgroundColor,
35707    setOverlayBackgroundColor,
35708    clientId,
35709    navRef
35710  }) {
35711    const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
35712    const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)();
35713    const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
35714    const [detectedOverlayColor, setDetectedOverlayColor] = (0,external_wp_element_namespaceObject.useState)();
35715    // Turn on contrast checker for web only since it's not supported on mobile yet.
35716    const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web';
35717    (0,external_wp_element_namespaceObject.useEffect)(() => {
35718      if (!enableContrastChecking) {
35719        return;
35720      }
35721      detectColors(navRef.current, setDetectedColor, setDetectedBackgroundColor);
35722      const subMenuElement = navRef.current?.querySelector('[data-type="core/navigation-submenu"] [data-type="core/navigation-link"]');
35723      if (!subMenuElement) {
35724        return;
35725      }
35726  
35727      // Only detect submenu overlay colors if they have previously been explicitly set.
35728      // This avoids the contrast checker from reporting on inherited submenu colors and
35729      // showing the contrast warning twice.
35730      if (overlayTextColor.color || overlayBackgroundColor.color) {
35731        detectColors(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor);
35732      }
35733    }, [enableContrastChecking, overlayTextColor.color, overlayBackgroundColor.color, navRef]);
35734    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
35735    if (!colorGradientSettings.hasColorsOrGradients) {
35736      return null;
35737    }
35738    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
35739      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
35740        __experimentalIsRenderedInSidebar: true,
35741        settings: [{
35742          colorValue: textColor.color,
35743          label: (0,external_wp_i18n_namespaceObject.__)('Text'),
35744          onColorChange: setTextColor,
35745          resetAllFilter: () => setTextColor()
35746        }, {
35747          colorValue: backgroundColor.color,
35748          label: (0,external_wp_i18n_namespaceObject.__)('Background'),
35749          onColorChange: setBackgroundColor,
35750          resetAllFilter: () => setBackgroundColor()
35751        }, {
35752          colorValue: overlayTextColor.color,
35753          label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay text'),
35754          onColorChange: setOverlayTextColor,
35755          resetAllFilter: () => setOverlayTextColor()
35756        }, {
35757          colorValue: overlayBackgroundColor.color,
35758          label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay background'),
35759          onColorChange: setOverlayBackgroundColor,
35760          resetAllFilter: () => setOverlayBackgroundColor()
35761        }],
35762        panelId: clientId,
35763        ...colorGradientSettings,
35764        gradients: [],
35765        disableCustomGradients: true
35766      }), enableContrastChecking && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
35767        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
35768          backgroundColor: detectedBackgroundColor,
35769          textColor: detectedColor
35770        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
35771          backgroundColor: detectedOverlayBackgroundColor,
35772          textColor: detectedOverlayColor
35773        })]
35774      })]
35775    });
35776  }
35777  function Navigation({
35778    attributes,
35779    setAttributes,
35780    clientId,
35781    isSelected,
35782    className,
35783    backgroundColor,
35784    setBackgroundColor,
35785    textColor,
35786    setTextColor,
35787    overlayBackgroundColor,
35788    setOverlayBackgroundColor,
35789    overlayTextColor,
35790    setOverlayTextColor,
35791    // These props are used by the navigation editor to override specific
35792    // navigation block settings.
35793    hasSubmenuIndicatorSetting = true,
35794    customPlaceholder: CustomPlaceholder = null,
35795    __unstableLayoutClassNames: layoutClassNames
35796  }) {
35797    const {
35798      openSubmenusOnClick,
35799      overlayMenu,
35800      showSubmenuIcon,
35801      templateLock,
35802      layout: {
35803        justifyContent,
35804        orientation = 'horizontal',
35805        flexWrap = 'wrap'
35806      } = {},
35807      hasIcon,
35808      icon = 'handle'
35809    } = attributes;
35810    const ref = attributes.ref;
35811    const setRef = (0,external_wp_element_namespaceObject.useCallback)(postId => {
35812      setAttributes({
35813        ref: postId
35814      });
35815    }, [setAttributes]);
35816    const recursionId = `navigationMenu/$ref}`;
35817    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(recursionId);
35818    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
35819  
35820    // Preload classic menus, so that they don't suddenly pop-in when viewing
35821    // the Select Menu dropdown.
35822    const {
35823      menus: classicMenus
35824    } = useNavigationEntities();
35825    const [showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice] = use_navigation_notice({
35826      name: 'block-library/core/navigation/status'
35827    });
35828    const [showClassicMenuConversionNotice, hideClassicMenuConversionNotice] = use_navigation_notice({
35829      name: 'block-library/core/navigation/classic-menu-conversion'
35830    });
35831    const [showNavigationMenuPermissionsNotice, hideNavigationMenuPermissionsNotice] = use_navigation_notice({
35832      name: 'block-library/core/navigation/permissions/update'
35833    });
35834    const {
35835      create: createNavigationMenu,
35836      status: createNavigationMenuStatus,
35837      error: createNavigationMenuError,
35838      value: createNavigationMenuPost,
35839      isPending: isCreatingNavigationMenu,
35840      isSuccess: createNavigationMenuIsSuccess,
35841      isError: createNavigationMenuIsError
35842    } = useCreateNavigationMenu(clientId);
35843    const createUntitledEmptyNavigationMenu = async () => {
35844      await createNavigationMenu('');
35845    };
35846    const {
35847      hasUncontrolledInnerBlocks,
35848      uncontrolledInnerBlocks,
35849      isInnerBlockSelected,
35850      innerBlocks
35851    } = useInnerBlocks(clientId);
35852    const hasSubmenus = !!innerBlocks.find(block => block.name === 'core/navigation-submenu');
35853    const {
35854      replaceInnerBlocks,
35855      selectBlock,
35856      __unstableMarkNextChangeAsNotPersistent
35857    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35858    const navRef = (0,external_wp_element_namespaceObject.useRef)();
35859    const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = useResponsiveMenu(navRef);
35860    const [overlayMenuPreview, setOverlayMenuPreview] = (0,external_wp_element_namespaceObject.useState)(false);
35861    const {
35862      hasResolvedNavigationMenus,
35863      isNavigationMenuResolved,
35864      isNavigationMenuMissing,
35865      canUserUpdateNavigationMenu,
35866      hasResolvedCanUserUpdateNavigationMenu,
35867      canUserDeleteNavigationMenu,
35868      hasResolvedCanUserDeleteNavigationMenu,
35869      canUserCreateNavigationMenus,
35870      isResolvingCanUserCreateNavigationMenus,
35871      hasResolvedCanUserCreateNavigationMenus
35872    } = useNavigationMenu(ref);
35873    const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing;
35874    const {
35875      convert: convertClassicMenu,
35876      status: classicMenuConversionStatus,
35877      error: classicMenuConversionError
35878    } = use_convert_classic_menu_to_block_menu(createNavigationMenu);
35879    const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
35880    const handleUpdateMenu = (0,external_wp_element_namespaceObject.useCallback)((menuId, options = {
35881      focusNavigationBlock: false
35882    }) => {
35883      const {
35884        focusNavigationBlock
35885      } = options;
35886      setRef(menuId);
35887      if (focusNavigationBlock) {
35888        selectBlock(clientId);
35889      }
35890    }, [selectBlock, clientId, setRef]);
35891    const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved;
35892  
35893    // If the block has inner blocks, but no menu id, then these blocks are either:
35894    // - inserted via a pattern.
35895    // - inserted directly via Code View (or otherwise).
35896    // - from an older version of navigation block added before the block used a wp_navigation entity.
35897    // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
35898    // that automatically saves the menu as an entity when changes are made to the inner blocks.
35899    const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
35900    const {
35901      getNavigationFallbackId
35902    } = unlock((0,external_wp_data_namespaceObject.useSelect)(external_wp_coreData_namespaceObject.store));
35903    const navigationFallbackId = !(ref || hasUnsavedBlocks) ? getNavigationFallbackId() : null;
35904    (0,external_wp_element_namespaceObject.useEffect)(() => {
35905      // If:
35906      // - there is an existing menu, OR
35907      // - there are existing (uncontrolled) inner blocks
35908      // ...then don't request a fallback menu.
35909      if (ref || hasUnsavedBlocks || !navigationFallbackId) {
35910        return;
35911      }
35912  
35913      /**
35914       *  This fallback displays (both in editor and on front)
35915       *  The fallback should not request a save (entity dirty state)
35916       *  nor to be undoable, hence why it is marked as non persistent
35917       */
35918  
35919      __unstableMarkNextChangeAsNotPersistent();
35920      setRef(navigationFallbackId);
35921    }, [ref, setRef, hasUnsavedBlocks, navigationFallbackId, __unstableMarkNextChangeAsNotPersistent]);
35922  
35923    // The standard HTML5 tag for the block wrapper.
35924    const TagName = 'nav';
35925  
35926    // "placeholder" shown if:
35927    // - there is no ref attribute pointing to a Navigation Post.
35928    // - there is no classic menu conversion process in progress.
35929    // - there is no menu creation process in progress.
35930    // - there are no uncontrolled blocks.
35931    const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && classicMenus?.length === 0 && !hasUncontrolledInnerBlocks;
35932  
35933    // "loading" state:
35934    // - there is a menu creation process in progress.
35935    // - there is a classic menu conversion process in progress.
35936    // OR:
35937    // - there is a ref attribute pointing to a Navigation Post
35938    // - the Navigation Post isn't available (hasn't resolved) yet.
35939    const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu);
35940    const textDecoration = attributes.style?.typography?.textDecoration;
35941    const hasBlockOverlay = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__unstableHasActiveBlockOverlayActive(clientId), [clientId]);
35942    const isResponsive = 'never' !== overlayMenu;
35943    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
35944      ref: navRef,
35945      className: dist_clsx(className, {
35946        'items-justified-right': justifyContent === 'right',
35947        'items-justified-space-between': justifyContent === 'space-between',
35948        'items-justified-left': justifyContent === 'left',
35949        'items-justified-center': justifyContent === 'center',
35950        'is-vertical': orientation === 'vertical',
35951        'no-wrap': flexWrap === 'nowrap',
35952        'is-responsive': isResponsive,
35953        'has-text-color': !!textColor.color || !!textColor?.class,
35954        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor?.slug)]: !!textColor?.slug,
35955        'has-background': !!backgroundColor.color || backgroundColor.class,
35956        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor?.slug)]: !!backgroundColor?.slug,
35957        [`has-text-decoration-$textDecoration}`]: textDecoration,
35958        'block-editor-block-content-overlay': hasBlockOverlay
35959      }, layoutClassNames),
35960      style: {
35961        color: !textColor?.slug && textColor?.color,
35962        backgroundColor: !backgroundColor?.slug && backgroundColor?.color
35963      }
35964    });
35965    const onSelectClassicMenu = async classicMenu => {
35966      return convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
35967    };
35968    const onSelectNavigationMenu = menuId => {
35969      handleUpdateMenu(menuId);
35970    };
35971    (0,external_wp_element_namespaceObject.useEffect)(() => {
35972      hideNavigationMenuStatusNotice();
35973      if (isCreatingNavigationMenu) {
35974        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)(`Creating Navigation Menu.`));
35975      }
35976      if (createNavigationMenuIsSuccess) {
35977        handleUpdateMenu(createNavigationMenuPost?.id, {
35978          focusNavigationBlock: true
35979        });
35980        showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu successfully created.`));
35981      }
35982      if (createNavigationMenuIsError) {
35983        showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)('Failed to create Navigation Menu.'));
35984      }
35985    }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost?.id, createNavigationMenuIsError, createNavigationMenuIsSuccess, isCreatingNavigationMenu, handleUpdateMenu, hideNavigationMenuStatusNotice, showNavigationMenuStatusNotice]);
35986    (0,external_wp_element_namespaceObject.useEffect)(() => {
35987      hideClassicMenuConversionNotice();
35988      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING) {
35989        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu importing.'));
35990      }
35991      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS) {
35992        showClassicMenuConversionNotice((0,external_wp_i18n_namespaceObject.__)('Classic menu imported successfully.'));
35993        handleUpdateMenu(createNavigationMenuPost?.id, {
35994          focusNavigationBlock: true
35995        });
35996      }
35997      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) {
35998        showClassicMenuConversionNotice((0,external_wp_i18n_namespaceObject.__)('Classic menu import failed.'));
35999      }
36000    }, [classicMenuConversionStatus, classicMenuConversionError, hideClassicMenuConversionNotice, showClassicMenuConversionNotice, createNavigationMenuPost?.id, handleUpdateMenu]);
36001    (0,external_wp_element_namespaceObject.useEffect)(() => {
36002      if (!isSelected && !isInnerBlockSelected) {
36003        hideNavigationMenuPermissionsNotice();
36004      }
36005      if (isSelected || isInnerBlockSelected) {
36006        if (ref && !navMenuResolvedButMissing && hasResolvedCanUserUpdateNavigationMenu && !canUserUpdateNavigationMenu) {
36007          showNavigationMenuPermissionsNotice((0,external_wp_i18n_namespaceObject.__)('You do not have permission to edit this Menu. Any changes made will not be saved.'));
36008        }
36009        if (!ref && hasResolvedCanUserCreateNavigationMenus && !canUserCreateNavigationMenus) {
36010          showNavigationMenuPermissionsNotice((0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Navigation Menus.'));
36011        }
36012      }
36013    }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenus, hasResolvedCanUserCreateNavigationMenus, ref, hideNavigationMenuPermissionsNotice, showNavigationMenuPermissionsNotice, navMenuResolvedButMissing]);
36014    const hasManagePermissions = canUserCreateNavigationMenus || canUserUpdateNavigationMenu;
36015    const overlayMenuPreviewClasses = dist_clsx('wp-block-navigation__overlay-menu-preview', {
36016      open: overlayMenuPreview
36017    });
36018    const submenuAccessibilityNotice = !showSubmenuIcon && !openSubmenusOnClick ? (0,external_wp_i18n_namespaceObject.__)('The current menu options offer reduced accessibility for users and are not recommended. Enabling either "Open on Click" or "Show arrow" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.') : '';
36019    const isFirstRender = (0,external_wp_element_namespaceObject.useRef)(true); // Don't speak on first render.
36020    (0,external_wp_element_namespaceObject.useEffect)(() => {
36021      if (!isFirstRender.current && submenuAccessibilityNotice) {
36022        (0,external_wp_a11y_namespaceObject.speak)(submenuAccessibilityNotice);
36023      }
36024      isFirstRender.current = false;
36025    }, [submenuAccessibilityNotice]);
36026    const overlayMenuPreviewId = (0,external_wp_compose_namespaceObject.useInstanceId)(OverlayMenuPreview, `overlay-menu-preview`);
36027    const stylingInspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36028      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
36029        children: hasSubmenuIndicatorSetting && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
36030          title: (0,external_wp_i18n_namespaceObject.__)('Display'),
36031          children: [isResponsive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36032            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
36033              __next40pxDefaultSize: true,
36034              className: overlayMenuPreviewClasses,
36035              onClick: () => {
36036                setOverlayMenuPreview(!overlayMenuPreview);
36037              },
36038              "aria-label": (0,external_wp_i18n_namespaceObject.__)('Overlay menu controls'),
36039              "aria-controls": overlayMenuPreviewId,
36040              "aria-expanded": overlayMenuPreview,
36041              children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36042                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
36043                  icon: icon
36044                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
36045                  icon: library_close
36046                })]
36047              }), !hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36048                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
36049                  children: (0,external_wp_i18n_namespaceObject.__)('Menu')
36050                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
36051                  children: (0,external_wp_i18n_namespaceObject.__)('Close')
36052                })]
36053              })]
36054            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
36055              id: overlayMenuPreviewId,
36056              children: overlayMenuPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuPreview, {
36057                setAttributes: setAttributes,
36058                hasIcon: hasIcon,
36059                icon: icon,
36060                hidden: !overlayMenuPreview
36061              })
36062            })]
36063          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
36064            __next40pxDefaultSize: true,
36065            __nextHasNoMarginBottom: true,
36066            label: (0,external_wp_i18n_namespaceObject.__)('Overlay Menu'),
36067            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Configure overlay menu'),
36068            value: overlayMenu,
36069            help: (0,external_wp_i18n_namespaceObject.__)('Collapses the navigation options in a menu icon opening an overlay.'),
36070            onChange: value => setAttributes({
36071              overlayMenu: value
36072            }),
36073            isBlock: true,
36074            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
36075              value: "never",
36076              label: (0,external_wp_i18n_namespaceObject.__)('Off')
36077            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
36078              value: "mobile",
36079              label: (0,external_wp_i18n_namespaceObject.__)('Mobile')
36080            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
36081              value: "always",
36082              label: (0,external_wp_i18n_namespaceObject.__)('Always')
36083            })]
36084          }), hasSubmenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36085            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
36086              children: (0,external_wp_i18n_namespaceObject.__)('Submenus')
36087            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
36088              __nextHasNoMarginBottom: true,
36089              checked: openSubmenusOnClick,
36090              onChange: value => {
36091                setAttributes({
36092                  openSubmenusOnClick: value,
36093                  ...(value && {
36094                    showSubmenuIcon: true
36095                  }) // Make sure arrows are shown when we toggle this on.
36096                });
36097              },
36098              label: (0,external_wp_i18n_namespaceObject.__)('Open on click')
36099            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
36100              __nextHasNoMarginBottom: true,
36101              checked: showSubmenuIcon,
36102              onChange: value => {
36103                setAttributes({
36104                  showSubmenuIcon: value
36105                });
36106              },
36107              disabled: attributes.openSubmenusOnClick,
36108              label: (0,external_wp_i18n_namespaceObject.__)('Show arrow')
36109            }), submenuAccessibilityNotice && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
36110              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
36111                spokenMessage: null,
36112                status: "warning",
36113                isDismissible: false,
36114                children: submenuAccessibilityNotice
36115              })
36116            })]
36117          })]
36118        })
36119      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
36120        group: "color",
36121        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ColorTools, {
36122          textColor: textColor,
36123          setTextColor: setTextColor,
36124          backgroundColor: backgroundColor,
36125          setBackgroundColor: setBackgroundColor,
36126          overlayTextColor: overlayTextColor,
36127          setOverlayTextColor: setOverlayTextColor,
36128          overlayBackgroundColor: overlayBackgroundColor,
36129          setOverlayBackgroundColor: setOverlayBackgroundColor,
36130          clientId: clientId,
36131          navRef: navRef
36132        })
36133      })]
36134    });
36135    const accessibleDescriptionId = `$clientId}-desc`;
36136    const isHiddenByDefault = 'always' === overlayMenu;
36137    const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
36138    if (hasUnsavedBlocks && !isCreatingNavigationMenu) {
36139      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
36140        ...blockProps,
36141        "aria-describedby": !isPlaceholder ? accessibleDescriptionId : undefined,
36142        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleDescription, {
36143          id: accessibleDescriptionId,
36144          children: (0,external_wp_i18n_namespaceObject.__)('Unsaved Navigation Menu.')
36145        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
36146          clientId: clientId,
36147          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
36148          createNavigationMenuIsError: createNavigationMenuIsError,
36149          currentMenuId: ref,
36150          isNavigationMenuMissing: isNavigationMenuMissing,
36151          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
36152          onCreateNew: createUntitledEmptyNavigationMenu,
36153          onSelectClassicMenu: onSelectClassicMenu,
36154          onSelectNavigationMenu: onSelectNavigationMenu,
36155          isLoading: isLoading,
36156          blockEditingMode: blockEditingMode
36157        }), blockEditingMode === 'default' && stylingInspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResponsiveWrapper, {
36158          id: clientId,
36159          onToggle: setResponsiveMenuVisibility,
36160          isOpen: isResponsiveMenuOpen,
36161          hasIcon: hasIcon,
36162          icon: icon,
36163          isResponsive: isResponsive,
36164          isHiddenByDefault: isHiddenByDefault,
36165          overlayBackgroundColor: overlayBackgroundColor,
36166          overlayTextColor: overlayTextColor,
36167          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(UnsavedInnerBlocks, {
36168            createNavigationMenu: createNavigationMenu,
36169            blocks: uncontrolledInnerBlocks,
36170            hasSelection: isSelected || isInnerBlockSelected
36171          })
36172        })]
36173      });
36174    }
36175  
36176    // Show a warning if the selected menu is no longer available.
36177    // TODO - the user should be able to select a new one?
36178    if (ref && isNavigationMenuMissing) {
36179      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
36180        ...blockProps,
36181        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
36182          clientId: clientId,
36183          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
36184          createNavigationMenuIsError: createNavigationMenuIsError,
36185          currentMenuId: ref,
36186          isNavigationMenuMissing: isNavigationMenuMissing,
36187          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
36188          onCreateNew: createUntitledEmptyNavigationMenu,
36189          onSelectClassicMenu: onSelectClassicMenu,
36190          onSelectNavigationMenu: onSelectNavigationMenu,
36191          isLoading: isLoading,
36192          blockEditingMode: blockEditingMode
36193        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(deleted_navigation_warning, {
36194          onCreateNew: createUntitledEmptyNavigationMenu
36195        })]
36196      });
36197    }
36198    if (isEntityAvailable && hasAlreadyRendered) {
36199      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
36200        ...blockProps,
36201        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
36202          children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
36203        })
36204      });
36205    }
36206    const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : NavigationPlaceholder;
36207  
36208    /**
36209     * Historically the navigation block has supported custom placeholders.
36210     * Even though the current UX tries as hard as possible not to
36211     * end up in a placeholder state, the block continues to support
36212     * this extensibility point, via a CustomPlaceholder.
36213     * When CustomPlaceholder is present it becomes the default fallback
36214     * for an empty navigation block, instead of the default fallbacks.
36215     *
36216     */
36217  
36218    if (isPlaceholder && CustomPlaceholder) {
36219      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
36220        ...blockProps,
36221        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderComponent, {
36222          isSelected: isSelected,
36223          currentMenuId: ref,
36224          clientId: clientId,
36225          canUserCreateNavigationMenus: canUserCreateNavigationMenus,
36226          isResolvingCanUserCreateNavigationMenus: isResolvingCanUserCreateNavigationMenus,
36227          onSelectNavigationMenu: onSelectNavigationMenu,
36228          onSelectClassicMenu: onSelectClassicMenu,
36229          onCreateEmpty: createUntitledEmptyNavigationMenu
36230        })
36231      });
36232    }
36233    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_coreData_namespaceObject.EntityProvider, {
36234      kind: "postType",
36235      type: "wp_navigation",
36236      id: ref,
36237      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
36238        uniqueId: recursionId,
36239        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
36240          clientId: clientId,
36241          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
36242          createNavigationMenuIsError: createNavigationMenuIsError,
36243          currentMenuId: ref,
36244          isNavigationMenuMissing: isNavigationMenuMissing,
36245          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
36246          onCreateNew: createUntitledEmptyNavigationMenu,
36247          onSelectClassicMenu: onSelectClassicMenu,
36248          onSelectNavigationMenu: onSelectNavigationMenu,
36249          isLoading: isLoading,
36250          blockEditingMode: blockEditingMode
36251        }), blockEditingMode === 'default' && stylingInspectorControls, blockEditingMode === 'default' && isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
36252          group: "advanced",
36253          children: [hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationMenuNameControl, {}), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationMenuDeleteControl, {
36254            onDelete: () => {
36255              replaceInnerBlocks(clientId, []);
36256              showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)('Navigation Menu successfully deleted.'));
36257            }
36258          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(manage_menus_button, {
36259            disabled: isManageMenusButtonDisabled,
36260            className: "wp-block-navigation-manage-menus-button"
36261          })]
36262        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
36263          ...blockProps,
36264          "aria-describedby": !isPlaceholder && !isLoading ? accessibleDescriptionId : undefined,
36265          children: [isLoading && !isHiddenByDefault && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
36266            className: "wp-block-navigation__loading-indicator-container",
36267            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {
36268              className: "wp-block-navigation__loading-indicator"
36269            })
36270          }), (!isLoading || isHiddenByDefault) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36271            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleMenuDescription, {
36272              id: accessibleDescriptionId
36273            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResponsiveWrapper, {
36274              id: clientId,
36275              onToggle: setResponsiveMenuVisibility,
36276              hasIcon: hasIcon,
36277              icon: icon,
36278              isOpen: isResponsiveMenuOpen,
36279              isResponsive: isResponsive,
36280              isHiddenByDefault: isHiddenByDefault,
36281              overlayBackgroundColor: overlayBackgroundColor,
36282              overlayTextColor: overlayTextColor,
36283              children: isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationInnerBlocks, {
36284                clientId: clientId,
36285                hasCustomPlaceholder: !!CustomPlaceholder,
36286                templateLock: templateLock,
36287                orientation: orientation
36288              })
36289            })]
36290          })]
36291        })]
36292      })
36293    });
36294  }
36295  /* harmony default export */ const navigation_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)({
36296    textColor: 'color'
36297  }, {
36298    backgroundColor: 'color'
36299  }, {
36300    overlayBackgroundColor: 'color'
36301  }, {
36302    overlayTextColor: 'color'
36303  })(Navigation));
36304  
36305  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/save.js
36306  /**
36307   * WordPress dependencies
36308   */
36309  
36310  
36311  function navigation_save_save({
36312    attributes
36313  }) {
36314    if (attributes.ref) {
36315      // Avoid rendering inner blocks when a ref is defined.
36316      // When this id is defined the inner blocks are loaded from the
36317      // `wp_navigation` entity rather than the hard-coded block html.
36318      return;
36319    }
36320    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36321  }
36322  
36323  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/deprecated.js
36324  /**
36325   * WordPress dependencies
36326   */
36327  
36328  
36329  
36330  /**
36331   * Internal dependencies
36332   */
36333  
36334  
36335  const TYPOGRAPHY_PRESET_DEPRECATION_MAP = {
36336    fontStyle: 'var:preset|font-style|',
36337    fontWeight: 'var:preset|font-weight|',
36338    textDecoration: 'var:preset|text-decoration|',
36339    textTransform: 'var:preset|text-transform|'
36340  };
36341  const migrateIdToRef = ({
36342    navigationMenuId,
36343    ...attributes
36344  }) => {
36345    return {
36346      ...attributes,
36347      ref: navigationMenuId
36348    };
36349  };
36350  const deprecated_migrateWithLayout = attributes => {
36351    if (!!attributes.layout) {
36352      return attributes;
36353    }
36354    const {
36355      itemsJustification,
36356      orientation,
36357      ...updatedAttributes
36358    } = attributes;
36359    if (itemsJustification || orientation) {
36360      Object.assign(updatedAttributes, {
36361        layout: {
36362          type: 'flex',
36363          ...(itemsJustification && {
36364            justifyContent: itemsJustification
36365          }),
36366          ...(orientation && {
36367            orientation
36368          })
36369        }
36370      });
36371    }
36372    return updatedAttributes;
36373  };
36374  const navigation_deprecated_v6 = {
36375    attributes: {
36376      navigationMenuId: {
36377        type: 'number'
36378      },
36379      textColor: {
36380        type: 'string'
36381      },
36382      customTextColor: {
36383        type: 'string'
36384      },
36385      rgbTextColor: {
36386        type: 'string'
36387      },
36388      backgroundColor: {
36389        type: 'string'
36390      },
36391      customBackgroundColor: {
36392        type: 'string'
36393      },
36394      rgbBackgroundColor: {
36395        type: 'string'
36396      },
36397      showSubmenuIcon: {
36398        type: 'boolean',
36399        default: true
36400      },
36401      openSubmenusOnClick: {
36402        type: 'boolean',
36403        default: false
36404      },
36405      overlayMenu: {
36406        type: 'string',
36407        default: 'mobile'
36408      },
36409      __unstableLocation: {
36410        type: 'string'
36411      },
36412      overlayBackgroundColor: {
36413        type: 'string'
36414      },
36415      customOverlayBackgroundColor: {
36416        type: 'string'
36417      },
36418      overlayTextColor: {
36419        type: 'string'
36420      },
36421      customOverlayTextColor: {
36422        type: 'string'
36423      }
36424    },
36425    supports: {
36426      align: ['wide', 'full'],
36427      anchor: true,
36428      html: false,
36429      inserter: true,
36430      typography: {
36431        fontSize: true,
36432        lineHeight: true,
36433        __experimentalFontStyle: true,
36434        __experimentalFontWeight: true,
36435        __experimentalTextTransform: true,
36436        __experimentalFontFamily: true,
36437        __experimentalTextDecoration: true,
36438        __experimentalDefaultControls: {
36439          fontSize: true
36440        }
36441      },
36442      spacing: {
36443        blockGap: true,
36444        units: ['px', 'em', 'rem', 'vh', 'vw'],
36445        __experimentalDefaultControls: {
36446          blockGap: true
36447        }
36448      },
36449      layout: {
36450        allowSwitching: false,
36451        allowInheriting: false,
36452        default: {
36453          type: 'flex'
36454        }
36455      }
36456    },
36457    save() {
36458      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36459    },
36460    isEligible: ({
36461      navigationMenuId
36462    }) => !!navigationMenuId,
36463    migrate: migrateIdToRef
36464  };
36465  const navigation_deprecated_v5 = {
36466    attributes: {
36467      navigationMenuId: {
36468        type: 'number'
36469      },
36470      orientation: {
36471        type: 'string',
36472        default: 'horizontal'
36473      },
36474      textColor: {
36475        type: 'string'
36476      },
36477      customTextColor: {
36478        type: 'string'
36479      },
36480      rgbTextColor: {
36481        type: 'string'
36482      },
36483      backgroundColor: {
36484        type: 'string'
36485      },
36486      customBackgroundColor: {
36487        type: 'string'
36488      },
36489      rgbBackgroundColor: {
36490        type: 'string'
36491      },
36492      itemsJustification: {
36493        type: 'string'
36494      },
36495      showSubmenuIcon: {
36496        type: 'boolean',
36497        default: true
36498      },
36499      openSubmenusOnClick: {
36500        type: 'boolean',
36501        default: false
36502      },
36503      overlayMenu: {
36504        type: 'string',
36505        default: 'never'
36506      },
36507      __unstableLocation: {
36508        type: 'string'
36509      },
36510      overlayBackgroundColor: {
36511        type: 'string'
36512      },
36513      customOverlayBackgroundColor: {
36514        type: 'string'
36515      },
36516      overlayTextColor: {
36517        type: 'string'
36518      },
36519      customOverlayTextColor: {
36520        type: 'string'
36521      }
36522    },
36523    supports: {
36524      align: ['wide', 'full'],
36525      anchor: true,
36526      html: false,
36527      inserter: true,
36528      typography: {
36529        fontSize: true,
36530        lineHeight: true,
36531        __experimentalFontStyle: true,
36532        __experimentalFontWeight: true,
36533        __experimentalTextTransform: true,
36534        __experimentalFontFamily: true,
36535        __experimentalTextDecoration: true,
36536        __experimentalDefaultControls: {
36537          fontSize: true
36538        }
36539      },
36540      spacing: {
36541        blockGap: true,
36542        units: ['px', 'em', 'rem', 'vh', 'vw'],
36543        __experimentalDefaultControls: {
36544          blockGap: true
36545        }
36546      }
36547    },
36548    save() {
36549      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36550    },
36551    isEligible: ({
36552      itemsJustification,
36553      orientation
36554    }) => !!itemsJustification || !!orientation,
36555    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout)
36556  };
36557  const navigation_deprecated_v4 = {
36558    attributes: {
36559      orientation: {
36560        type: 'string',
36561        default: 'horizontal'
36562      },
36563      textColor: {
36564        type: 'string'
36565      },
36566      customTextColor: {
36567        type: 'string'
36568      },
36569      rgbTextColor: {
36570        type: 'string'
36571      },
36572      backgroundColor: {
36573        type: 'string'
36574      },
36575      customBackgroundColor: {
36576        type: 'string'
36577      },
36578      rgbBackgroundColor: {
36579        type: 'string'
36580      },
36581      itemsJustification: {
36582        type: 'string'
36583      },
36584      showSubmenuIcon: {
36585        type: 'boolean',
36586        default: true
36587      },
36588      openSubmenusOnClick: {
36589        type: 'boolean',
36590        default: false
36591      },
36592      overlayMenu: {
36593        type: 'string',
36594        default: 'never'
36595      },
36596      __unstableLocation: {
36597        type: 'string'
36598      },
36599      overlayBackgroundColor: {
36600        type: 'string'
36601      },
36602      customOverlayBackgroundColor: {
36603        type: 'string'
36604      },
36605      overlayTextColor: {
36606        type: 'string'
36607      },
36608      customOverlayTextColor: {
36609        type: 'string'
36610      }
36611    },
36612    supports: {
36613      align: ['wide', 'full'],
36614      anchor: true,
36615      html: false,
36616      inserter: true,
36617      typography: {
36618        fontSize: true,
36619        lineHeight: true,
36620        __experimentalFontStyle: true,
36621        __experimentalFontWeight: true,
36622        __experimentalTextTransform: true,
36623        __experimentalFontFamily: true,
36624        __experimentalTextDecoration: true
36625      },
36626      spacing: {
36627        blockGap: true,
36628        units: ['px', 'em', 'rem', 'vh', 'vw'],
36629        __experimentalDefaultControls: {
36630          blockGap: true
36631        }
36632      }
36633    },
36634    save() {
36635      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36636    },
36637    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family),
36638    isEligible({
36639      style
36640    }) {
36641      return style?.typography?.fontFamily;
36642    }
36643  };
36644  const migrateIsResponsive = function (attributes) {
36645    delete attributes.isResponsive;
36646    return {
36647      ...attributes,
36648      overlayMenu: 'mobile'
36649    };
36650  };
36651  const migrateTypographyPresets = function (attributes) {
36652    var _attributes$style$typ;
36653    return {
36654      ...attributes,
36655      style: {
36656        ...attributes.style,
36657        typography: Object.fromEntries(Object.entries((_attributes$style$typ = attributes.style.typography) !== null && _attributes$style$typ !== void 0 ? _attributes$style$typ : {}).map(([key, value]) => {
36658          const prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[key];
36659          if (prefix && value.startsWith(prefix)) {
36660            const newValue = value.slice(prefix.length);
36661            if ('textDecoration' === key && 'strikethrough' === newValue) {
36662              return [key, 'line-through'];
36663            }
36664            return [key, newValue];
36665          }
36666          return [key, value];
36667        }))
36668      }
36669    };
36670  };
36671  const navigation_deprecated_deprecated = [navigation_deprecated_v6, navigation_deprecated_v5, navigation_deprecated_v4,
36672  // Remove `isResponsive` attribute.
36673  {
36674    attributes: {
36675      orientation: {
36676        type: 'string',
36677        default: 'horizontal'
36678      },
36679      textColor: {
36680        type: 'string'
36681      },
36682      customTextColor: {
36683        type: 'string'
36684      },
36685      rgbTextColor: {
36686        type: 'string'
36687      },
36688      backgroundColor: {
36689        type: 'string'
36690      },
36691      customBackgroundColor: {
36692        type: 'string'
36693      },
36694      rgbBackgroundColor: {
36695        type: 'string'
36696      },
36697      itemsJustification: {
36698        type: 'string'
36699      },
36700      showSubmenuIcon: {
36701        type: 'boolean',
36702        default: true
36703      },
36704      openSubmenusOnClick: {
36705        type: 'boolean',
36706        default: false
36707      },
36708      isResponsive: {
36709        type: 'boolean',
36710        default: 'false'
36711      },
36712      __unstableLocation: {
36713        type: 'string'
36714      },
36715      overlayBackgroundColor: {
36716        type: 'string'
36717      },
36718      customOverlayBackgroundColor: {
36719        type: 'string'
36720      },
36721      overlayTextColor: {
36722        type: 'string'
36723      },
36724      customOverlayTextColor: {
36725        type: 'string'
36726      }
36727    },
36728    supports: {
36729      align: ['wide', 'full'],
36730      anchor: true,
36731      html: false,
36732      inserter: true,
36733      typography: {
36734        fontSize: true,
36735        lineHeight: true,
36736        __experimentalFontStyle: true,
36737        __experimentalFontWeight: true,
36738        __experimentalTextTransform: true,
36739        __experimentalFontFamily: true,
36740        __experimentalTextDecoration: true
36741      }
36742    },
36743    isEligible(attributes) {
36744      return attributes.isResponsive;
36745    },
36746    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateIsResponsive),
36747    save() {
36748      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36749    }
36750  }, {
36751    attributes: {
36752      orientation: {
36753        type: 'string'
36754      },
36755      textColor: {
36756        type: 'string'
36757      },
36758      customTextColor: {
36759        type: 'string'
36760      },
36761      rgbTextColor: {
36762        type: 'string'
36763      },
36764      backgroundColor: {
36765        type: 'string'
36766      },
36767      customBackgroundColor: {
36768        type: 'string'
36769      },
36770      rgbBackgroundColor: {
36771        type: 'string'
36772      },
36773      itemsJustification: {
36774        type: 'string'
36775      },
36776      showSubmenuIcon: {
36777        type: 'boolean',
36778        default: true
36779      }
36780    },
36781    supports: {
36782      align: ['wide', 'full'],
36783      anchor: true,
36784      html: false,
36785      inserter: true,
36786      fontSize: true,
36787      __experimentalFontStyle: true,
36788      __experimentalFontWeight: true,
36789      __experimentalTextTransform: true,
36790      color: true,
36791      __experimentalFontFamily: true,
36792      __experimentalTextDecoration: true
36793    },
36794    save() {
36795      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36796    },
36797    isEligible(attributes) {
36798      if (!attributes.style || !attributes.style.typography) {
36799        return false;
36800      }
36801      for (const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP) {
36802        const attributeValue = attributes.style.typography[styleAttribute];
36803        if (attributeValue && attributeValue.startsWith(TYPOGRAPHY_PRESET_DEPRECATION_MAP[styleAttribute])) {
36804          return true;
36805        }
36806      }
36807      return false;
36808    },
36809    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateTypographyPresets)
36810  }, {
36811    attributes: {
36812      className: {
36813        type: 'string'
36814      },
36815      textColor: {
36816        type: 'string'
36817      },
36818      rgbTextColor: {
36819        type: 'string'
36820      },
36821      backgroundColor: {
36822        type: 'string'
36823      },
36824      rgbBackgroundColor: {
36825        type: 'string'
36826      },
36827      fontSize: {
36828        type: 'string'
36829      },
36830      customFontSize: {
36831        type: 'number'
36832      },
36833      itemsJustification: {
36834        type: 'string'
36835      },
36836      showSubmenuIcon: {
36837        type: 'boolean'
36838      }
36839    },
36840    isEligible(attribute) {
36841      return attribute.rgbTextColor || attribute.rgbBackgroundColor;
36842    },
36843    supports: {
36844      align: ['wide', 'full'],
36845      anchor: true,
36846      html: false,
36847      inserter: true
36848    },
36849    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, attributes => {
36850      const {
36851        rgbTextColor,
36852        rgbBackgroundColor,
36853        ...restAttributes
36854      } = attributes;
36855      return {
36856        ...restAttributes,
36857        customTextColor: attributes.textColor ? undefined : attributes.rgbTextColor,
36858        customBackgroundColor: attributes.backgroundColor ? undefined : attributes.rgbBackgroundColor
36859      };
36860    }),
36861    save() {
36862      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
36863    }
36864  }];
36865  /* harmony default export */ const navigation_deprecated = (navigation_deprecated_deprecated);
36866  
36867  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/index.js
36868  /**
36869   * WordPress dependencies
36870   */
36871  
36872  
36873  
36874  /**
36875   * Internal dependencies
36876   */
36877  
36878  const navigation_metadata = {
36879    $schema: "https://schemas.wp.org/trunk/block.json",
36880    apiVersion: 3,
36881    name: "core/navigation",
36882    title: "Navigation",
36883    category: "theme",
36884    allowedBlocks: ["core/navigation-link", "core/search", "core/social-links", "core/page-list", "core/spacer", "core/home-link", "core/site-title", "core/site-logo", "core/navigation-submenu", "core/loginout", "core/buttons"],
36885    description: "A collection of blocks that allow visitors to get around your site.",
36886    keywords: ["menu", "navigation", "links"],
36887    textdomain: "default",
36888    attributes: {
36889      ref: {
36890        type: "number"
36891      },
36892      textColor: {
36893        type: "string"
36894      },
36895      customTextColor: {
36896        type: "string"
36897      },
36898      rgbTextColor: {
36899        type: "string"
36900      },
36901      backgroundColor: {
36902        type: "string"
36903      },
36904      customBackgroundColor: {
36905        type: "string"
36906      },
36907      rgbBackgroundColor: {
36908        type: "string"
36909      },
36910      showSubmenuIcon: {
36911        type: "boolean",
36912        "default": true
36913      },
36914      openSubmenusOnClick: {
36915        type: "boolean",
36916        "default": false
36917      },
36918      overlayMenu: {
36919        type: "string",
36920        "default": "mobile"
36921      },
36922      icon: {
36923        type: "string",
36924        "default": "handle"
36925      },
36926      hasIcon: {
36927        type: "boolean",
36928        "default": true
36929      },
36930      __unstableLocation: {
36931        type: "string"
36932      },
36933      overlayBackgroundColor: {
36934        type: "string"
36935      },
36936      customOverlayBackgroundColor: {
36937        type: "string"
36938      },
36939      overlayTextColor: {
36940        type: "string"
36941      },
36942      customOverlayTextColor: {
36943        type: "string"
36944      },
36945      maxNestingLevel: {
36946        type: "number",
36947        "default": 5
36948      },
36949      templateLock: {
36950        type: ["string", "boolean"],
36951        "enum": ["all", "insert", "contentOnly", false]
36952      }
36953    },
36954    providesContext: {
36955      textColor: "textColor",
36956      customTextColor: "customTextColor",
36957      backgroundColor: "backgroundColor",
36958      customBackgroundColor: "customBackgroundColor",
36959      overlayTextColor: "overlayTextColor",
36960      customOverlayTextColor: "customOverlayTextColor",
36961      overlayBackgroundColor: "overlayBackgroundColor",
36962      customOverlayBackgroundColor: "customOverlayBackgroundColor",
36963      fontSize: "fontSize",
36964      customFontSize: "customFontSize",
36965      showSubmenuIcon: "showSubmenuIcon",
36966      openSubmenusOnClick: "openSubmenusOnClick",
36967      style: "style",
36968      maxNestingLevel: "maxNestingLevel"
36969    },
36970    supports: {
36971      align: ["wide", "full"],
36972      ariaLabel: true,
36973      html: false,
36974      inserter: true,
36975      typography: {
36976        fontSize: true,
36977        lineHeight: true,
36978        __experimentalFontStyle: true,
36979        __experimentalFontWeight: true,
36980        __experimentalTextTransform: true,
36981        __experimentalFontFamily: true,
36982        __experimentalLetterSpacing: true,
36983        __experimentalTextDecoration: true,
36984        __experimentalSkipSerialization: ["textDecoration"],
36985        __experimentalDefaultControls: {
36986          fontSize: true
36987        }
36988      },
36989      spacing: {
36990        blockGap: true,
36991        units: ["px", "em", "rem", "vh", "vw"],
36992        __experimentalDefaultControls: {
36993          blockGap: true
36994        }
36995      },
36996      layout: {
36997        allowSwitching: false,
36998        allowInheriting: false,
36999        allowVerticalAlignment: false,
37000        allowSizingOnChildren: true,
37001        "default": {
37002          type: "flex"
37003        }
37004      },
37005      interactivity: true,
37006      renaming: false
37007    },
37008    editorStyle: "wp-block-navigation-editor",
37009    style: "wp-block-navigation"
37010  };
37011  
37012  
37013  
37014  const {
37015    name: navigation_name
37016  } = navigation_metadata;
37017  
37018  const navigation_settings = {
37019    icon: library_navigation,
37020    example: {
37021      attributes: {
37022        overlayMenu: 'never'
37023      },
37024      innerBlocks: [{
37025        name: 'core/navigation-link',
37026        attributes: {
37027          // translators: 'Home' as in a website's home page.
37028          label: (0,external_wp_i18n_namespaceObject.__)('Home'),
37029          url: 'https://make.wordpress.org/'
37030        }
37031      }, {
37032        name: 'core/navigation-link',
37033        attributes: {
37034          // translators: 'About' as in a website's about page.
37035          label: (0,external_wp_i18n_namespaceObject.__)('About'),
37036          url: 'https://make.wordpress.org/'
37037        }
37038      }, {
37039        name: 'core/navigation-link',
37040        attributes: {
37041          // translators: 'Contact' as in a website's contact page.
37042          label: (0,external_wp_i18n_namespaceObject.__)('Contact'),
37043          url: 'https://make.wordpress.org/'
37044        }
37045      }]
37046    },
37047    edit: navigation_edit,
37048    save: navigation_save_save,
37049    deprecated: navigation_deprecated
37050  };
37051  const navigation_init = () => initBlock({
37052    name: navigation_name,
37053    metadata: navigation_metadata,
37054    settings: navigation_settings
37055  });
37056  
37057  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/edit.js
37058  /**
37059   * External dependencies
37060   */
37061  
37062  
37063  /**
37064   * WordPress dependencies
37065   */
37066  
37067  
37068  
37069  
37070  
37071  
37072  
37073  
37074  
37075  
37076  
37077  
37078  
37079  
37080  /**
37081   * Internal dependencies
37082   */
37083  
37084  
37085  
37086  
37087  
37088  
37089  const navigation_link_edit_DEFAULT_BLOCK = {
37090    name: 'core/navigation-link'
37091  };
37092  
37093  /**
37094   * A React hook to determine if it's dragging within the target element.
37095   *
37096   * @typedef {import('@wordpress/element').RefObject} RefObject
37097   *
37098   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
37099   *
37100   * @return {boolean} Is dragging within the target element.
37101   */
37102  const useIsDraggingWithin = elementRef => {
37103    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
37104    (0,external_wp_element_namespaceObject.useEffect)(() => {
37105      const {
37106        ownerDocument
37107      } = elementRef.current;
37108      function handleDragStart(event) {
37109        // Check the first time when the dragging starts.
37110        handleDragEnter(event);
37111      }
37112  
37113      // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
37114      function handleDragEnd() {
37115        setIsDraggingWithin(false);
37116      }
37117      function handleDragEnter(event) {
37118        // Check if the current target is inside the item element.
37119        if (elementRef.current.contains(event.target)) {
37120          setIsDraggingWithin(true);
37121        } else {
37122          setIsDraggingWithin(false);
37123        }
37124      }
37125  
37126      // Bind these events to the document to catch all drag events.
37127      // Ideally, we can also use `event.relatedTarget`, but sadly that
37128      // doesn't work in Safari.
37129      ownerDocument.addEventListener('dragstart', handleDragStart);
37130      ownerDocument.addEventListener('dragend', handleDragEnd);
37131      ownerDocument.addEventListener('dragenter', handleDragEnter);
37132      return () => {
37133        ownerDocument.removeEventListener('dragstart', handleDragStart);
37134        ownerDocument.removeEventListener('dragend', handleDragEnd);
37135        ownerDocument.removeEventListener('dragenter', handleDragEnter);
37136      };
37137    }, [elementRef]);
37138    return isDraggingWithin;
37139  };
37140  const useIsInvalidLink = (kind, type, id) => {
37141    const isPostType = kind === 'post-type' || type === 'post' || type === 'page';
37142    const hasId = Number.isInteger(id);
37143    const postStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
37144      if (!isPostType) {
37145        return null;
37146      }
37147      const {
37148        getEntityRecord
37149      } = select(external_wp_coreData_namespaceObject.store);
37150      return getEntityRecord('postType', type, id)?.status;
37151    }, [isPostType, type, id]);
37152  
37153    // Check Navigation Link validity if:
37154    // 1. Link is 'post-type'.
37155    // 2. It has an id.
37156    // 3. It's neither null, nor undefined, as valid items might be either of those while loading.
37157    // If those conditions are met, check if
37158    // 1. The post status is published.
37159    // 2. The Navigation Link item has no label.
37160    // If either of those is true, invalidate.
37161    const isInvalid = isPostType && hasId && postStatus && 'trash' === postStatus;
37162    const isDraft = 'draft' === postStatus;
37163    return [isInvalid, isDraft];
37164  };
37165  function getMissingText(type) {
37166    let missingText = '';
37167    switch (type) {
37168      case 'post':
37169        /* translators: label for missing post in navigation link block */
37170        missingText = (0,external_wp_i18n_namespaceObject.__)('Select post');
37171        break;
37172      case 'page':
37173        /* translators: label for missing page in navigation link block */
37174        missingText = (0,external_wp_i18n_namespaceObject.__)('Select page');
37175        break;
37176      case 'category':
37177        /* translators: label for missing category in navigation link block */
37178        missingText = (0,external_wp_i18n_namespaceObject.__)('Select category');
37179        break;
37180      case 'tag':
37181        /* translators: label for missing tag in navigation link block */
37182        missingText = (0,external_wp_i18n_namespaceObject.__)('Select tag');
37183        break;
37184      default:
37185        /* translators: label for missing values in navigation link block */
37186        missingText = (0,external_wp_i18n_namespaceObject.__)('Add link');
37187    }
37188    return missingText;
37189  }
37190  
37191  /*
37192   * Warning, this duplicated in
37193   * packages/block-library/src/navigation-submenu/edit.js
37194   * Consider reuseing this components for both blocks.
37195   */
37196  function Controls({
37197    attributes,
37198    setAttributes,
37199    setIsLabelFieldFocused
37200  }) {
37201    const {
37202      label,
37203      url,
37204      description,
37205      title,
37206      rel
37207    } = attributes;
37208    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
37209      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
37210      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
37211        __nextHasNoMarginBottom: true,
37212        __next40pxDefaultSize: true,
37213        value: label ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(label) : '',
37214        onChange: labelValue => {
37215          setAttributes({
37216            label: labelValue
37217          });
37218        },
37219        label: (0,external_wp_i18n_namespaceObject.__)('Text'),
37220        autoComplete: "off",
37221        onFocus: () => setIsLabelFieldFocused(true),
37222        onBlur: () => setIsLabelFieldFocused(false)
37223      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
37224        __nextHasNoMarginBottom: true,
37225        __next40pxDefaultSize: true,
37226        value: url ? (0,external_wp_url_namespaceObject.safeDecodeURI)(url) : '',
37227        onChange: urlValue => {
37228          updateAttributes({
37229            url: urlValue
37230          }, setAttributes, attributes);
37231        },
37232        label: (0,external_wp_i18n_namespaceObject.__)('Link'),
37233        autoComplete: "off"
37234      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
37235        __nextHasNoMarginBottom: true,
37236        value: description || '',
37237        onChange: descriptionValue => {
37238          setAttributes({
37239            description: descriptionValue
37240          });
37241        },
37242        label: (0,external_wp_i18n_namespaceObject.__)('Description'),
37243        help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
37244      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
37245        __nextHasNoMarginBottom: true,
37246        __next40pxDefaultSize: true,
37247        value: title || '',
37248        onChange: titleValue => {
37249          setAttributes({
37250            title: titleValue
37251          });
37252        },
37253        label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
37254        autoComplete: "off",
37255        help: (0,external_wp_i18n_namespaceObject.__)('Additional information to help clarify the purpose of the link.')
37256      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
37257        __nextHasNoMarginBottom: true,
37258        __next40pxDefaultSize: true,
37259        value: rel || '',
37260        onChange: relValue => {
37261          setAttributes({
37262            rel: relValue
37263          });
37264        },
37265        label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
37266        autoComplete: "off",
37267        help: (0,external_wp_i18n_namespaceObject.__)('The relationship of the linked URL as space-separated link types.')
37268      })]
37269    });
37270  }
37271  function NavigationLinkEdit({
37272    attributes,
37273    isSelected,
37274    setAttributes,
37275    insertBlocksAfter,
37276    mergeBlocks,
37277    onReplace,
37278    context,
37279    clientId
37280  }) {
37281    const {
37282      id,
37283      label,
37284      type,
37285      url,
37286      description,
37287      kind
37288    } = attributes;
37289    const [isInvalid, isDraft] = useIsInvalidLink(kind, type, id);
37290    const {
37291      maxNestingLevel
37292    } = context;
37293    const {
37294      replaceBlock,
37295      __unstableMarkNextChangeAsNotPersistent,
37296      selectBlock,
37297      selectPreviousBlock
37298    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
37299    // Have the link editing ui open on mount when lacking a url and selected.
37300    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(isSelected && !url);
37301    // Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)
37302    const [openedBy, setOpenedBy] = (0,external_wp_element_namespaceObject.useState)(null);
37303    // Use internal state instead of a ref to make sure that the component
37304    // re-renders when the popover's anchor updates.
37305    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
37306    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
37307    const isDraggingWithin = useIsDraggingWithin(listItemRef);
37308    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add label…');
37309    const ref = (0,external_wp_element_namespaceObject.useRef)();
37310    const linkUIref = (0,external_wp_element_namespaceObject.useRef)();
37311    const prevUrl = (0,external_wp_compose_namespaceObject.usePrevious)(url);
37312  
37313    // Change the label using inspector causes rich text to change focus on firefox.
37314    // This is a workaround to keep the focus on the label field when label filed is focused we don't render the rich text.
37315    const [isLabelFieldFocused, setIsLabelFieldFocused] = (0,external_wp_element_namespaceObject.useState)(false);
37316    const {
37317      isAtMaxNesting,
37318      isTopLevelLink,
37319      isParentOfSelectedBlock,
37320      hasChildren
37321    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
37322      const {
37323        getBlockCount,
37324        getBlockName,
37325        getBlockRootClientId,
37326        hasSelectedInnerBlock,
37327        getBlockParentsByBlockName
37328      } = select(external_wp_blockEditor_namespaceObject.store);
37329      return {
37330        isAtMaxNesting: getBlockParentsByBlockName(clientId, ['core/navigation-link', 'core/navigation-submenu']).length >= maxNestingLevel,
37331        isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation',
37332        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
37333        hasChildren: !!getBlockCount(clientId)
37334      };
37335    }, [clientId, maxNestingLevel]);
37336    const {
37337      getBlocks
37338    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
37339  
37340    /**
37341     * Transform to submenu block.
37342     */
37343    const transformToSubmenu = () => {
37344      let innerBlocks = getBlocks(clientId);
37345      if (innerBlocks.length === 0) {
37346        innerBlocks = [(0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')];
37347        selectBlock(innerBlocks[0].clientId);
37348      }
37349      const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
37350      replaceBlock(clientId, newSubmenu);
37351    };
37352    (0,external_wp_element_namespaceObject.useEffect)(() => {
37353      // If block has inner blocks, transform to Submenu.
37354      if (hasChildren) {
37355        // This side-effect should not create an undo level as those should
37356        // only be created via user interactions.
37357        __unstableMarkNextChangeAsNotPersistent();
37358        transformToSubmenu();
37359      }
37360    }, [hasChildren]);
37361  
37362    // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
37363    (0,external_wp_element_namespaceObject.useEffect)(() => {
37364      // We only want to do this when the URL has gone from nothing to a new URL AND the label looks like a URL
37365      if (!prevUrl && url && isLinkOpen && (0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
37366        // Focus and select the label text.
37367        selectLabelText();
37368      }
37369    }, [prevUrl, url, isLinkOpen, label]);
37370  
37371    /**
37372     * Focus the Link label text and select it.
37373     */
37374    function selectLabelText() {
37375      ref.current.focus();
37376      const {
37377        ownerDocument
37378      } = ref.current;
37379      const {
37380        defaultView
37381      } = ownerDocument;
37382      const selection = defaultView.getSelection();
37383      const range = ownerDocument.createRange();
37384      // Get the range of the current ref contents so we can add this range to the selection.
37385      range.selectNodeContents(ref.current);
37386      selection.removeAllRanges();
37387      selection.addRange(range);
37388    }
37389  
37390    /**
37391     * Removes the current link if set.
37392     */
37393    function removeLink() {
37394      // Reset all attributes that comprise the link.
37395      // It is critical that all attributes are reset
37396      // to their default values otherwise this may
37397      // in advertently trigger side effects because
37398      // the values will have "changed".
37399      setAttributes({
37400        url: undefined,
37401        label: undefined,
37402        id: undefined,
37403        kind: undefined,
37404        type: undefined,
37405        opensInNewTab: false
37406      });
37407  
37408      // Close the link editing UI.
37409      setIsLinkOpen(false);
37410    }
37411    const {
37412      textColor,
37413      customTextColor,
37414      backgroundColor,
37415      customBackgroundColor
37416    } = getColors(context, !isTopLevelLink);
37417    function onKeyDown(event) {
37418      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
37419        // Required to prevent the command center from opening,
37420        // as it shares the CMD+K shortcut.
37421        // See https://github.com/WordPress/gutenberg/pull/59845.
37422        event.preventDefault();
37423        // If this link is a child of a parent submenu item, the parent submenu item event will also open, closing this popover
37424        event.stopPropagation();
37425        setIsLinkOpen(true);
37426        setOpenedBy(ref.current);
37427      }
37428    }
37429    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
37430      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, listItemRef]),
37431      className: dist_clsx('wp-block-navigation-item', {
37432        'is-editing': isSelected || isParentOfSelectedBlock,
37433        'is-dragging-within': isDraggingWithin,
37434        'has-link': !!url,
37435        'has-child': hasChildren,
37436        'has-text-color': !!textColor || !!customTextColor,
37437        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
37438        'has-background': !!backgroundColor || customBackgroundColor,
37439        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor
37440      }),
37441      style: {
37442        color: !textColor && customTextColor,
37443        backgroundColor: !backgroundColor && customBackgroundColor
37444      },
37445      onKeyDown
37446    });
37447    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
37448      ...blockProps,
37449      className: 'remove-outline' // Remove the outline from the inner blocks container.
37450    }, {
37451      defaultBlock: navigation_link_edit_DEFAULT_BLOCK,
37452      directInsert: true,
37453      renderAppender: false
37454    });
37455    if (!url || isInvalid || isDraft) {
37456      blockProps.onClick = () => {
37457        setIsLinkOpen(true);
37458        setOpenedBy(ref.current);
37459      };
37460    }
37461    const classes = dist_clsx('wp-block-navigation-item__content', {
37462      'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft
37463    });
37464    const missingText = getMissingText(type);
37465    /* translators: Whether the navigation link is Invalid or a Draft. */
37466    const placeholderText = `($isInvalid ? (0,external_wp_i18n_namespaceObject.__)('Invalid') : (0,external_wp_i18n_namespaceObject.__)('Draft')})`;
37467    const tooltipText = isInvalid || isDraft ? (0,external_wp_i18n_namespaceObject.__)('This item has been deleted, or is a draft') : (0,external_wp_i18n_namespaceObject.__)('This item is missing a link');
37468    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37469      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
37470        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
37471          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
37472            name: "link",
37473            icon: library_link,
37474            title: (0,external_wp_i18n_namespaceObject.__)('Link'),
37475            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
37476            onClick: event => {
37477              setIsLinkOpen(true);
37478              setOpenedBy(event.currentTarget);
37479            }
37480          }), !isAtMaxNesting && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
37481            name: "submenu",
37482            icon: add_submenu,
37483            title: (0,external_wp_i18n_namespaceObject.__)('Add submenu'),
37484            onClick: transformToSubmenu
37485          })]
37486        })
37487      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37488        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Controls, {
37489          attributes: attributes,
37490          setAttributes: setAttributes,
37491          setIsLabelFieldFocused: setIsLabelFieldFocused
37492        })
37493      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
37494        ...blockProps,
37495        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
37496          className: classes,
37497          children: [!url ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37498            className: "wp-block-navigation-link__placeholder-text",
37499            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Tooltip, {
37500              text: tooltipText,
37501              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37502                children: missingText
37503              })
37504            })
37505          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37506            children: [!isInvalid && !isDraft && !isLabelFieldFocused && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37507              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
37508                ref: ref,
37509                identifier: "label",
37510                className: "wp-block-navigation-item__label",
37511                value: label,
37512                onChange: labelValue => setAttributes({
37513                  label: labelValue
37514                }),
37515                onMerge: mergeBlocks,
37516                onReplace: onReplace,
37517                __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')),
37518                "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
37519                placeholder: itemLabelPlaceholder,
37520                withoutInteractiveFormatting: true,
37521                allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough']
37522              }), description && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37523                className: "wp-block-navigation-item__description",
37524                children: description
37525              })]
37526            }), (isInvalid || isDraft || isLabelFieldFocused) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37527              className: "wp-block-navigation-link__placeholder-text wp-block-navigation-link__label",
37528              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Tooltip, {
37529                text: tooltipText,
37530                children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37531                  "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
37532                  children:
37533                  // Some attributes are stored in an escaped form. It's a legacy issue.
37534                  // Ideally they would be stored in a raw, unescaped form.
37535                  // Unescape is used here to "recover" the escaped characters
37536                  // so they display without encoding.
37537                  // See `updateAttributes` for more details.
37538                  `${(0,external_wp_htmlEntities_namespaceObject.decodeEntities)(label)} $isInvalid || isDraft ? placeholderText : ''}`.trim()
37539                })
37540              })
37541            })]
37542          }), isLinkOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
37543            ref: linkUIref,
37544            clientId: clientId,
37545            link: attributes,
37546            onClose: () => {
37547              // If there is no link then remove the auto-inserted block.
37548              // This avoids empty blocks which can provided a poor UX.
37549              if (!url) {
37550                // Fixes https://github.com/WordPress/gutenberg/issues/61361
37551                // There's a chance we're closing due to the user selecting the browse all button.
37552                // Only move focus if the focus is still within the popover ui. If it's not within
37553                // the popover, it's because something has taken the focus from the popover, and
37554                // we don't want to steal it back.
37555                if (linkUIref.current.contains(window.document.activeElement)) {
37556                  // Select the previous block to keep focus nearby
37557                  selectPreviousBlock(clientId, true);
37558                }
37559  
37560                // Remove the link.
37561                onReplace([]);
37562                return;
37563              }
37564              setIsLinkOpen(false);
37565              if (openedBy) {
37566                openedBy.focus();
37567                setOpenedBy(null);
37568              } else if (ref.current) {
37569                // select the ref when adding a new link
37570                ref.current.focus();
37571              } else {
37572                // Fallback
37573                selectPreviousBlock(clientId, true);
37574              }
37575            },
37576            anchor: popoverAnchor,
37577            onRemove: removeLink,
37578            onChange: updatedValue => {
37579              updateAttributes(updatedValue, setAttributes, attributes);
37580            }
37581          })]
37582        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37583          ...innerBlocksProps
37584        })]
37585      })]
37586    });
37587  }
37588  
37589  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/save.js
37590  /**
37591   * WordPress dependencies
37592   */
37593  
37594  
37595  function navigation_link_save_save() {
37596    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37597  }
37598  
37599  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js
37600  /**
37601   * WordPress dependencies
37602   */
37603  
37604  
37605  
37606  const page = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
37607    xmlns: "http://www.w3.org/2000/svg",
37608    viewBox: "0 0 24 24",
37609    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
37610      d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"
37611    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
37612      d: "M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z"
37613    })]
37614  });
37615  /* harmony default export */ const library_page = (page);
37616  
37617  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js
37618  /**
37619   * WordPress dependencies
37620   */
37621  
37622  
37623  const tag = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
37624    xmlns: "http://www.w3.org/2000/svg",
37625    viewBox: "0 0 24 24",
37626    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
37627      d: "M4.75 4a.75.75 0 0 0-.75.75v7.826c0 .2.08.39.22.53l6.72 6.716a2.313 2.313 0 0 0 3.276-.001l5.61-5.611-.531-.53.532.528a2.315 2.315 0 0 0 0-3.264L13.104 4.22a.75.75 0 0 0-.53-.22H4.75ZM19 12.576a.815.815 0 0 1-.236.574l-5.61 5.611a.814.814 0 0 1-1.153 0L5.5 12.264V5.5h6.763l6.5 6.502a.816.816 0 0 1 .237.574ZM8.75 9.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"
37628    })
37629  });
37630  /* harmony default export */ const library_tag = (tag);
37631  
37632  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-post-type.js
37633  /**
37634   * WordPress dependencies
37635   */
37636  
37637  
37638  const customPostType = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
37639    xmlns: "http://www.w3.org/2000/svg",
37640    viewBox: "0 0 24 24",
37641    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
37642      d: "M4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4zm.8-4l.7.7 2-2V12h1V9.2l2 2 .7-.7-2-2H12v-1H9.2l2-2-.7-.7-2 2V4h-1v2.8l-2-2-.7.7 2 2H4v1h2.8l-2 2z"
37643    })
37644  });
37645  /* harmony default export */ const custom_post_type = (customPostType);
37646  
37647  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/hooks.js
37648  /**
37649   * WordPress dependencies
37650   */
37651  
37652  function getIcon(variationName) {
37653    switch (variationName) {
37654      case 'post':
37655        return post_list;
37656      case 'page':
37657        return library_page;
37658      case 'tag':
37659        return library_tag;
37660      case 'category':
37661        return library_category;
37662      default:
37663        return custom_post_type;
37664    }
37665  }
37666  function enhanceNavigationLinkVariations(settings, name) {
37667    if (name !== 'core/navigation-link') {
37668      return settings;
37669    }
37670  
37671    // Otherwise decorate server passed variations with an icon and isActive function.
37672    if (settings.variations) {
37673      const isActive = (blockAttributes, variationAttributes) => {
37674        return blockAttributes.type === variationAttributes.type;
37675      };
37676      const variations = settings.variations.map(variation => {
37677        return {
37678          ...variation,
37679          ...(!variation.icon && {
37680            icon: getIcon(variation.name)
37681          }),
37682          ...(!variation.isActive && {
37683            isActive
37684          })
37685        };
37686      });
37687      return {
37688        ...settings,
37689        variations
37690      };
37691    }
37692    return settings;
37693  }
37694  
37695  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/transforms.js
37696  /**
37697   * WordPress dependencies
37698   */
37699  
37700  const navigation_link_transforms_transforms = {
37701    from: [{
37702      type: 'block',
37703      blocks: ['core/site-logo'],
37704      transform: () => {
37705        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37706      }
37707    }, {
37708      type: 'block',
37709      blocks: ['core/spacer'],
37710      transform: () => {
37711        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37712      }
37713    }, {
37714      type: 'block',
37715      blocks: ['core/home-link'],
37716      transform: () => {
37717        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37718      }
37719    }, {
37720      type: 'block',
37721      blocks: ['core/social-links'],
37722      transform: () => {
37723        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37724      }
37725    }, {
37726      type: 'block',
37727      blocks: ['core/search'],
37728      transform: () => {
37729        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37730      }
37731    }, {
37732      type: 'block',
37733      blocks: ['core/page-list'],
37734      transform: () => {
37735        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37736      }
37737    }, {
37738      type: 'block',
37739      blocks: ['core/buttons'],
37740      transform: () => {
37741        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
37742      }
37743    }],
37744    to: [{
37745      type: 'block',
37746      blocks: ['core/navigation-submenu'],
37747      transform: (attributes, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks)
37748    }, {
37749      type: 'block',
37750      blocks: ['core/spacer'],
37751      transform: () => {
37752        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
37753      }
37754    }, {
37755      type: 'block',
37756      blocks: ['core/site-logo'],
37757      transform: () => {
37758        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
37759      }
37760    }, {
37761      type: 'block',
37762      blocks: ['core/home-link'],
37763      transform: () => {
37764        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
37765      }
37766    }, {
37767      type: 'block',
37768      blocks: ['core/social-links'],
37769      transform: () => {
37770        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
37771      }
37772    }, {
37773      type: 'block',
37774      blocks: ['core/search'],
37775      transform: () => {
37776        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search', {
37777          showLabel: false,
37778          buttonUseIcon: true,
37779          buttonPosition: 'button-inside'
37780        });
37781      }
37782    }, {
37783      type: 'block',
37784      blocks: ['core/page-list'],
37785      transform: () => {
37786        return (0,external_wp_blocks_namespaceObject.createBlock)('core/page-list');
37787      }
37788    }, {
37789      type: 'block',
37790      blocks: ['core/buttons'],
37791      transform: ({
37792        label,
37793        url,
37794        rel,
37795        title,
37796        opensInNewTab
37797      }) => {
37798        return (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
37799          text: label,
37800          url,
37801          rel,
37802          title,
37803          linkTarget: opensInNewTab ? '_blank' : undefined
37804        })]);
37805      }
37806    }]
37807  };
37808  /* harmony default export */ const navigation_link_transforms = (navigation_link_transforms_transforms);
37809  
37810  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
37811  /**
37812   * WordPress dependencies
37813   */
37814  
37815  
37816  
37817  
37818  
37819  /**
37820   * Internal dependencies
37821   */
37822  
37823  const navigation_link_metadata = {
37824    $schema: "https://schemas.wp.org/trunk/block.json",
37825    apiVersion: 3,
37826    name: "core/navigation-link",
37827    title: "Custom Link",
37828    category: "design",
37829    parent: ["core/navigation"],
37830    allowedBlocks: ["core/navigation-link", "core/navigation-submenu", "core/page-list"],
37831    description: "Add a page, link, or another item to your navigation.",
37832    textdomain: "default",
37833    attributes: {
37834      label: {
37835        type: "string"
37836      },
37837      type: {
37838        type: "string"
37839      },
37840      description: {
37841        type: "string"
37842      },
37843      rel: {
37844        type: "string"
37845      },
37846      id: {
37847        type: "number"
37848      },
37849      opensInNewTab: {
37850        type: "boolean",
37851        "default": false
37852      },
37853      url: {
37854        type: "string"
37855      },
37856      title: {
37857        type: "string"
37858      },
37859      kind: {
37860        type: "string"
37861      },
37862      isTopLevelLink: {
37863        type: "boolean"
37864      }
37865    },
37866    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
37867    supports: {
37868      reusable: false,
37869      html: false,
37870      __experimentalSlashInserter: true,
37871      typography: {
37872        fontSize: true,
37873        lineHeight: true,
37874        __experimentalFontFamily: true,
37875        __experimentalFontWeight: true,
37876        __experimentalFontStyle: true,
37877        __experimentalTextTransform: true,
37878        __experimentalTextDecoration: true,
37879        __experimentalLetterSpacing: true,
37880        __experimentalDefaultControls: {
37881          fontSize: true
37882        }
37883      },
37884      renaming: false,
37885      interactivity: {
37886        clientNavigation: true
37887      }
37888    },
37889    editorStyle: "wp-block-navigation-link-editor",
37890    style: "wp-block-navigation-link"
37891  };
37892  
37893  
37894  
37895  
37896  
37897  const {
37898    name: navigation_link_name
37899  } = navigation_link_metadata;
37900  
37901  const navigation_link_settings = {
37902    icon: custom_link,
37903    __experimentalLabel: ({
37904      label
37905    }) => label,
37906    merge(leftAttributes, {
37907      label: rightLabel = ''
37908    }) {
37909      return {
37910        ...leftAttributes,
37911        label: leftAttributes.label + rightLabel
37912      };
37913    },
37914    edit: NavigationLinkEdit,
37915    save: navigation_link_save_save,
37916    example: {
37917      attributes: {
37918        label: (0,external_wp_i18n_namespaceObject._x)('Example Link', 'navigation link preview example'),
37919        url: 'https://example.com'
37920      }
37921    },
37922    deprecated: [{
37923      isEligible(attributes) {
37924        return attributes.nofollow;
37925      },
37926      attributes: {
37927        label: {
37928          type: 'string'
37929        },
37930        type: {
37931          type: 'string'
37932        },
37933        nofollow: {
37934          type: 'boolean'
37935        },
37936        description: {
37937          type: 'string'
37938        },
37939        id: {
37940          type: 'number'
37941        },
37942        opensInNewTab: {
37943          type: 'boolean',
37944          default: false
37945        },
37946        url: {
37947          type: 'string'
37948        }
37949      },
37950      migrate({
37951        nofollow,
37952        ...rest
37953      }) {
37954        return {
37955          rel: nofollow ? 'nofollow' : '',
37956          ...rest
37957        };
37958      },
37959      save() {
37960        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37961      }
37962    }],
37963    transforms: navigation_link_transforms
37964  };
37965  const navigation_link_init = () => {
37966    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);
37967    return initBlock({
37968      name: navigation_link_name,
37969      metadata: navigation_link_metadata,
37970      settings: navigation_link_settings
37971    });
37972  };
37973  
37974  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/remove-submenu.js
37975  /**
37976   * WordPress dependencies
37977   */
37978  
37979  
37980  const removeSubmenu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
37981    xmlns: "http://www.w3.org/2000/svg",
37982    viewBox: "0 0 24 24",
37983    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
37984      fillRule: "evenodd",
37985      clipRule: "evenodd",
37986      d: "m13.955 20.748 8-17.5-.91-.416L19.597 6H13.5v1.5h5.411l-1.6 3.5H13.5v1.5h3.126l-1.6 3.5H13.5l.028 1.5h.812l-1.295 2.832.91.416ZM17.675 16l-.686 1.5h4.539L21.5 16h-3.825Zm2.286-5-.686 1.5H21.5V11h-1.54ZM2 12c0 3.58 2.42 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.48 0-4.5-1.52-4.5-4S5.52 7.5 8 7.5h3.5V6H8c-3.58 0-6 2.42-6 6Z"
37987    })
37988  });
37989  /* harmony default export */ const remove_submenu = (removeSubmenu);
37990  
37991  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/icons.js
37992  /**
37993   * WordPress dependencies
37994   */
37995  
37996  
37997  const ItemSubmenuIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
37998    xmlns: "http://www.w3.org/2000/svg",
37999    width: "12",
38000    height: "12",
38001    viewBox: "0 0 12 12",
38002    fill: "none",
38003    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
38004      d: "M1.50002 4L6.00002 8L10.5 4",
38005      strokeWidth: "1.5"
38006    })
38007  });
38008  
38009  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/edit.js
38010  /**
38011   * External dependencies
38012   */
38013  
38014  
38015  /**
38016   * WordPress dependencies
38017   */
38018  
38019  
38020  
38021  
38022  
38023  
38024  
38025  
38026  
38027  
38028  
38029  
38030  /**
38031   * Internal dependencies
38032   */
38033  
38034  
38035  
38036  
38037  
38038  
38039  
38040  const ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu', 'core/page-list'];
38041  const navigation_submenu_edit_DEFAULT_BLOCK = {
38042    name: 'core/navigation-link'
38043  };
38044  
38045  /**
38046   * A React hook to determine if it's dragging within the target element.
38047   *
38048   * @typedef {import('@wordpress/element').RefObject} RefObject
38049   *
38050   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
38051   *
38052   * @return {boolean} Is dragging within the target element.
38053   */
38054  const edit_useIsDraggingWithin = elementRef => {
38055    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
38056    (0,external_wp_element_namespaceObject.useEffect)(() => {
38057      const {
38058        ownerDocument
38059      } = elementRef.current;
38060      function handleDragStart(event) {
38061        // Check the first time when the dragging starts.
38062        handleDragEnter(event);
38063      }
38064  
38065      // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
38066      function handleDragEnd() {
38067        setIsDraggingWithin(false);
38068      }
38069      function handleDragEnter(event) {
38070        // Check if the current target is inside the item element.
38071        if (elementRef.current.contains(event.target)) {
38072          setIsDraggingWithin(true);
38073        } else {
38074          setIsDraggingWithin(false);
38075        }
38076      }
38077  
38078      // Bind these events to the document to catch all drag events.
38079      // Ideally, we can also use `event.relatedTarget`, but sadly that
38080      // doesn't work in Safari.
38081      ownerDocument.addEventListener('dragstart', handleDragStart);
38082      ownerDocument.addEventListener('dragend', handleDragEnd);
38083      ownerDocument.addEventListener('dragenter', handleDragEnter);
38084      return () => {
38085        ownerDocument.removeEventListener('dragstart', handleDragStart);
38086        ownerDocument.removeEventListener('dragend', handleDragEnd);
38087        ownerDocument.removeEventListener('dragenter', handleDragEnter);
38088      };
38089    }, []);
38090    return isDraggingWithin;
38091  };
38092  
38093  /**
38094   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
38095   */
38096  
38097  /**
38098   * Navigation Link Block Attributes
38099   *
38100   * @typedef {Object} WPNavigationLinkBlockAttributes
38101   *
38102   * @property {string}               [label]         Link text.
38103   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
38104   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
38105   * @property {string}               [rel]           The relationship of the linked URL.
38106   * @property {number}               [id]            A post or term id.
38107   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
38108   * @property {string}               [url]           Link href.
38109   * @property {string}               [title]         Link title attribute.
38110   */
38111  
38112  function NavigationSubmenuEdit({
38113    attributes,
38114    isSelected,
38115    setAttributes,
38116    mergeBlocks,
38117    onReplace,
38118    context,
38119    clientId
38120  }) {
38121    const {
38122      label,
38123      url,
38124      description,
38125      rel,
38126      title
38127    } = attributes;
38128    const {
38129      showSubmenuIcon,
38130      maxNestingLevel,
38131      openSubmenusOnClick
38132    } = context;
38133    const {
38134      __unstableMarkNextChangeAsNotPersistent,
38135      replaceBlock,
38136      selectBlock
38137    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
38138    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
38139    // Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)
38140    const [openedBy, setOpenedBy] = (0,external_wp_element_namespaceObject.useState)(null);
38141    // Use internal state instead of a ref to make sure that the component
38142    // re-renders when the popover's anchor updates.
38143    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
38144    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
38145    const isDraggingWithin = edit_useIsDraggingWithin(listItemRef);
38146    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add text…');
38147    const ref = (0,external_wp_element_namespaceObject.useRef)();
38148    const {
38149      parentCount,
38150      isParentOfSelectedBlock,
38151      isImmediateParentOfSelectedBlock,
38152      hasChildren,
38153      selectedBlockHasChildren,
38154      onlyDescendantIsEmptyLink
38155    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
38156      const {
38157        hasSelectedInnerBlock,
38158        getSelectedBlockClientId,
38159        getBlockParentsByBlockName,
38160        getBlock,
38161        getBlockCount,
38162        getBlockOrder
38163      } = select(external_wp_blockEditor_namespaceObject.store);
38164      let _onlyDescendantIsEmptyLink;
38165      const selectedBlockId = getSelectedBlockClientId();
38166      const selectedBlockChildren = getBlockOrder(selectedBlockId);
38167  
38168      // Check for a single descendant in the submenu. If that block
38169      // is a link block in a "placeholder" state with no label then
38170      // we can consider as an "empty" link.
38171      if (selectedBlockChildren?.length === 1) {
38172        const singleBlock = getBlock(selectedBlockChildren[0]);
38173        _onlyDescendantIsEmptyLink = singleBlock?.name === 'core/navigation-link' && !singleBlock?.attributes?.label;
38174      }
38175      return {
38176        parentCount: getBlockParentsByBlockName(clientId, 'core/navigation-submenu').length,
38177        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
38178        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
38179        hasChildren: !!getBlockCount(clientId),
38180        selectedBlockHasChildren: !!selectedBlockChildren?.length,
38181        onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink
38182      };
38183    }, [clientId]);
38184    const prevHasChildren = (0,external_wp_compose_namespaceObject.usePrevious)(hasChildren);
38185  
38186    // Show the LinkControl on mount if the URL is empty
38187    // ( When adding a new menu item)
38188    // This can't be done in the useState call because it conflicts
38189    // with the autofocus behavior of the BlockListBlock component.
38190    (0,external_wp_element_namespaceObject.useEffect)(() => {
38191      if (!openSubmenusOnClick && !url) {
38192        setIsLinkOpen(true);
38193      }
38194    }, []);
38195  
38196    /**
38197     * The hook shouldn't be necessary but due to a focus loss happening
38198     * when selecting a suggestion in the link popover, we force close on block unselection.
38199     */
38200    (0,external_wp_element_namespaceObject.useEffect)(() => {
38201      if (!isSelected) {
38202        setIsLinkOpen(false);
38203      }
38204    }, [isSelected]);
38205  
38206    // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
38207    (0,external_wp_element_namespaceObject.useEffect)(() => {
38208      if (isLinkOpen && url) {
38209        // Does this look like a URL and have something TLD-ish?
38210        if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
38211          // Focus and select the label text.
38212          selectLabelText();
38213        }
38214      }
38215    }, [url]);
38216  
38217    /**
38218     * Focus the Link label text and select it.
38219     */
38220    function selectLabelText() {
38221      ref.current.focus();
38222      const {
38223        ownerDocument
38224      } = ref.current;
38225      const {
38226        defaultView
38227      } = ownerDocument;
38228      const selection = defaultView.getSelection();
38229      const range = ownerDocument.createRange();
38230      // Get the range of the current ref contents so we can add this range to the selection.
38231      range.selectNodeContents(ref.current);
38232      selection.removeAllRanges();
38233      selection.addRange(range);
38234    }
38235    const {
38236      textColor,
38237      customTextColor,
38238      backgroundColor,
38239      customBackgroundColor
38240    } = getColors(context, parentCount > 0);
38241    function onKeyDown(event) {
38242      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
38243        // Required to prevent the command center from opening,
38244        // as it shares the CMD+K shortcut.
38245        // See https://github.com/WordPress/gutenberg/pull/59845.
38246        event.preventDefault();
38247        // If we don't stop propogation, this event bubbles up to the parent submenu item
38248        event.stopPropagation();
38249        setIsLinkOpen(true);
38250        setOpenedBy(ref.current);
38251      }
38252    }
38253    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
38254      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, listItemRef]),
38255      className: dist_clsx('wp-block-navigation-item', {
38256        'is-editing': isSelected || isParentOfSelectedBlock,
38257        'is-dragging-within': isDraggingWithin,
38258        'has-link': !!url,
38259        'has-child': hasChildren,
38260        'has-text-color': !!textColor || !!customTextColor,
38261        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
38262        'has-background': !!backgroundColor || customBackgroundColor,
38263        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor,
38264        'open-on-click': openSubmenusOnClick
38265      }),
38266      style: {
38267        color: !textColor && customTextColor,
38268        backgroundColor: !backgroundColor && customBackgroundColor
38269      },
38270      onKeyDown
38271    });
38272  
38273    // Always use overlay colors for submenus.
38274    const innerBlocksColors = getColors(context, true);
38275    const allowedBlocks = parentCount >= maxNestingLevel ? ALLOWED_BLOCKS.filter(blockName => blockName !== 'core/navigation-submenu') : ALLOWED_BLOCKS;
38276    const navigationChildBlockProps = getNavigationChildBlockProps(innerBlocksColors);
38277    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(navigationChildBlockProps, {
38278      allowedBlocks,
38279      defaultBlock: navigation_submenu_edit_DEFAULT_BLOCK,
38280      directInsert: true,
38281      // Ensure block toolbar is not too far removed from item
38282      // being edited.
38283      // see: https://github.com/WordPress/gutenberg/pull/34615.
38284      __experimentalCaptureToolbars: true,
38285      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren ||
38286      // Show the appender while dragging to allow inserting element between item and the appender.
38287      hasChildren ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false
38288    });
38289    const ParentElement = openSubmenusOnClick ? 'button' : 'a';
38290    function transformToLink() {
38291      const newLinkBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes);
38292      replaceBlock(clientId, newLinkBlock);
38293    }
38294    (0,external_wp_element_namespaceObject.useEffect)(() => {
38295      // If block becomes empty, transform to Navigation Link.
38296      if (!hasChildren && prevHasChildren) {
38297        // This side-effect should not create an undo level as those should
38298        // only be created via user interactions.
38299        __unstableMarkNextChangeAsNotPersistent();
38300        transformToLink();
38301      }
38302    }, [hasChildren, prevHasChildren]);
38303    const canConvertToLink = !selectedBlockHasChildren || onlyDescendantIsEmptyLink;
38304    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38305      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
38306        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
38307          children: [!openSubmenusOnClick && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
38308            name: "link",
38309            icon: library_link,
38310            title: (0,external_wp_i18n_namespaceObject.__)('Link'),
38311            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
38312            onClick: event => {
38313              setIsLinkOpen(true);
38314              setOpenedBy(event.currentTarget);
38315            }
38316          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
38317            name: "revert",
38318            icon: remove_submenu,
38319            title: (0,external_wp_i18n_namespaceObject.__)('Convert to Link'),
38320            onClick: transformToLink,
38321            className: "wp-block-navigation__submenu__revert",
38322            disabled: !canConvertToLink
38323          })]
38324        })
38325      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
38326        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
38327          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
38328          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38329            __nextHasNoMarginBottom: true,
38330            __next40pxDefaultSize: true,
38331            value: label || '',
38332            onChange: labelValue => {
38333              setAttributes({
38334                label: labelValue
38335              });
38336            },
38337            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
38338            autoComplete: "off"
38339          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38340            __nextHasNoMarginBottom: true,
38341            __next40pxDefaultSize: true,
38342            value: url || '',
38343            onChange: urlValue => {
38344              setAttributes({
38345                url: urlValue
38346              });
38347            },
38348            label: (0,external_wp_i18n_namespaceObject.__)('Link'),
38349            autoComplete: "off"
38350          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
38351            __nextHasNoMarginBottom: true,
38352            value: description || '',
38353            onChange: descriptionValue => {
38354              setAttributes({
38355                description: descriptionValue
38356              });
38357            },
38358            label: (0,external_wp_i18n_namespaceObject.__)('Description'),
38359            help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
38360          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38361            __nextHasNoMarginBottom: true,
38362            __next40pxDefaultSize: true,
38363            value: title || '',
38364            onChange: titleValue => {
38365              setAttributes({
38366                title: titleValue
38367              });
38368            },
38369            label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
38370            autoComplete: "off",
38371            help: (0,external_wp_i18n_namespaceObject.__)('Additional information to help clarify the purpose of the link.')
38372          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38373            __nextHasNoMarginBottom: true,
38374            __next40pxDefaultSize: true,
38375            value: rel || '',
38376            onChange: relValue => {
38377              setAttributes({
38378                rel: relValue
38379              });
38380            },
38381            label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
38382            autoComplete: "off",
38383            help: (0,external_wp_i18n_namespaceObject.__)('The relationship of the linked URL as space-separated link types.')
38384          })]
38385        })
38386      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
38387        ...blockProps,
38388        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ParentElement, {
38389          className: "wp-block-navigation-item__content",
38390          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
38391            ref: ref,
38392            identifier: "label",
38393            className: "wp-block-navigation-item__label",
38394            value: label,
38395            onChange: labelValue => setAttributes({
38396              label: labelValue
38397            }),
38398            onMerge: mergeBlocks,
38399            onReplace: onReplace,
38400            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
38401            placeholder: itemLabelPlaceholder,
38402            withoutInteractiveFormatting: true,
38403            allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'],
38404            onClick: () => {
38405              if (!openSubmenusOnClick && !url) {
38406                setIsLinkOpen(true);
38407                setOpenedBy(ref.current);
38408              }
38409            }
38410          }), !openSubmenusOnClick && isLinkOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
38411            clientId: clientId,
38412            link: attributes,
38413            onClose: () => {
38414              setIsLinkOpen(false);
38415              if (openedBy) {
38416                openedBy.focus();
38417                setOpenedBy(null);
38418              } else {
38419                selectBlock(clientId);
38420              }
38421            },
38422            anchor: popoverAnchor,
38423            onRemove: () => {
38424              setAttributes({
38425                url: ''
38426              });
38427              (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
38428            },
38429            onChange: updatedValue => {
38430              updateAttributes(updatedValue, setAttributes, attributes);
38431            }
38432          })]
38433        }), (showSubmenuIcon || openSubmenusOnClick) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38434          className: "wp-block-navigation__submenu-icon",
38435          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ItemSubmenuIcon, {})
38436        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38437          ...innerBlocksProps
38438        })]
38439      })]
38440    });
38441  }
38442  
38443  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/save.js
38444  /**
38445   * WordPress dependencies
38446   */
38447  
38448  
38449  function navigation_submenu_save_save() {
38450    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
38451  }
38452  
38453  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/transforms.js
38454  /**
38455   * WordPress dependencies
38456   */
38457  
38458  const navigation_submenu_transforms_transforms = {
38459    to: [{
38460      type: 'block',
38461      blocks: ['core/navigation-link'],
38462      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
38463      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes)
38464    }, {
38465      type: 'block',
38466      blocks: ['core/spacer'],
38467      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
38468      transform: () => {
38469        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
38470      }
38471    }, {
38472      type: 'block',
38473      blocks: ['core/site-logo'],
38474      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
38475      transform: () => {
38476        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
38477      }
38478    }, {
38479      type: 'block',
38480      blocks: ['core/home-link'],
38481      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
38482      transform: () => {
38483        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
38484      }
38485    }, {
38486      type: 'block',
38487      blocks: ['core/social-links'],
38488      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
38489      transform: () => {
38490        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
38491      }
38492    }, {
38493      type: 'block',
38494      blocks: ['core/search'],
38495      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
38496      transform: () => {
38497        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search');
38498      }
38499    }]
38500  };
38501  /* harmony default export */ const navigation_submenu_transforms = (navigation_submenu_transforms_transforms);
38502  
38503  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
38504  /**
38505   * WordPress dependencies
38506   */
38507  
38508  
38509  /**
38510   * Internal dependencies
38511   */
38512  
38513  const navigation_submenu_metadata = {
38514    $schema: "https://schemas.wp.org/trunk/block.json",
38515    apiVersion: 3,
38516    name: "core/navigation-submenu",
38517    title: "Submenu",
38518    category: "design",
38519    parent: ["core/navigation"],
38520    description: "Add a submenu to your navigation.",
38521    textdomain: "default",
38522    attributes: {
38523      label: {
38524        type: "string"
38525      },
38526      type: {
38527        type: "string"
38528      },
38529      description: {
38530        type: "string"
38531      },
38532      rel: {
38533        type: "string"
38534      },
38535      id: {
38536        type: "number"
38537      },
38538      opensInNewTab: {
38539        type: "boolean",
38540        "default": false
38541      },
38542      url: {
38543        type: "string"
38544      },
38545      title: {
38546        type: "string"
38547      },
38548      kind: {
38549        type: "string"
38550      },
38551      isTopLevelItem: {
38552        type: "boolean"
38553      }
38554    },
38555    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
38556    supports: {
38557      reusable: false,
38558      html: false,
38559      typography: {
38560        fontSize: true,
38561        lineHeight: true,
38562        __experimentalFontFamily: true,
38563        __experimentalFontWeight: true,
38564        __experimentalFontStyle: true,
38565        __experimentalTextTransform: true,
38566        __experimentalTextDecoration: true,
38567        __experimentalLetterSpacing: true,
38568        __experimentalDefaultControls: {
38569          fontSize: true
38570        }
38571      },
38572      interactivity: {
38573        clientNavigation: true
38574      }
38575    },
38576    editorStyle: "wp-block-navigation-submenu-editor",
38577    style: "wp-block-navigation-submenu"
38578  };
38579  
38580  
38581  
38582  const {
38583    name: navigation_submenu_name
38584  } = navigation_submenu_metadata;
38585  
38586  const navigation_submenu_settings = {
38587    icon: ({
38588      context
38589    }) => {
38590      if (context === 'list-view') {
38591        return library_page;
38592      }
38593      return add_submenu;
38594    },
38595    __experimentalLabel(attributes, {
38596      context
38597    }) {
38598      const {
38599        label
38600      } = attributes;
38601      const customName = attributes?.metadata?.name;
38602  
38603      // In the list view, use the block's menu label as the label.
38604      // If the menu label is empty, fall back to the default label.
38605      if (context === 'list-view' && (customName || label)) {
38606        return attributes?.metadata?.name || label;
38607      }
38608      return label;
38609    },
38610    edit: NavigationSubmenuEdit,
38611    save: navigation_submenu_save_save,
38612    transforms: navigation_submenu_transforms
38613  };
38614  const navigation_submenu_init = () => initBlock({
38615    name: navigation_submenu_name,
38616    metadata: navigation_submenu_metadata,
38617    settings: navigation_submenu_settings
38618  });
38619  
38620  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page-break.js
38621  /**
38622   * WordPress dependencies
38623   */
38624  
38625  
38626  const pageBreak = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
38627    xmlns: "http://www.w3.org/2000/svg",
38628    viewBox: "0 0 24 24",
38629    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38630      d: "M17.5 9V6a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v3H8V6a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v3h1.5Zm0 6.5V18a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2v-2.5H8V18a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-2.5h1.5ZM4 13h16v-1.5H4V13Z"
38631    })
38632  });
38633  /* harmony default export */ const page_break = (pageBreak);
38634  
38635  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js
38636  /**
38637   * WordPress dependencies
38638   */
38639  
38640  
38641  
38642  function NextPageEdit() {
38643    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38644      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
38645      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38646        children: (0,external_wp_i18n_namespaceObject.__)('Page break')
38647      })
38648    });
38649  }
38650  
38651  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/save.js
38652  /**
38653   * WordPress dependencies
38654   */
38655  
38656  
38657  function nextpage_save_save() {
38658    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
38659      children: '<!--nextpage-->'
38660    });
38661  }
38662  
38663  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js
38664  /**
38665   * WordPress dependencies
38666   */
38667  
38668  const nextpage_transforms_transforms = {
38669    from: [{
38670      type: 'raw',
38671      schema: {
38672        'wp-block': {
38673          attributes: ['data-block']
38674        }
38675      },
38676      isMatch: node => node.dataset && node.dataset.block === 'core/nextpage',
38677      transform() {
38678        return (0,external_wp_blocks_namespaceObject.createBlock)('core/nextpage', {});
38679      }
38680    }]
38681  };
38682  /* harmony default export */ const nextpage_transforms = (nextpage_transforms_transforms);
38683  
38684  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
38685  /**
38686   * WordPress dependencies
38687   */
38688  
38689  
38690  /**
38691   * Internal dependencies
38692   */
38693  
38694  
38695  const nextpage_metadata = {
38696    $schema: "https://schemas.wp.org/trunk/block.json",
38697    apiVersion: 3,
38698    name: "core/nextpage",
38699    title: "Page Break",
38700    category: "design",
38701    description: "Separate your content into a multi-page experience.",
38702    keywords: ["next page", "pagination"],
38703    parent: ["core/post-content"],
38704    textdomain: "default",
38705    supports: {
38706      customClassName: false,
38707      className: false,
38708      html: false,
38709      interactivity: {
38710        clientNavigation: true
38711      }
38712    },
38713    editorStyle: "wp-block-nextpage-editor"
38714  };
38715  
38716  
38717  const {
38718    name: nextpage_name
38719  } = nextpage_metadata;
38720  
38721  const nextpage_settings = {
38722    icon: page_break,
38723    example: {},
38724    transforms: nextpage_transforms,
38725    edit: NextPageEdit,
38726    save: nextpage_save_save
38727  };
38728  const nextpage_init = () => initBlock({
38729    name: nextpage_name,
38730    metadata: nextpage_metadata,
38731    settings: nextpage_settings
38732  });
38733  
38734  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/recursion-detector.js
38735  /**
38736   * THIS MODULE IS INTENTIONALLY KEPT WITHIN THE PATTERN BLOCK'S SOURCE.
38737   *
38738   * This is because this approach for preventing infinite loops due to
38739   * recursively rendering blocks is specific to the way that the `core/pattern`
38740   * block behaves in the editor. Any other block types that deal with recursion
38741   * SHOULD USE THE STANDARD METHOD for avoiding loops:
38742   *
38743   * @see https://github.com/WordPress/gutenberg/pull/31455
38744   * @see packages/block-editor/src/components/recursion-provider/README.md
38745   */
38746  
38747  /**
38748   * WordPress dependencies
38749   */
38750  
38751  
38752  /**
38753   * Naming is hard.
38754   *
38755   * @see useParsePatternDependencies
38756   *
38757   * @type {WeakMap<Object, Function>}
38758   */
38759  const cachedParsers = new WeakMap();
38760  
38761  /**
38762   * Hook used by PatternEdit to parse block patterns. It returns a function that
38763   * takes a pattern and returns nothing but throws an error if the pattern is
38764   * recursive.
38765   *
38766   * @example
38767   * ```js
38768   * const parsePatternDependencies = useParsePatternDependencies();
38769   * parsePatternDependencies( selectedPattern );
38770   * ```
38771   *
38772   * @see parsePatternDependencies
38773   *
38774   * @return {Function} A function to parse block patterns.
38775   */
38776  function useParsePatternDependencies() {
38777    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
38778  
38779    // Instead of caching maps, go straight to the point and cache bound
38780    // functions. Each of those functions is bound to a different Map that will
38781    // keep track of patterns in the context of the given registry.
38782    if (!cachedParsers.has(registry)) {
38783      const deps = new Map();
38784      cachedParsers.set(registry, parsePatternDependencies.bind(null, deps));
38785    }
38786    return cachedParsers.get(registry);
38787  }
38788  
38789  /**
38790   * Parse a given pattern and traverse its contents to detect any subsequent
38791   * patterns on which it may depend. Such occurrences will be added to an
38792   * internal dependency graph. If a circular dependency is detected, an
38793   * error will be thrown.
38794   *
38795   * EXPORTED FOR TESTING PURPOSES ONLY.
38796   *
38797   * @param {Map<string, Set<string>>} deps           Map of pattern dependencies.
38798   * @param {Object}                   pattern        Pattern.
38799   * @param {string}                   pattern.name   Pattern name.
38800   * @param {Array}                    pattern.blocks Pattern's block list.
38801   *
38802   * @throws {Error} If a circular dependency is detected.
38803   */
38804  function parsePatternDependencies(deps, {
38805    name,
38806    blocks
38807  }) {
38808    const queue = [...blocks];
38809    while (queue.length) {
38810      const block = queue.shift();
38811      for (const innerBlock of (_block$innerBlocks = block.innerBlocks) !== null && _block$innerBlocks !== void 0 ? _block$innerBlocks : []) {
38812        var _block$innerBlocks;
38813        queue.unshift(innerBlock);
38814      }
38815      if (block.name === 'core/pattern') {
38816        registerDependency(deps, name, block.attributes.slug);
38817      }
38818    }
38819  }
38820  
38821  /**
38822   * Declare that pattern `a` depends on pattern `b`. If a circular
38823   * dependency is detected, an error will be thrown.
38824   *
38825   * EXPORTED FOR TESTING PURPOSES ONLY.
38826   *
38827   * @param {Map<string, Set<string>>} deps Map of pattern dependencies.
38828   * @param {string}                   a    Slug for pattern A.
38829   * @param {string}                   b    Slug for pattern B.
38830   *
38831   * @throws {Error} If a circular dependency is detected.
38832   */
38833  function registerDependency(deps, a, b) {
38834    if (!deps.has(a)) {
38835      deps.set(a, new Set());
38836    }
38837    deps.get(a).add(b);
38838    if (hasCycle(deps, a)) {
38839      throw new TypeError(`Pattern $a} has a circular dependency and cannot be rendered.`);
38840    }
38841  }
38842  
38843  /**
38844   * Determine if a given pattern has circular dependencies on other patterns.
38845   * This will be determined by running a depth-first search on the current state
38846   * of the graph represented by `patternDependencies`.
38847   *
38848   * @param {Map<string, Set<string>>} deps           Map of pattern dependencies.
38849   * @param {string}                   slug           Pattern slug.
38850   * @param {Set<string>}              [visitedNodes] Set to track visited nodes in the graph.
38851   * @param {Set<string>}              [currentPath]  Set to track and backtrack graph paths.
38852   * @return {boolean} Whether any cycle was found.
38853   */
38854  function hasCycle(deps, slug, visitedNodes = new Set(), currentPath = new Set()) {
38855    var _deps$get;
38856    visitedNodes.add(slug);
38857    currentPath.add(slug);
38858    const dependencies = (_deps$get = deps.get(slug)) !== null && _deps$get !== void 0 ? _deps$get : new Set();
38859    for (const dependency of dependencies) {
38860      if (!visitedNodes.has(dependency)) {
38861        if (hasCycle(deps, dependency, visitedNodes, currentPath)) {
38862          return true;
38863        }
38864      } else if (currentPath.has(dependency)) {
38865        return true;
38866      }
38867    }
38868  
38869    // Remove the current node from the current path when backtracking
38870    currentPath.delete(slug);
38871    return false;
38872  }
38873  
38874  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/edit.js
38875  /**
38876   * WordPress dependencies
38877   */
38878  
38879  
38880  
38881  
38882  
38883  
38884  
38885  /**
38886   * Internal dependencies
38887   */
38888  
38889  
38890  const PatternEdit = ({
38891    attributes,
38892    clientId
38893  }) => {
38894    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
38895    const selectedPattern = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
38896    const currentThemeStylesheet = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet, []);
38897    const {
38898      replaceBlocks,
38899      setBlockEditingMode,
38900      __unstableMarkNextChangeAsNotPersistent
38901    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
38902    const {
38903      getBlockRootClientId,
38904      getBlockEditingMode
38905    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
38906    const [hasRecursionError, setHasRecursionError] = (0,external_wp_element_namespaceObject.useState)(false);
38907    const parsePatternDependencies = useParsePatternDependencies();
38908  
38909    // Duplicated in packages/editor/src/components/start-template-options/index.js.
38910    function injectThemeAttributeInBlockTemplateContent(block) {
38911      if (block.innerBlocks.find(innerBlock => innerBlock.name === 'core/template-part')) {
38912        block.innerBlocks = block.innerBlocks.map(innerBlock => {
38913          if (innerBlock.name === 'core/template-part' && innerBlock.attributes.theme === undefined) {
38914            innerBlock.attributes.theme = currentThemeStylesheet;
38915          }
38916          return innerBlock;
38917        });
38918      }
38919      if (block.name === 'core/template-part' && block.attributes.theme === undefined) {
38920        block.attributes.theme = currentThemeStylesheet;
38921      }
38922      return block;
38923    }
38924  
38925    // Run this effect when the component loads.
38926    // This adds the Pattern's contents to the post.
38927    // This change won't be saved.
38928    // It will continue to pull from the pattern file unless changes are made to its respective template part.
38929    (0,external_wp_element_namespaceObject.useEffect)(() => {
38930      if (!hasRecursionError && selectedPattern?.blocks) {
38931        try {
38932          parsePatternDependencies(selectedPattern);
38933        } catch (error) {
38934          setHasRecursionError(true);
38935          return;
38936        }
38937  
38938        // We batch updates to block list settings to avoid triggering cascading renders
38939        // for each container block included in a tree and optimize initial render.
38940        // Since the above uses microtasks, we need to use a microtask here as well,
38941        // because nested pattern blocks cannot be inserted if the parent block supports
38942        // inner blocks but doesn't have blockSettings in the state.
38943        window.queueMicrotask(() => {
38944          const rootClientId = getBlockRootClientId(clientId);
38945          // Clone blocks from the pattern before insertion to ensure they receive
38946          // distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.
38947          const clonedBlocks = selectedPattern.blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(injectThemeAttributeInBlockTemplateContent(block)));
38948          // If the pattern has a single block and categories, we should add the
38949          // categories of the pattern to the block's metadata.
38950          if (clonedBlocks.length === 1 && selectedPattern.categories?.length > 0) {
38951            clonedBlocks[0].attributes = {
38952              ...clonedBlocks[0].attributes,
38953              metadata: {
38954                ...clonedBlocks[0].attributes.metadata,
38955                categories: selectedPattern.categories,
38956                patternName: selectedPattern.name,
38957                name: clonedBlocks[0].attributes.metadata.name || selectedPattern.title
38958              }
38959            };
38960          }
38961          const rootEditingMode = getBlockEditingMode(rootClientId);
38962          registry.batch(() => {
38963            // Temporarily set the root block to default mode to allow replacing the pattern.
38964            // This could happen when the page is disabling edits of non-content blocks.
38965            __unstableMarkNextChangeAsNotPersistent();
38966            setBlockEditingMode(rootClientId, 'default');
38967            __unstableMarkNextChangeAsNotPersistent();
38968            replaceBlocks(clientId, clonedBlocks);
38969            // Restore the root block's original mode.
38970            __unstableMarkNextChangeAsNotPersistent();
38971            setBlockEditingMode(rootClientId, rootEditingMode);
38972          });
38973        });
38974      }
38975    }, [clientId, hasRecursionError, selectedPattern, __unstableMarkNextChangeAsNotPersistent, replaceBlocks, getBlockEditingMode, setBlockEditingMode, getBlockRootClientId]);
38976    const props = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
38977    if (hasRecursionError) {
38978      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38979        ...props,
38980        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
38981          children: (0,external_wp_i18n_namespaceObject.sprintf)(
38982          // translators: A warning in which %s is the name of a pattern.
38983          (0,external_wp_i18n_namespaceObject.__)('Pattern "%s" cannot be rendered inside itself.'), selectedPattern?.name)
38984        })
38985      });
38986    }
38987    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38988      ...props
38989    });
38990  };
38991  /* harmony default export */ const pattern_edit = (PatternEdit);
38992  
38993  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/index.js
38994  /**
38995   * Internal dependencies
38996   */
38997  
38998  const pattern_metadata = {
38999    $schema: "https://schemas.wp.org/trunk/block.json",
39000    apiVersion: 3,
39001    name: "core/pattern",
39002    title: "Pattern placeholder",
39003    category: "theme",
39004    description: "Show a block pattern.",
39005    supports: {
39006      html: false,
39007      inserter: false,
39008      renaming: false,
39009      interactivity: {
39010        clientNavigation: true
39011      }
39012    },
39013    textdomain: "default",
39014    attributes: {
39015      slug: {
39016        type: "string"
39017      }
39018    }
39019  };
39020  
39021  const {
39022    name: pattern_name
39023  } = pattern_metadata;
39024  
39025  const pattern_settings = {
39026    edit: pattern_edit
39027  };
39028  const pattern_init = () => initBlock({
39029    name: pattern_name,
39030    metadata: pattern_metadata,
39031    settings: pattern_settings
39032  });
39033  
39034  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pages.js
39035  /**
39036   * WordPress dependencies
39037   */
39038  
39039  
39040  
39041  const pages = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
39042    xmlns: "http://www.w3.org/2000/svg",
39043    viewBox: "0 0 24 24",
39044    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39045      d: "M14.5 5.5h-7V7h7V5.5ZM7.5 9h7v1.5h-7V9Zm7 3.5h-7V14h7v-1.5Z"
39046    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39047      d: "M16 2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2ZM6 3.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5Z"
39048    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39049      d: "M20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z"
39050    })]
39051  });
39052  /* harmony default export */ const library_pages = (pages);
39053  
39054  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/use-convert-to-navigation-links.js
39055  /**
39056   * WordPress dependencies
39057   */
39058  
39059  
39060  
39061  
39062  /**
39063   * Converts an array of pages into a nested array of navigation link blocks.
39064   *
39065   * @param {Array} pages An array of pages.
39066   *
39067   * @return {Array} A nested array of navigation link blocks.
39068   */
39069  function createNavigationLinks(pages = []) {
39070    const linkMap = {};
39071    const navigationLinks = [];
39072    pages.forEach(({
39073      id,
39074      title,
39075      link: url,
39076      type,
39077      parent
39078    }) => {
39079      var _linkMap$id$innerBloc;
39080      // See if a placeholder exists. This is created if children appear before parents in list.
39081      const innerBlocks = (_linkMap$id$innerBloc = linkMap[id]?.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
39082      linkMap[id] = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', {
39083        id,
39084        label: title.rendered,
39085        url,
39086        type,
39087        kind: 'post-type'
39088      }, innerBlocks);
39089      if (!parent) {
39090        navigationLinks.push(linkMap[id]);
39091      } else {
39092        if (!linkMap[parent]) {
39093          // Use a placeholder if the child appears before parent in list.
39094          linkMap[parent] = {
39095            innerBlocks: []
39096          };
39097        }
39098        // Although these variables are not referenced, they are needed to store the innerBlocks in memory.
39099        const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
39100        parentLinkInnerBlocks.push(linkMap[id]);
39101      }
39102    });
39103    return navigationLinks;
39104  }
39105  
39106  /**
39107   * Finds a navigation link block by id, recursively.
39108   * It might be possible to make this a more generic helper function.
39109   *
39110   * @param {Array}  navigationLinks An array of navigation link blocks.
39111   * @param {number} id              The id of the navigation link to find.
39112   *
39113   * @return {Object|null} The navigation link block with the given id.
39114   */
39115  function findNavigationLinkById(navigationLinks, id) {
39116    for (const navigationLink of navigationLinks) {
39117      // Is this the link we're looking for?
39118      if (navigationLink.attributes.id === id) {
39119        return navigationLink;
39120      }
39121  
39122      // If not does it have innerBlocks?
39123      if (navigationLink.innerBlocks && navigationLink.innerBlocks.length) {
39124        const foundNavigationLink = findNavigationLinkById(navigationLink.innerBlocks, id);
39125        if (foundNavigationLink) {
39126          return foundNavigationLink;
39127        }
39128      }
39129    }
39130    return null;
39131  }
39132  function convertToNavigationLinks(pages = [], parentPageID = null) {
39133    let navigationLinks = createNavigationLinks(pages);
39134  
39135    // If a parent page ID is provided, only return the children of that page.
39136    if (parentPageID) {
39137      const parentPage = findNavigationLinkById(navigationLinks, parentPageID);
39138      if (parentPage && parentPage.innerBlocks) {
39139        navigationLinks = parentPage.innerBlocks;
39140      }
39141    }
39142  
39143    // Transform all links with innerBlocks into Submenus. This can't be done
39144    // sooner because page objects have no information on their children.
39145    const transformSubmenus = listOfLinks => {
39146      listOfLinks.forEach((block, index, listOfLinksArray) => {
39147        const {
39148          attributes,
39149          innerBlocks
39150        } = block;
39151        if (innerBlocks.length !== 0) {
39152          transformSubmenus(innerBlocks);
39153          const transformedBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
39154          listOfLinksArray[index] = transformedBlock;
39155        }
39156      });
39157    };
39158    transformSubmenus(navigationLinks);
39159    return navigationLinks;
39160  }
39161  function useConvertToNavigationLinks({
39162    clientId,
39163    pages,
39164    parentClientId,
39165    parentPageID
39166  }) {
39167    const {
39168      replaceBlock,
39169      selectBlock
39170    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
39171    return () => {
39172      const navigationLinks = convertToNavigationLinks(pages, parentPageID);
39173  
39174      // Replace the Page List block with the Navigation Links.
39175      replaceBlock(clientId, navigationLinks);
39176  
39177      // Select the Navigation block to reveal the changes.
39178      selectBlock(parentClientId);
39179    };
39180  }
39181  
39182  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/convert-to-links-modal.js
39183  /**
39184   * WordPress dependencies
39185   */
39186  
39187  
39188  
39189  
39190  
39191  const convertDescription = (0,external_wp_i18n_namespaceObject.__)("This Navigation Menu displays your website's pages. Editing it will enable you to add, delete, or reorder pages. However, new pages will no longer be added automatically.");
39192  function ConvertToLinksModal({
39193    onClick,
39194    onClose,
39195    disabled
39196  }) {
39197    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
39198      onRequestClose: onClose,
39199      title: (0,external_wp_i18n_namespaceObject.__)('Edit Page List'),
39200      className: "wp-block-page-list-modal",
39201      aria: {
39202        describedby: (0,external_wp_compose_namespaceObject.useInstanceId)(ConvertToLinksModal, 'wp-block-page-list-modal__description')
39203      },
39204      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
39205        id: (0,external_wp_compose_namespaceObject.useInstanceId)(ConvertToLinksModal, 'wp-block-page-list-modal__description'),
39206        children: convertDescription
39207      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
39208        className: "wp-block-page-list-modal-buttons",
39209        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
39210          __next40pxDefaultSize: true,
39211          variant: "tertiary",
39212          onClick: onClose,
39213          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
39214        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
39215          __next40pxDefaultSize: true,
39216          variant: "primary",
39217          accessibleWhenDisabled: true,
39218          disabled: disabled,
39219          onClick: onClick,
39220          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
39221        })]
39222      })]
39223    });
39224  }
39225  
39226  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/edit.js
39227  /**
39228   * External dependencies
39229   */
39230  
39231  
39232  /**
39233   * WordPress dependencies
39234   */
39235  
39236  
39237  
39238  
39239  
39240  
39241  
39242  
39243  /**
39244   * Internal dependencies
39245   */
39246  
39247  
39248  
39249  // We only show the edit option when page count is <= MAX_PAGE_COUNT
39250  // Performance of Navigation Links is not good past this value.
39251  
39252  
39253  
39254  const MAX_PAGE_COUNT = 100;
39255  const NOOP = () => {};
39256  function BlockContent({
39257    blockProps,
39258    innerBlocksProps,
39259    hasResolvedPages,
39260    blockList,
39261    pages,
39262    parentPageID
39263  }) {
39264    if (!hasResolvedPages) {
39265      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39266        ...blockProps,
39267        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39268          className: "wp-block-page-list__loading-indicator-container",
39269          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {
39270            className: "wp-block-page-list__loading-indicator"
39271          })
39272        })
39273      });
39274    }
39275    if (pages === null) {
39276      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39277        ...blockProps,
39278        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
39279          status: "warning",
39280          isDismissible: false,
39281          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
39282        })
39283      });
39284    }
39285    if (pages.length === 0) {
39286      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39287        ...blockProps,
39288        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
39289          status: "info",
39290          isDismissible: false,
39291          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
39292        })
39293      });
39294    }
39295    if (blockList.length === 0) {
39296      const parentPageDetails = pages.find(page => page.id === parentPageID);
39297      if (parentPageDetails?.title?.rendered) {
39298        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39299          ...blockProps,
39300          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
39301            children: (0,external_wp_i18n_namespaceObject.sprintf)(
39302            // translators: %s: Page title.
39303            (0,external_wp_i18n_namespaceObject.__)('Page List: "%s" page has no children.'), parentPageDetails.title.rendered)
39304          })
39305        });
39306      }
39307      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39308        ...blockProps,
39309        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
39310          status: "warning",
39311          isDismissible: false,
39312          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
39313        })
39314      });
39315    }
39316    if (pages.length > 0) {
39317      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
39318        ...innerBlocksProps
39319      });
39320    }
39321  }
39322  function PageListEdit({
39323    context,
39324    clientId,
39325    attributes,
39326    setAttributes
39327  }) {
39328    const {
39329      parentPageID
39330    } = attributes;
39331    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
39332    const openModal = (0,external_wp_element_namespaceObject.useCallback)(() => setOpen(true), []);
39333    const closeModal = () => setOpen(false);
39334    const {
39335      records: pages,
39336      hasResolved: hasResolvedPages
39337    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', 'page', {
39338      per_page: MAX_PAGE_COUNT,
39339      _fields: ['id', 'link', 'menu_order', 'parent', 'title', 'type'],
39340      // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
39341      // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
39342      // sort.
39343      orderby: 'menu_order',
39344      order: 'asc'
39345    });
39346    const allowConvertToLinks = 'showSubmenuIcon' in context && pages?.length > 0 && pages?.length <= MAX_PAGE_COUNT;
39347    const pagesByParentId = (0,external_wp_element_namespaceObject.useMemo)(() => {
39348      if (pages === null) {
39349        return new Map();
39350      }
39351  
39352      // TODO: Once the REST API supports passing multiple values to
39353      // 'orderby', this can be removed.
39354      // https://core.trac.wordpress.org/ticket/39037
39355      const sortedPages = pages.sort((a, b) => {
39356        if (a.menu_order === b.menu_order) {
39357          return a.title.rendered.localeCompare(b.title.rendered);
39358        }
39359        return a.menu_order - b.menu_order;
39360      });
39361      return sortedPages.reduce((accumulator, page) => {
39362        const {
39363          parent
39364        } = page;
39365        if (accumulator.has(parent)) {
39366          accumulator.get(parent).push(page);
39367        } else {
39368          accumulator.set(parent, [page]);
39369        }
39370        return accumulator;
39371      }, new Map());
39372    }, [pages]);
39373    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
39374      className: dist_clsx('wp-block-page-list', {
39375        'has-text-color': !!context.textColor,
39376        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', context.textColor)]: !!context.textColor,
39377        'has-background': !!context.backgroundColor,
39378        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', context.backgroundColor)]: !!context.backgroundColor
39379      }),
39380      style: {
39381        ...context.style?.color
39382      }
39383    });
39384    const pagesTree = (0,external_wp_element_namespaceObject.useMemo)(function makePagesTree(parentId = 0, level = 0) {
39385      const childPages = pagesByParentId.get(parentId);
39386      if (!childPages?.length) {
39387        return [];
39388      }
39389      return childPages.reduce((tree, page) => {
39390        const hasChildren = pagesByParentId.has(page.id);
39391        const item = {
39392          value: page.id,
39393          label: '— '.repeat(level) + page.title.rendered,
39394          rawName: page.title.rendered
39395        };
39396        tree.push(item);
39397        if (hasChildren) {
39398          tree.push(...makePagesTree(page.id, level + 1));
39399        }
39400        return tree;
39401      }, []);
39402    }, [pagesByParentId]);
39403    const blockList = (0,external_wp_element_namespaceObject.useMemo)(function getBlockList(parentId = parentPageID) {
39404      const childPages = pagesByParentId.get(parentId);
39405      if (!childPages?.length) {
39406        return [];
39407      }
39408      return childPages.reduce((template, page) => {
39409        const hasChildren = pagesByParentId.has(page.id);
39410        const pageProps = {
39411          id: page.id,
39412          label:
39413          // translators: displayed when a page has an empty title.
39414          page.title?.rendered?.trim() !== '' ? page.title?.rendered : (0,external_wp_i18n_namespaceObject.__)('(no title)'),
39415          title:
39416          // translators: displayed when a page has an empty title.
39417          page.title?.rendered?.trim() !== '' ? page.title?.rendered : (0,external_wp_i18n_namespaceObject.__)('(no title)'),
39418          link: page.url,
39419          hasChildren
39420        };
39421        let item = null;
39422        const children = getBlockList(page.id);
39423        item = (0,external_wp_blocks_namespaceObject.createBlock)('core/page-list-item', pageProps, children);
39424        template.push(item);
39425        return template;
39426      }, []);
39427    }, [pagesByParentId, parentPageID]);
39428    const {
39429      isNested,
39430      hasSelectedChild,
39431      parentClientId,
39432      hasDraggedChild,
39433      isChildOfNavigation
39434    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
39435      const {
39436        getBlockParentsByBlockName,
39437        hasSelectedInnerBlock,
39438        hasDraggedInnerBlock
39439      } = select(external_wp_blockEditor_namespaceObject.store);
39440      const blockParents = getBlockParentsByBlockName(clientId, 'core/navigation-submenu', true);
39441      const navigationBlockParents = getBlockParentsByBlockName(clientId, 'core/navigation', true);
39442      return {
39443        isNested: blockParents.length > 0,
39444        isChildOfNavigation: navigationBlockParents.length > 0,
39445        hasSelectedChild: hasSelectedInnerBlock(clientId, true),
39446        hasDraggedChild: hasDraggedInnerBlock(clientId, true),
39447        parentClientId: navigationBlockParents[0]
39448      };
39449    }, [clientId]);
39450    const convertToNavigationLinks = useConvertToNavigationLinks({
39451      clientId,
39452      pages,
39453      parentClientId,
39454      parentPageID
39455    });
39456    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
39457      renderAppender: false,
39458      __unstableDisableDropZone: true,
39459      templateLock: isChildOfNavigation ? false : 'all',
39460      onInput: NOOP,
39461      onChange: NOOP,
39462      value: blockList
39463    });
39464    const {
39465      selectBlock
39466    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
39467    (0,external_wp_element_namespaceObject.useEffect)(() => {
39468      if (hasSelectedChild || hasDraggedChild) {
39469        openModal();
39470        selectBlock(parentClientId);
39471      }
39472    }, [hasSelectedChild, hasDraggedChild, parentClientId, selectBlock, openModal]);
39473    (0,external_wp_element_namespaceObject.useEffect)(() => {
39474      setAttributes({
39475        isNested
39476      });
39477    }, [isNested, setAttributes]);
39478    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
39479      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
39480        children: [pagesTree.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
39481          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
39482            __nextHasNoMarginBottom: true,
39483            __next40pxDefaultSize: true,
39484            className: "editor-page-attributes__parent",
39485            label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
39486            value: parentPageID,
39487            options: pagesTree,
39488            onChange: value => setAttributes({
39489              parentPageID: value !== null && value !== void 0 ? value : 0
39490            }),
39491            help: (0,external_wp_i18n_namespaceObject.__)('Choose a page to show only its subpages.')
39492          })
39493        }), allowConvertToLinks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
39494          title: (0,external_wp_i18n_namespaceObject.__)('Edit this menu'),
39495          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
39496            children: convertDescription
39497          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
39498            __next40pxDefaultSize: true,
39499            variant: "primary",
39500            accessibleWhenDisabled: true,
39501            disabled: !hasResolvedPages,
39502            onClick: convertToNavigationLinks,
39503            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
39504          })]
39505        })]
39506      }), allowConvertToLinks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
39507        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
39508          group: "other",
39509          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
39510            title: (0,external_wp_i18n_namespaceObject.__)('Edit'),
39511            onClick: openModal,
39512            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
39513          })
39514        }), isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ConvertToLinksModal, {
39515          onClick: convertToNavigationLinks,
39516          onClose: closeModal,
39517          disabled: !hasResolvedPages
39518        })]
39519      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockContent, {
39520        blockProps: blockProps,
39521        innerBlocksProps: innerBlocksProps,
39522        hasResolvedPages: hasResolvedPages,
39523        blockList: blockList,
39524        pages: pages,
39525        parentPageID: parentPageID
39526      })]
39527    });
39528  }
39529  
39530  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/index.js
39531  /**
39532   * WordPress dependencies
39533   */
39534  
39535  
39536  /**
39537   * Internal dependencies
39538   */
39539  
39540  const page_list_metadata = {
39541    $schema: "https://schemas.wp.org/trunk/block.json",
39542    apiVersion: 3,
39543    name: "core/page-list",
39544    title: "Page List",
39545    category: "widgets",
39546    allowedBlocks: ["core/page-list-item"],
39547    description: "Display a list of all pages.",
39548    keywords: ["menu", "navigation"],
39549    textdomain: "default",
39550    attributes: {
39551      parentPageID: {
39552        type: "integer",
39553        "default": 0
39554      },
39555      isNested: {
39556        type: "boolean",
39557        "default": false
39558      }
39559    },
39560    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
39561    supports: {
39562      reusable: false,
39563      html: false,
39564      typography: {
39565        fontSize: true,
39566        lineHeight: true,
39567        __experimentalFontFamily: true,
39568        __experimentalFontWeight: true,
39569        __experimentalFontStyle: true,
39570        __experimentalTextTransform: true,
39571        __experimentalTextDecoration: true,
39572        __experimentalLetterSpacing: true,
39573        __experimentalDefaultControls: {
39574          fontSize: true
39575        }
39576      },
39577      interactivity: {
39578        clientNavigation: true
39579      }
39580    },
39581    editorStyle: "wp-block-page-list-editor",
39582    style: "wp-block-page-list"
39583  };
39584  
39585  const {
39586    name: page_list_name
39587  } = page_list_metadata;
39588  
39589  const page_list_settings = {
39590    icon: library_pages,
39591    example: {},
39592    edit: PageListEdit
39593  };
39594  const page_list_init = () => initBlock({
39595    name: page_list_name,
39596    metadata: page_list_metadata,
39597    settings: page_list_settings
39598  });
39599  
39600  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/icons.js
39601  /**
39602   * WordPress dependencies
39603   */
39604  
39605  
39606  const icons_ItemSubmenuIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
39607    xmlns: "http://www.w3.org/2000/svg",
39608    width: "12",
39609    height: "12",
39610    viewBox: "0 0 12 12",
39611    fill: "none",
39612    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
39613      d: "M1.50002 4L6.00002 8L10.5 4",
39614      strokeWidth: "1.5"
39615    })
39616  });
39617  
39618  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list-item/edit.js
39619  /**
39620   * External dependencies
39621   */
39622  
39623  /**
39624   * WordPress dependencies
39625   */
39626  
39627  
39628  
39629  
39630  
39631  /**
39632   * Internal dependencies
39633   */
39634  
39635  
39636  
39637  
39638  
39639  function useFrontPageId() {
39640    return (0,external_wp_data_namespaceObject.useSelect)(select => {
39641      const canReadSettings = select(external_wp_coreData_namespaceObject.store).canUser('read', {
39642        kind: 'root',
39643        name: 'site'
39644      });
39645      if (!canReadSettings) {
39646        return undefined;
39647      }
39648      const site = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'site');
39649      return site?.show_on_front === 'page' && site?.page_on_front;
39650    }, []);
39651  }
39652  function PageListItemEdit({
39653    context,
39654    attributes
39655  }) {
39656    const {
39657      id,
39658      label,
39659      link,
39660      hasChildren,
39661      title
39662    } = attributes;
39663    const isNavigationChild = ('showSubmenuIcon' in context);
39664    const frontPageId = useFrontPageId();
39665    const innerBlocksColors = getColors(context, true);
39666    const navigationChildBlockProps = getNavigationChildBlockProps(innerBlocksColors);
39667    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(navigationChildBlockProps, {
39668      className: 'wp-block-pages-list__item'
39669    });
39670    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps);
39671    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
39672      className: dist_clsx('wp-block-pages-list__item', {
39673        'has-child': hasChildren,
39674        'wp-block-navigation-item': isNavigationChild,
39675        'open-on-click': context.openSubmenusOnClick,
39676        'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
39677        'menu-item-home': id === frontPageId
39678      }),
39679      children: [hasChildren && context.openSubmenusOnClick ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
39680        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
39681          type: "button",
39682          className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
39683          "aria-expanded": "false",
39684          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(label)
39685        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39686          className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
39687          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icons_ItemSubmenuIcon, {})
39688        })]
39689      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
39690        className: dist_clsx('wp-block-pages-list__item__link', {
39691          'wp-block-navigation-item__content': isNavigationChild
39692        }),
39693        href: link,
39694        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title)
39695      }), hasChildren && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
39696        children: [!context.openSubmenusOnClick && context.showSubmenuIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
39697          className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
39698          "aria-expanded": "false",
39699          type: "button",
39700          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icons_ItemSubmenuIcon, {})
39701        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
39702          ...innerBlocksProps
39703        })]
39704      })]
39705    }, id);
39706  }
39707  
39708  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list-item/index.js
39709  /**
39710   * WordPress dependencies
39711   */
39712  
39713  
39714  /**
39715   * Internal dependencies
39716   */
39717  
39718  const page_list_item_metadata = {
39719    $schema: "https://schemas.wp.org/trunk/block.json",
39720    apiVersion: 3,
39721    name: "core/page-list-item",
39722    title: "Page List Item",
39723    category: "widgets",
39724    parent: ["core/page-list"],
39725    description: "Displays a page inside a list of all pages.",
39726    keywords: ["page", "menu", "navigation"],
39727    textdomain: "default",
39728    attributes: {
39729      id: {
39730        type: "number"
39731      },
39732      label: {
39733        type: "string"
39734      },
39735      title: {
39736        type: "string"
39737      },
39738      link: {
39739        type: "string"
39740      },
39741      hasChildren: {
39742        type: "boolean"
39743      }
39744    },
39745    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
39746    supports: {
39747      reusable: false,
39748      html: false,
39749      lock: false,
39750      inserter: false,
39751      __experimentalToolbar: false,
39752      interactivity: {
39753        clientNavigation: true
39754      }
39755    },
39756    editorStyle: "wp-block-page-list-editor",
39757    style: "wp-block-page-list"
39758  };
39759  
39760  const {
39761    name: page_list_item_name
39762  } = page_list_item_metadata;
39763  
39764  const page_list_item_settings = {
39765    __experimentalLabel: ({
39766      label
39767    }) => label,
39768    icon: library_page,
39769    example: {},
39770    edit: PageListItemEdit
39771  };
39772  const page_list_item_init = () => initBlock({
39773    name: page_list_item_name,
39774    metadata: page_list_item_metadata,
39775    settings: page_list_item_settings
39776  });
39777  
39778  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js
39779  /**
39780   * WordPress dependencies
39781   */
39782  
39783  
39784  const paragraph = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
39785    xmlns: "http://www.w3.org/2000/svg",
39786    viewBox: "0 0 24 24",
39787    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39788      d: "m9.99609 14v-.2251l.00391.0001v6.225h1.5v-14.5h2.5v14.5h1.5v-14.5h3v-1.5h-8.50391c-2.76142 0-5 2.23858-5 5 0 2.7614 2.23858 5 5 5z"
39789    })
39790  });
39791  /* harmony default export */ const library_paragraph = (paragraph);
39792  
39793  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js
39794  /**
39795   * External dependencies
39796   */
39797  
39798  
39799  /**
39800   * WordPress dependencies
39801   */
39802  
39803  
39804  
39805  
39806  const deprecated_supports = {
39807    className: false
39808  };
39809  const paragraph_deprecated_blockAttributes = {
39810    align: {
39811      type: 'string'
39812    },
39813    content: {
39814      type: 'string',
39815      source: 'html',
39816      selector: 'p',
39817      default: ''
39818    },
39819    dropCap: {
39820      type: 'boolean',
39821      default: false
39822    },
39823    placeholder: {
39824      type: 'string'
39825    },
39826    textColor: {
39827      type: 'string'
39828    },
39829    backgroundColor: {
39830      type: 'string'
39831    },
39832    fontSize: {
39833      type: 'string'
39834    },
39835    direction: {
39836      type: 'string',
39837      enum: ['ltr', 'rtl']
39838    },
39839    style: {
39840      type: 'object'
39841    }
39842  };
39843  const migrateCustomColorsAndFontSizes = attributes => {
39844    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) {
39845      return attributes;
39846    }
39847    const style = {};
39848    if (attributes.customTextColor || attributes.customBackgroundColor) {
39849      style.color = {};
39850    }
39851    if (attributes.customTextColor) {
39852      style.color.text = attributes.customTextColor;
39853    }
39854    if (attributes.customBackgroundColor) {
39855      style.color.background = attributes.customBackgroundColor;
39856    }
39857    if (attributes.customFontSize) {
39858      style.typography = {
39859        fontSize: attributes.customFontSize
39860      };
39861    }
39862    const {
39863      customTextColor,
39864      customBackgroundColor,
39865      customFontSize,
39866      ...restAttributes
39867    } = attributes;
39868    return {
39869      ...restAttributes,
39870      style
39871    };
39872  };
39873  const {
39874    style,
39875    ...restBlockAttributes
39876  } = paragraph_deprecated_blockAttributes;
39877  const paragraph_deprecated_deprecated = [
39878  // Version without drop cap on aligned text.
39879  {
39880    supports: deprecated_supports,
39881    attributes: {
39882      ...restBlockAttributes,
39883      customTextColor: {
39884        type: 'string'
39885      },
39886      customBackgroundColor: {
39887        type: 'string'
39888      },
39889      customFontSize: {
39890        type: 'number'
39891      }
39892    },
39893    save({
39894      attributes
39895    }) {
39896      const {
39897        align,
39898        content,
39899        dropCap,
39900        direction
39901      } = attributes;
39902      const className = dist_clsx({
39903        'has-drop-cap': align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center' ? false : dropCap,
39904        [`has-text-align-$align}`]: align
39905      });
39906      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
39907        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
39908          className,
39909          dir: direction
39910        }),
39911        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
39912          value: content
39913        })
39914      });
39915    }
39916  }, {
39917    supports: deprecated_supports,
39918    attributes: {
39919      ...restBlockAttributes,
39920      customTextColor: {
39921        type: 'string'
39922      },
39923      customBackgroundColor: {
39924        type: 'string'
39925      },
39926      customFontSize: {
39927        type: 'number'
39928      }
39929    },
39930    migrate: migrateCustomColorsAndFontSizes,
39931    save({
39932      attributes
39933    }) {
39934      const {
39935        align,
39936        content,
39937        dropCap,
39938        backgroundColor,
39939        textColor,
39940        customBackgroundColor,
39941        customTextColor,
39942        fontSize,
39943        customFontSize,
39944        direction
39945      } = attributes;
39946      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
39947      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
39948      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
39949      const className = dist_clsx({
39950        'has-text-color': textColor || customTextColor,
39951        'has-background': backgroundColor || customBackgroundColor,
39952        'has-drop-cap': dropCap,
39953        [`has-text-align-$align}`]: align,
39954        [fontSizeClass]: fontSizeClass,
39955        [textClass]: textClass,
39956        [backgroundClass]: backgroundClass
39957      });
39958      const styles = {
39959        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
39960        color: textClass ? undefined : customTextColor,
39961        fontSize: fontSizeClass ? undefined : customFontSize
39962      };
39963      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
39964        tagName: "p",
39965        style: styles,
39966        className: className ? className : undefined,
39967        value: content,
39968        dir: direction
39969      });
39970    }
39971  }, {
39972    supports: deprecated_supports,
39973    attributes: {
39974      ...restBlockAttributes,
39975      customTextColor: {
39976        type: 'string'
39977      },
39978      customBackgroundColor: {
39979        type: 'string'
39980      },
39981      customFontSize: {
39982        type: 'number'
39983      }
39984    },
39985    migrate: migrateCustomColorsAndFontSizes,
39986    save({
39987      attributes
39988    }) {
39989      const {
39990        align,
39991        content,
39992        dropCap,
39993        backgroundColor,
39994        textColor,
39995        customBackgroundColor,
39996        customTextColor,
39997        fontSize,
39998        customFontSize,
39999        direction
40000      } = attributes;
40001      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
40002      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
40003      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
40004      const className = dist_clsx({
40005        'has-text-color': textColor || customTextColor,
40006        'has-background': backgroundColor || customBackgroundColor,
40007        'has-drop-cap': dropCap,
40008        [fontSizeClass]: fontSizeClass,
40009        [textClass]: textClass,
40010        [backgroundClass]: backgroundClass
40011      });
40012      const styles = {
40013        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
40014        color: textClass ? undefined : customTextColor,
40015        fontSize: fontSizeClass ? undefined : customFontSize,
40016        textAlign: align
40017      };
40018      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
40019        tagName: "p",
40020        style: styles,
40021        className: className ? className : undefined,
40022        value: content,
40023        dir: direction
40024      });
40025    }
40026  }, {
40027    supports: deprecated_supports,
40028    attributes: {
40029      ...restBlockAttributes,
40030      customTextColor: {
40031        type: 'string'
40032      },
40033      customBackgroundColor: {
40034        type: 'string'
40035      },
40036      customFontSize: {
40037        type: 'number'
40038      },
40039      width: {
40040        type: 'string'
40041      }
40042    },
40043    migrate: migrateCustomColorsAndFontSizes,
40044    save({
40045      attributes
40046    }) {
40047      const {
40048        width,
40049        align,
40050        content,
40051        dropCap,
40052        backgroundColor,
40053        textColor,
40054        customBackgroundColor,
40055        customTextColor,
40056        fontSize,
40057        customFontSize
40058      } = attributes;
40059      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
40060      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
40061      const fontSizeClass = fontSize && `is-$fontSize}-text`;
40062      const className = dist_clsx({
40063        [`align$width}`]: width,
40064        'has-background': backgroundColor || customBackgroundColor,
40065        'has-drop-cap': dropCap,
40066        [fontSizeClass]: fontSizeClass,
40067        [textClass]: textClass,
40068        [backgroundClass]: backgroundClass
40069      });
40070      const styles = {
40071        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
40072        color: textClass ? undefined : customTextColor,
40073        fontSize: fontSizeClass ? undefined : customFontSize,
40074        textAlign: align
40075      };
40076      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
40077        tagName: "p",
40078        style: styles,
40079        className: className ? className : undefined,
40080        value: content
40081      });
40082    }
40083  }, {
40084    supports: deprecated_supports,
40085    attributes: {
40086      ...restBlockAttributes,
40087      fontSize: {
40088        type: 'number'
40089      }
40090    },
40091    save({
40092      attributes
40093    }) {
40094      const {
40095        width,
40096        align,
40097        content,
40098        dropCap,
40099        backgroundColor,
40100        textColor,
40101        fontSize
40102      } = attributes;
40103      const className = dist_clsx({
40104        [`align$width}`]: width,
40105        'has-background': backgroundColor,
40106        'has-drop-cap': dropCap
40107      });
40108      const styles = {
40109        backgroundColor,
40110        color: textColor,
40111        fontSize,
40112        textAlign: align
40113      };
40114      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40115        style: styles,
40116        className: className ? className : undefined,
40117        children: content
40118      });
40119    },
40120    migrate(attributes) {
40121      return migrateCustomColorsAndFontSizes({
40122        ...attributes,
40123        customFontSize: Number.isFinite(attributes.fontSize) ? attributes.fontSize : undefined,
40124        customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
40125        customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined
40126      });
40127    }
40128  }, {
40129    supports: deprecated_supports,
40130    attributes: {
40131      ...paragraph_deprecated_blockAttributes,
40132      content: {
40133        type: 'string',
40134        source: 'html',
40135        default: ''
40136      }
40137    },
40138    save({
40139      attributes
40140    }) {
40141      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
40142        children: attributes.content
40143      });
40144    },
40145    migrate(attributes) {
40146      return attributes;
40147    }
40148  }];
40149  /* harmony default export */ const paragraph_deprecated = (paragraph_deprecated_deprecated);
40150  
40151  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-ltr.js
40152  /**
40153   * WordPress dependencies
40154   */
40155  
40156  
40157  const formatLtr = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
40158    xmlns: "http://www.w3.org/2000/svg",
40159    viewBox: "-2 -2 24 24",
40160    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40161      d: "M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z"
40162    })
40163  });
40164  /* harmony default export */ const format_ltr = (formatLtr);
40165  
40166  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/use-enter.js
40167  /**
40168   * WordPress dependencies
40169   */
40170  
40171  
40172  
40173  
40174  
40175  
40176  function useOnEnter(props) {
40177    const {
40178      batch
40179    } = (0,external_wp_data_namespaceObject.useRegistry)();
40180    const {
40181      moveBlocksToPosition,
40182      replaceInnerBlocks,
40183      duplicateBlocks,
40184      insertBlock
40185    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
40186    const {
40187      getBlockRootClientId,
40188      getBlockIndex,
40189      getBlockOrder,
40190      getBlockName,
40191      getBlock,
40192      getNextBlockClientId,
40193      canInsertBlockType
40194    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
40195    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
40196    propsRef.current = props;
40197    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
40198      function onKeyDown(event) {
40199        if (event.defaultPrevented) {
40200          return;
40201        }
40202        if (event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
40203          return;
40204        }
40205        const {
40206          content,
40207          clientId
40208        } = propsRef.current;
40209  
40210        // The paragraph should be empty.
40211        if (content.length) {
40212          return;
40213        }
40214        const wrapperClientId = getBlockRootClientId(clientId);
40215        if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(getBlockName(wrapperClientId), '__experimentalOnEnter', false)) {
40216          return;
40217        }
40218        const order = getBlockOrder(wrapperClientId);
40219        const position = order.indexOf(clientId);
40220  
40221        // If it is the last block, exit.
40222        if (position === order.length - 1) {
40223          let newWrapperClientId = wrapperClientId;
40224          while (!canInsertBlockType(getBlockName(clientId), getBlockRootClientId(newWrapperClientId))) {
40225            newWrapperClientId = getBlockRootClientId(newWrapperClientId);
40226          }
40227          if (typeof newWrapperClientId === 'string') {
40228            event.preventDefault();
40229            moveBlocksToPosition([clientId], wrapperClientId, getBlockRootClientId(newWrapperClientId), getBlockIndex(newWrapperClientId) + 1);
40230          }
40231          return;
40232        }
40233        const defaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)();
40234        if (!canInsertBlockType(defaultBlockName, getBlockRootClientId(wrapperClientId))) {
40235          return;
40236        }
40237        event.preventDefault();
40238  
40239        // If it is in the middle, split the block in two.
40240        const wrapperBlock = getBlock(wrapperClientId);
40241        batch(() => {
40242          duplicateBlocks([wrapperClientId]);
40243          const blockIndex = getBlockIndex(wrapperClientId);
40244          replaceInnerBlocks(wrapperClientId, wrapperBlock.innerBlocks.slice(0, position));
40245          replaceInnerBlocks(getNextBlockClientId(wrapperClientId), wrapperBlock.innerBlocks.slice(position + 1));
40246          insertBlock((0,external_wp_blocks_namespaceObject.createBlock)(defaultBlockName), blockIndex + 1, getBlockRootClientId(wrapperClientId), true);
40247        });
40248      }
40249      element.addEventListener('keydown', onKeyDown);
40250      return () => {
40251        element.removeEventListener('keydown', onKeyDown);
40252      };
40253    }, []);
40254  }
40255  
40256  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js
40257  /**
40258   * External dependencies
40259   */
40260  
40261  
40262  /**
40263   * WordPress dependencies
40264   */
40265  
40266  
40267  
40268  
40269  
40270  /**
40271   * Internal dependencies
40272   */
40273  
40274  
40275  
40276  
40277  function ParagraphRTLControl({
40278    direction,
40279    setDirection
40280  }) {
40281    return (0,external_wp_i18n_namespaceObject.isRTL)() && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
40282      icon: format_ltr,
40283      title: (0,external_wp_i18n_namespaceObject._x)('Left to right', 'editor button'),
40284      isActive: direction === 'ltr',
40285      onClick: () => {
40286        setDirection(direction === 'ltr' ? undefined : 'ltr');
40287      }
40288    });
40289  }
40290  function hasDropCapDisabled(align) {
40291    return align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center';
40292  }
40293  function DropCapControl({
40294    clientId,
40295    attributes,
40296    setAttributes
40297  }) {
40298    // Please do not add a useSelect call to the paragraph block unconditionally.
40299    // Every useSelect added to a (frequently used) block will degrade load
40300    // and type performance. By moving it within InspectorControls, the subscription is
40301    // now only added for the selected block(s).
40302    const [isDropCapFeatureEnabled] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.dropCap');
40303    if (!isDropCapFeatureEnabled) {
40304      return null;
40305    }
40306    const {
40307      align,
40308      dropCap
40309    } = attributes;
40310    let helpText;
40311    if (hasDropCapDisabled(align)) {
40312      helpText = (0,external_wp_i18n_namespaceObject.__)('Not available for aligned text.');
40313    } else if (dropCap) {
40314      helpText = (0,external_wp_i18n_namespaceObject.__)('Showing large initial letter.');
40315    } else {
40316      helpText = (0,external_wp_i18n_namespaceObject.__)('Toggle to show a large initial letter.');
40317    }
40318    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
40319      hasValue: () => !!dropCap,
40320      label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
40321      onDeselect: () => setAttributes({
40322        dropCap: undefined
40323      }),
40324      resetAllFilter: () => ({
40325        dropCap: undefined
40326      }),
40327      panelId: clientId,
40328      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
40329        __nextHasNoMarginBottom: true,
40330        label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
40331        checked: !!dropCap,
40332        onChange: () => setAttributes({
40333          dropCap: !dropCap
40334        }),
40335        help: helpText,
40336        disabled: hasDropCapDisabled(align) ? true : false
40337      })
40338    });
40339  }
40340  function ParagraphBlock({
40341    attributes,
40342    mergeBlocks,
40343    onReplace,
40344    onRemove,
40345    setAttributes,
40346    clientId
40347  }) {
40348    const {
40349      align,
40350      content,
40351      direction,
40352      dropCap,
40353      placeholder
40354    } = attributes;
40355    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
40356      ref: useOnEnter({
40357        clientId,
40358        content
40359      }),
40360      className: dist_clsx({
40361        'has-drop-cap': hasDropCapDisabled(align) ? false : dropCap,
40362        [`has-text-align-$align}`]: align
40363      }),
40364      style: {
40365        direction
40366      }
40367    });
40368    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
40369    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40370      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
40371        group: "block",
40372        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
40373          value: align,
40374          onChange: newAlign => setAttributes({
40375            align: newAlign,
40376            dropCap: hasDropCapDisabled(newAlign) ? false : dropCap
40377          })
40378        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ParagraphRTLControl, {
40379          direction: direction,
40380          setDirection: newDirection => setAttributes({
40381            direction: newDirection
40382          })
40383        })]
40384      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
40385        group: "typography",
40386        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DropCapControl, {
40387          clientId: clientId,
40388          attributes: attributes,
40389          setAttributes: setAttributes
40390        })
40391      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
40392        identifier: "content",
40393        tagName: "p",
40394        ...blockProps,
40395        value: content,
40396        onChange: newContent => setAttributes({
40397          content: newContent
40398        }),
40399        onMerge: mergeBlocks,
40400        onReplace: onReplace,
40401        onRemove: onRemove,
40402        "aria-label": external_wp_blockEditor_namespaceObject.RichText.isEmpty(content) ? (0,external_wp_i18n_namespaceObject.__)('Empty block; start writing or type forward slash to choose a block') : (0,external_wp_i18n_namespaceObject.__)('Block: Paragraph'),
40403        "data-empty": external_wp_blockEditor_namespaceObject.RichText.isEmpty(content),
40404        placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'),
40405        "data-custom-placeholder": placeholder ? true : undefined,
40406        __unstableEmbedURLOnPaste: true,
40407        __unstableAllowPrefixTransformations: true
40408      })]
40409    });
40410  }
40411  /* harmony default export */ const paragraph_edit = (ParagraphBlock);
40412  
40413  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/save.js
40414  /**
40415   * External dependencies
40416   */
40417  
40418  
40419  /**
40420   * WordPress dependencies
40421   */
40422  
40423  
40424  
40425  function paragraph_save_save({
40426    attributes
40427  }) {
40428    const {
40429      align,
40430      content,
40431      dropCap,
40432      direction
40433    } = attributes;
40434    const className = dist_clsx({
40435      'has-drop-cap': align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center' ? false : dropCap,
40436      [`has-text-align-$align}`]: align
40437    });
40438    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40439      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
40440        className,
40441        dir: direction
40442      }),
40443      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
40444        value: content
40445      })
40446    });
40447  }
40448  
40449  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js
40450  /**
40451   * WordPress dependencies
40452   */
40453  
40454  
40455  /**
40456   * Internal dependencies
40457   */
40458  const {
40459    name: transforms_name
40460  } = {
40461    $schema: "https://schemas.wp.org/trunk/block.json",
40462    apiVersion: 3,
40463    name: "core/paragraph",
40464    title: "Paragraph",
40465    category: "text",
40466    description: "Start with the basic building block of all narrative.",
40467    keywords: ["text"],
40468    textdomain: "default",
40469    attributes: {
40470      align: {
40471        type: "string"
40472      },
40473      content: {
40474        type: "rich-text",
40475        source: "rich-text",
40476        selector: "p",
40477        role: "content"
40478      },
40479      dropCap: {
40480        type: "boolean",
40481        "default": false
40482      },
40483      placeholder: {
40484        type: "string"
40485      },
40486      direction: {
40487        type: "string",
40488        "enum": ["ltr", "rtl"]
40489      }
40490    },
40491    supports: {
40492      splitting: true,
40493      anchor: true,
40494      className: false,
40495      __experimentalBorder: {
40496        color: true,
40497        radius: true,
40498        style: true,
40499        width: true
40500      },
40501      color: {
40502        gradients: true,
40503        link: true,
40504        __experimentalDefaultControls: {
40505          background: true,
40506          text: true
40507        }
40508      },
40509      spacing: {
40510        margin: true,
40511        padding: true,
40512        __experimentalDefaultControls: {
40513          margin: false,
40514          padding: false
40515        }
40516      },
40517      typography: {
40518        fontSize: true,
40519        lineHeight: true,
40520        __experimentalFontFamily: true,
40521        __experimentalTextDecoration: true,
40522        __experimentalFontStyle: true,
40523        __experimentalFontWeight: true,
40524        __experimentalLetterSpacing: true,
40525        __experimentalTextTransform: true,
40526        __experimentalWritingMode: true,
40527        __experimentalDefaultControls: {
40528          fontSize: true
40529        }
40530      },
40531      __experimentalSelector: "p",
40532      __unstablePasteTextInline: true,
40533      interactivity: {
40534        clientNavigation: true
40535      }
40536    },
40537    editorStyle: "wp-block-paragraph-editor",
40538    style: "wp-block-paragraph"
40539  };
40540  const paragraph_transforms_transforms = {
40541    from: [{
40542      type: 'raw',
40543      // Paragraph is a fallback and should be matched last.
40544      priority: 20,
40545      selector: 'p',
40546      schema: ({
40547        phrasingContentSchema,
40548        isPaste
40549      }) => ({
40550        p: {
40551          children: phrasingContentSchema,
40552          attributes: isPaste ? [] : ['style', 'id']
40553        }
40554      }),
40555      transform(node) {
40556        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(transforms_name, node.outerHTML);
40557        const {
40558          textAlign
40559        } = node.style || {};
40560        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
40561          attributes.align = textAlign;
40562        }
40563        return (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, attributes);
40564      }
40565    }]
40566  };
40567  /* harmony default export */ const paragraph_transforms = (paragraph_transforms_transforms);
40568  
40569  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
40570  /**
40571   * WordPress dependencies
40572   */
40573  
40574  
40575  
40576  /**
40577   * Internal dependencies
40578   */
40579  
40580  
40581  
40582  const paragraph_metadata = {
40583    $schema: "https://schemas.wp.org/trunk/block.json",
40584    apiVersion: 3,
40585    name: "core/paragraph",
40586    title: "Paragraph",
40587    category: "text",
40588    description: "Start with the basic building block of all narrative.",
40589    keywords: ["text"],
40590    textdomain: "default",
40591    attributes: {
40592      align: {
40593        type: "string"
40594      },
40595      content: {
40596        type: "rich-text",
40597        source: "rich-text",
40598        selector: "p",
40599        role: "content"
40600      },
40601      dropCap: {
40602        type: "boolean",
40603        "default": false
40604      },
40605      placeholder: {
40606        type: "string"
40607      },
40608      direction: {
40609        type: "string",
40610        "enum": ["ltr", "rtl"]
40611      }
40612    },
40613    supports: {
40614      splitting: true,
40615      anchor: true,
40616      className: false,
40617      __experimentalBorder: {
40618        color: true,
40619        radius: true,
40620        style: true,
40621        width: true
40622      },
40623      color: {
40624        gradients: true,
40625        link: true,
40626        __experimentalDefaultControls: {
40627          background: true,
40628          text: true
40629        }
40630      },
40631      spacing: {
40632        margin: true,
40633        padding: true,
40634        __experimentalDefaultControls: {
40635          margin: false,
40636          padding: false
40637        }
40638      },
40639      typography: {
40640        fontSize: true,
40641        lineHeight: true,
40642        __experimentalFontFamily: true,
40643        __experimentalTextDecoration: true,
40644        __experimentalFontStyle: true,
40645        __experimentalFontWeight: true,
40646        __experimentalLetterSpacing: true,
40647        __experimentalTextTransform: true,
40648        __experimentalWritingMode: true,
40649        __experimentalDefaultControls: {
40650          fontSize: true
40651        }
40652      },
40653      __experimentalSelector: "p",
40654      __unstablePasteTextInline: true,
40655      interactivity: {
40656        clientNavigation: true
40657      }
40658    },
40659    editorStyle: "wp-block-paragraph-editor",
40660    style: "wp-block-paragraph"
40661  };
40662  
40663  
40664  const {
40665    name: paragraph_name
40666  } = paragraph_metadata;
40667  
40668  const paragraph_settings = {
40669    icon: library_paragraph,
40670    example: {
40671      attributes: {
40672        content: (0,external_wp_i18n_namespaceObject.__)('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.')
40673      }
40674    },
40675    __experimentalLabel(attributes, {
40676      context
40677    }) {
40678      const customName = attributes?.metadata?.name;
40679      if (context === 'list-view' && customName) {
40680        return customName;
40681      }
40682      if (context === 'accessibility') {
40683        if (customName) {
40684          return customName;
40685        }
40686        const {
40687          content
40688        } = attributes;
40689        return !content || content.length === 0 ? (0,external_wp_i18n_namespaceObject.__)('Empty') : content;
40690      }
40691    },
40692    transforms: paragraph_transforms,
40693    deprecated: paragraph_deprecated,
40694    merge(attributes, attributesToMerge) {
40695      return {
40696        content: (attributes.content || '') + (attributesToMerge.content || '')
40697      };
40698    },
40699    edit: paragraph_edit,
40700    save: paragraph_save_save
40701  };
40702  const paragraph_init = () => initBlock({
40703    name: paragraph_name,
40704    metadata: paragraph_metadata,
40705    settings: paragraph_settings
40706  });
40707  
40708  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-author.js
40709  /**
40710   * WordPress dependencies
40711   */
40712  
40713  
40714  const postAuthor = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
40715    viewBox: "0 0 24 24",
40716    xmlns: "http://www.w3.org/2000/svg",
40717    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40718      d: "M10 4.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm2.25 7.5v-1A2.75 2.75 0 0011 8.25H7A2.75 2.75 0 004.25 11v1h1.5v-1c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v1h1.5zM4 20h9v-1.5H4V20zm16-4H4v-1.5h16V16z",
40719      fillRule: "evenodd",
40720      clipRule: "evenodd"
40721    })
40722  });
40723  /* harmony default export */ const post_author = (postAuthor);
40724  
40725  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/edit.js
40726  /**
40727   * External dependencies
40728   */
40729  
40730  
40731  /**
40732   * WordPress dependencies
40733   */
40734  
40735  
40736  
40737  
40738  
40739  
40740  
40741  
40742  const minimumUsersForCombobox = 25;
40743  const edit_AUTHORS_QUERY = {
40744    who: 'authors',
40745    per_page: 100
40746  };
40747  function PostAuthorEdit({
40748    isSelected,
40749    context: {
40750      postType,
40751      postId,
40752      queryId
40753    },
40754    attributes,
40755    setAttributes
40756  }) {
40757    const isDescendentOfQueryLoop = Number.isFinite(queryId);
40758    const {
40759      authorId,
40760      authorDetails,
40761      authors
40762    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
40763      const {
40764        getEditedEntityRecord,
40765        getUser,
40766        getUsers
40767      } = select(external_wp_coreData_namespaceObject.store);
40768      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
40769      return {
40770        authorId: _authorId,
40771        authorDetails: _authorId ? getUser(_authorId) : null,
40772        authors: getUsers(edit_AUTHORS_QUERY)
40773      };
40774    }, [postType, postId]);
40775    const {
40776      editEntityRecord
40777    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
40778    const {
40779      textAlign,
40780      showAvatar,
40781      showBio,
40782      byline,
40783      isLink,
40784      linkTarget
40785    } = attributes;
40786    const avatarSizes = [];
40787    const authorName = authorDetails?.name || (0,external_wp_i18n_namespaceObject.__)('Post Author');
40788    if (authorDetails?.avatar_urls) {
40789      Object.keys(authorDetails.avatar_urls).forEach(size => {
40790        avatarSizes.push({
40791          value: size,
40792          label: `$size} x $size}`
40793        });
40794      });
40795    }
40796    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
40797      className: dist_clsx({
40798        [`has-text-align-$textAlign}`]: textAlign
40799      })
40800    });
40801    const authorOptions = authors?.length ? authors.map(({
40802      id,
40803      name
40804    }) => {
40805      return {
40806        value: id,
40807        label: name
40808      };
40809    }) : [];
40810    const handleSelect = nextAuthorId => {
40811      editEntityRecord('postType', postType, postId, {
40812        author: nextAuthorId
40813      });
40814    };
40815    const showCombobox = authorOptions.length >= minimumUsersForCombobox;
40816    const showAuthorControl = !!postId && !isDescendentOfQueryLoop && authorOptions.length > 0;
40817    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40818      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
40819        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
40820          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
40821          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
40822            spacing: 4,
40823            className: "wp-block-post-author__inspector-settings",
40824            children: [showAuthorControl && (showCombobox && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
40825              __next40pxDefaultSize: true,
40826              __nextHasNoMarginBottom: true,
40827              label: (0,external_wp_i18n_namespaceObject.__)('Author'),
40828              options: authorOptions,
40829              value: authorId,
40830              onChange: handleSelect,
40831              allowReset: false
40832            }) || /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
40833              __next40pxDefaultSize: true,
40834              __nextHasNoMarginBottom: true,
40835              label: (0,external_wp_i18n_namespaceObject.__)('Author'),
40836              value: authorId,
40837              options: authorOptions,
40838              onChange: handleSelect
40839            })), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
40840              __nextHasNoMarginBottom: true,
40841              label: (0,external_wp_i18n_namespaceObject.__)('Show avatar'),
40842              checked: showAvatar,
40843              onChange: () => setAttributes({
40844                showAvatar: !showAvatar
40845              })
40846            }), showAvatar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
40847              __next40pxDefaultSize: true,
40848              __nextHasNoMarginBottom: true,
40849              label: (0,external_wp_i18n_namespaceObject.__)('Avatar size'),
40850              value: attributes.avatarSize,
40851              options: avatarSizes,
40852              onChange: size => {
40853                setAttributes({
40854                  avatarSize: Number(size)
40855                });
40856              }
40857            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
40858              __nextHasNoMarginBottom: true,
40859              label: (0,external_wp_i18n_namespaceObject.__)('Show bio'),
40860              checked: showBio,
40861              onChange: () => setAttributes({
40862                showBio: !showBio
40863              })
40864            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
40865              __nextHasNoMarginBottom: true,
40866              label: (0,external_wp_i18n_namespaceObject.__)('Link author name to author page'),
40867              checked: isLink,
40868              onChange: () => setAttributes({
40869                isLink: !isLink
40870              })
40871            }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
40872              __nextHasNoMarginBottom: true,
40873              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
40874              onChange: value => setAttributes({
40875                linkTarget: value ? '_blank' : '_self'
40876              }),
40877              checked: linkTarget === '_blank'
40878            })]
40879          })
40880        })
40881      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
40882        group: "block",
40883        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
40884          value: textAlign,
40885          onChange: nextAlign => {
40886            setAttributes({
40887              textAlign: nextAlign
40888            });
40889          }
40890        })
40891      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
40892        ...blockProps,
40893        children: [showAvatar && authorDetails?.avatar_urls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40894          className: "wp-block-post-author__avatar",
40895          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
40896            width: attributes.avatarSize,
40897            src: authorDetails.avatar_urls[attributes.avatarSize],
40898            alt: authorDetails.name
40899          })
40900        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
40901          className: "wp-block-post-author__content",
40902          children: [(!external_wp_blockEditor_namespaceObject.RichText.isEmpty(byline) || isSelected) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
40903            identifier: "byline",
40904            className: "wp-block-post-author__byline",
40905            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post author byline text'),
40906            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write byline…'),
40907            value: byline,
40908            onChange: value => setAttributes({
40909              byline: value
40910            })
40911          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40912            className: "wp-block-post-author__name",
40913            children: isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
40914              href: "#post-author-pseudo-link",
40915              onClick: event => event.preventDefault(),
40916              children: authorName
40917            }) : authorName
40918          }), showBio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40919            className: "wp-block-post-author__bio",
40920            dangerouslySetInnerHTML: {
40921              __html: authorDetails?.description
40922            }
40923          })]
40924        })]
40925      })]
40926    });
40927  }
40928  /* harmony default export */ const post_author_edit = (PostAuthorEdit);
40929  
40930  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/index.js
40931  /**
40932   * WordPress dependencies
40933   */
40934  
40935  
40936  
40937  /**
40938   * Internal dependencies
40939   */
40940  
40941  const post_author_metadata = {
40942    $schema: "https://schemas.wp.org/trunk/block.json",
40943    apiVersion: 3,
40944    name: "core/post-author",
40945    title: "Author",
40946    category: "theme",
40947    description: "Display post author details such as name, avatar, and bio.",
40948    textdomain: "default",
40949    attributes: {
40950      textAlign: {
40951        type: "string"
40952      },
40953      avatarSize: {
40954        type: "number",
40955        "default": 48
40956      },
40957      showAvatar: {
40958        type: "boolean",
40959        "default": true
40960      },
40961      showBio: {
40962        type: "boolean"
40963      },
40964      byline: {
40965        type: "string"
40966      },
40967      isLink: {
40968        type: "boolean",
40969        "default": false
40970      },
40971      linkTarget: {
40972        type: "string",
40973        "default": "_self"
40974      }
40975    },
40976    usesContext: ["postType", "postId", "queryId"],
40977    supports: {
40978      html: false,
40979      spacing: {
40980        margin: true,
40981        padding: true
40982      },
40983      typography: {
40984        fontSize: true,
40985        lineHeight: true,
40986        __experimentalFontFamily: true,
40987        __experimentalFontWeight: true,
40988        __experimentalFontStyle: true,
40989        __experimentalTextTransform: true,
40990        __experimentalTextDecoration: true,
40991        __experimentalLetterSpacing: true,
40992        __experimentalDefaultControls: {
40993          fontSize: true
40994        }
40995      },
40996      color: {
40997        gradients: true,
40998        link: true,
40999        __experimentalDuotone: ".wp-block-post-author__avatar img",
41000        __experimentalDefaultControls: {
41001          background: true,
41002          text: true
41003        }
41004      },
41005      interactivity: {
41006        clientNavigation: true
41007      },
41008      __experimentalBorder: {
41009        radius: true,
41010        color: true,
41011        width: true,
41012        style: true,
41013        __experimentalDefaultControls: {
41014          radius: true,
41015          color: true,
41016          width: true,
41017          style: true
41018        }
41019      }
41020    },
41021    editorStyle: "wp-block-post-author-editor",
41022    style: "wp-block-post-author"
41023  };
41024  
41025  const {
41026    name: post_author_name
41027  } = post_author_metadata;
41028  
41029  const post_author_settings = {
41030    icon: post_author,
41031    example: {
41032      viewportWidth: 350,
41033      attributes: {
41034        showBio: true,
41035        byline: (0,external_wp_i18n_namespaceObject.__)('Posted by')
41036      }
41037    },
41038    edit: post_author_edit
41039  };
41040  const post_author_init = () => initBlock({
41041    name: post_author_name,
41042    metadata: post_author_metadata,
41043    settings: post_author_settings
41044  });
41045  
41046  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-name/edit.js
41047  /**
41048   * External dependencies
41049   */
41050  
41051  
41052  /**
41053   * WordPress dependencies
41054   */
41055  
41056  
41057  
41058  
41059  
41060  
41061  
41062  
41063  function PostAuthorNameEdit({
41064    context: {
41065      postType,
41066      postId
41067    },
41068    attributes: {
41069      textAlign,
41070      isLink,
41071      linkTarget
41072    },
41073    setAttributes
41074  }) {
41075    const {
41076      authorName
41077    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
41078      const {
41079        getEditedEntityRecord,
41080        getUser
41081      } = select(external_wp_coreData_namespaceObject.store);
41082      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
41083      return {
41084        authorName: _authorId ? getUser(_authorId) : null
41085      };
41086    }, [postType, postId]);
41087    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41088      className: dist_clsx({
41089        [`has-text-align-$textAlign}`]: textAlign
41090      })
41091    });
41092    const displayName = authorName?.name || (0,external_wp_i18n_namespaceObject.__)('Author Name');
41093    const displayAuthor = isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
41094      href: "#author-pseudo-link",
41095      onClick: event => event.preventDefault(),
41096      className: "wp-block-post-author-name__link",
41097      children: displayName
41098    }) : displayName;
41099    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41100      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
41101        group: "block",
41102        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41103          value: textAlign,
41104          onChange: nextAlign => {
41105            setAttributes({
41106              textAlign: nextAlign
41107            });
41108          }
41109        })
41110      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
41111        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
41112          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
41113          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
41114            __nextHasNoMarginBottom: true,
41115            label: (0,external_wp_i18n_namespaceObject.__)('Link to author archive'),
41116            onChange: () => setAttributes({
41117              isLink: !isLink
41118            }),
41119            checked: isLink
41120          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
41121            __nextHasNoMarginBottom: true,
41122            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
41123            onChange: value => setAttributes({
41124              linkTarget: value ? '_blank' : '_self'
41125            }),
41126            checked: linkTarget === '_blank'
41127          })]
41128        })
41129      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
41130        ...blockProps,
41131        children: [" ", displayAuthor, " "]
41132      })]
41133    });
41134  }
41135  /* harmony default export */ const post_author_name_edit = (PostAuthorNameEdit);
41136  
41137  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-name/transforms.js
41138  /**
41139   * WordPress dependencies
41140   */
41141  
41142  const post_author_name_transforms_transforms = {
41143    from: [{
41144      type: 'block',
41145      blocks: ['core/post-author'],
41146      transform: ({
41147        textAlign
41148      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-author-name', {
41149        textAlign
41150      })
41151    }],
41152    to: [{
41153      type: 'block',
41154      blocks: ['core/post-author'],
41155      transform: ({
41156        textAlign
41157      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-author', {
41158        textAlign
41159      })
41160    }]
41161  };
41162  /* harmony default export */ const post_author_name_transforms = (post_author_name_transforms_transforms);
41163  
41164  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-name/index.js
41165  /**
41166   * WordPress dependencies
41167   */
41168  
41169  
41170  /**
41171   * Internal dependencies
41172   */
41173  
41174  const post_author_name_metadata = {
41175    $schema: "https://schemas.wp.org/trunk/block.json",
41176    apiVersion: 3,
41177    name: "core/post-author-name",
41178    title: "Author Name",
41179    category: "theme",
41180    description: "The author name.",
41181    textdomain: "default",
41182    attributes: {
41183      textAlign: {
41184        type: "string"
41185      },
41186      isLink: {
41187        type: "boolean",
41188        "default": false
41189      },
41190      linkTarget: {
41191        type: "string",
41192        "default": "_self"
41193      }
41194    },
41195    usesContext: ["postType", "postId"],
41196    example: {
41197      viewportWidth: 350
41198    },
41199    supports: {
41200      html: false,
41201      spacing: {
41202        margin: true,
41203        padding: true
41204      },
41205      color: {
41206        gradients: true,
41207        link: true,
41208        __experimentalDefaultControls: {
41209          background: true,
41210          text: true,
41211          link: true
41212        }
41213      },
41214      typography: {
41215        fontSize: true,
41216        lineHeight: true,
41217        __experimentalFontFamily: true,
41218        __experimentalFontWeight: true,
41219        __experimentalFontStyle: true,
41220        __experimentalTextTransform: true,
41221        __experimentalTextDecoration: true,
41222        __experimentalLetterSpacing: true,
41223        __experimentalDefaultControls: {
41224          fontSize: true
41225        }
41226      },
41227      interactivity: {
41228        clientNavigation: true
41229      },
41230      __experimentalBorder: {
41231        radius: true,
41232        color: true,
41233        width: true,
41234        style: true,
41235        __experimentalDefaultControls: {
41236          radius: true,
41237          color: true,
41238          width: true,
41239          style: true
41240        }
41241      }
41242    },
41243    style: "wp-block-post-author-name"
41244  };
41245  
41246  
41247  const {
41248    name: post_author_name_name
41249  } = post_author_name_metadata;
41250  
41251  const post_author_name_settings = {
41252    icon: post_author,
41253    transforms: post_author_name_transforms,
41254    edit: post_author_name_edit
41255  };
41256  const post_author_name_init = () => initBlock({
41257    name: post_author_name_name,
41258    metadata: post_author_name_metadata,
41259    settings: post_author_name_settings
41260  });
41261  
41262  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/edit.js
41263  /**
41264   * External dependencies
41265   */
41266  
41267  
41268  /**
41269   * WordPress dependencies
41270   */
41271  
41272  
41273  
41274  
41275  
41276  
41277  
41278  function PostAuthorBiographyEdit({
41279    context: {
41280      postType,
41281      postId
41282    },
41283    attributes: {
41284      textAlign
41285    },
41286    setAttributes
41287  }) {
41288    const {
41289      authorDetails
41290    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
41291      const {
41292        getEditedEntityRecord,
41293        getUser
41294      } = select(external_wp_coreData_namespaceObject.store);
41295      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
41296      return {
41297        authorDetails: _authorId ? getUser(_authorId) : null
41298      };
41299    }, [postType, postId]);
41300    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41301      className: dist_clsx({
41302        [`has-text-align-$textAlign}`]: textAlign
41303      })
41304    });
41305    const displayAuthorBiography = authorDetails?.description || (0,external_wp_i18n_namespaceObject.__)('Author Biography');
41306    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41307      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
41308        group: "block",
41309        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41310          value: textAlign,
41311          onChange: nextAlign => {
41312            setAttributes({
41313              textAlign: nextAlign
41314            });
41315          }
41316        })
41317      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41318        ...blockProps,
41319        dangerouslySetInnerHTML: {
41320          __html: displayAuthorBiography
41321        }
41322      })]
41323    });
41324  }
41325  /* harmony default export */ const post_author_biography_edit = (PostAuthorBiographyEdit);
41326  
41327  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
41328  /**
41329   * WordPress dependencies
41330   */
41331  
41332  
41333  /**
41334   * Internal dependencies
41335   */
41336  
41337  const post_author_biography_metadata = {
41338    $schema: "https://schemas.wp.org/trunk/block.json",
41339    apiVersion: 3,
41340    name: "core/post-author-biography",
41341    title: "Author Biography",
41342    category: "theme",
41343    description: "The author biography.",
41344    textdomain: "default",
41345    attributes: {
41346      textAlign: {
41347        type: "string"
41348      }
41349    },
41350    usesContext: ["postType", "postId"],
41351    example: {
41352      viewportWidth: 350
41353    },
41354    supports: {
41355      spacing: {
41356        margin: true,
41357        padding: true
41358      },
41359      color: {
41360        gradients: true,
41361        link: true,
41362        __experimentalDefaultControls: {
41363          background: true,
41364          text: true
41365        }
41366      },
41367      typography: {
41368        fontSize: true,
41369        lineHeight: true,
41370        __experimentalFontFamily: true,
41371        __experimentalFontWeight: true,
41372        __experimentalFontStyle: true,
41373        __experimentalTextTransform: true,
41374        __experimentalTextDecoration: true,
41375        __experimentalLetterSpacing: true,
41376        __experimentalDefaultControls: {
41377          fontSize: true
41378        }
41379      },
41380      interactivity: {
41381        clientNavigation: true
41382      },
41383      __experimentalBorder: {
41384        radius: true,
41385        color: true,
41386        width: true,
41387        style: true,
41388        __experimentalDefaultControls: {
41389          radius: true,
41390          color: true,
41391          width: true,
41392          style: true
41393        }
41394      }
41395    },
41396    style: "wp-block-post-author-biography"
41397  };
41398  
41399  const {
41400    name: post_author_biography_name
41401  } = post_author_biography_metadata;
41402  
41403  const post_author_biography_settings = {
41404    icon: post_author,
41405    edit: post_author_biography_edit
41406  };
41407  const post_author_biography_init = () => initBlock({
41408    name: post_author_biography_name,
41409    metadata: post_author_biography_metadata,
41410    settings: post_author_biography_settings
41411  });
41412  
41413  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js
41414  /**
41415   * WordPress dependencies
41416   */
41417  
41418  
41419  const blockDefault = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41420    xmlns: "http://www.w3.org/2000/svg",
41421    viewBox: "0 0 24 24",
41422    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41423      d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"
41424    })
41425  });
41426  /* harmony default export */ const block_default = (blockDefault);
41427  
41428  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comment/edit.js
41429  /**
41430   * WordPress dependencies
41431   */
41432  
41433  
41434  
41435  
41436  
41437  
41438  
41439  const post_comment_edit_TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']];
41440  function post_comment_edit_Edit({
41441    attributes: {
41442      commentId
41443    },
41444    setAttributes
41445  }) {
41446    const [commentIdInput, setCommentIdInput] = (0,external_wp_element_namespaceObject.useState)(commentId);
41447    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
41448    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
41449      template: post_comment_edit_TEMPLATE
41450    });
41451    if (!commentId) {
41452      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41453        ...blockProps,
41454        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
41455          icon: block_default,
41456          label: (0,external_wp_i18n_namespaceObject._x)('Post Comment', 'block title'),
41457          instructions: (0,external_wp_i18n_namespaceObject.__)('To show a comment, input the comment ID.'),
41458          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
41459            __next40pxDefaultSize: true,
41460            __nextHasNoMarginBottom: true,
41461            value: commentId,
41462            onChange: val => setCommentIdInput(parseInt(val))
41463          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
41464            __next40pxDefaultSize: true,
41465            variant: "primary",
41466            onClick: () => {
41467              setAttributes({
41468                commentId: commentIdInput
41469              });
41470            },
41471            children: (0,external_wp_i18n_namespaceObject.__)('Save')
41472          })]
41473        })
41474      });
41475    }
41476    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41477      ...innerBlocksProps
41478    });
41479  }
41480  
41481  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comment/save.js
41482  /**
41483   * WordPress dependencies
41484   */
41485  
41486  
41487  function post_comment_save_save() {
41488    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
41489    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
41490    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41491      ...innerBlocksProps
41492    });
41493  }
41494  
41495  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comment/index.js
41496  /**
41497   * WordPress dependencies
41498   */
41499  
41500  
41501  /**
41502   * Internal dependencies
41503   */
41504  
41505  const post_comment_metadata = {
41506    $schema: "https://schemas.wp.org/trunk/block.json",
41507    apiVersion: 3,
41508    __experimental: "fse",
41509    name: "core/post-comment",
41510    title: "Comment (deprecated)",
41511    category: "theme",
41512    allowedBlocks: ["core/avatar", "core/comment-author-name", "core/comment-content", "core/comment-date", "core/comment-edit-link", "core/comment-reply-link"],
41513    description: "This block is deprecated. Please use the Comments block instead.",
41514    textdomain: "default",
41515    attributes: {
41516      commentId: {
41517        type: "number"
41518      }
41519    },
41520    providesContext: {
41521      commentId: "commentId"
41522    },
41523    supports: {
41524      html: false,
41525      inserter: false,
41526      interactivity: {
41527        clientNavigation: true
41528      }
41529    }
41530  };
41531  
41532  
41533  const {
41534    name: post_comment_name
41535  } = post_comment_metadata;
41536  
41537  const post_comment_settings = {
41538    icon: library_comment,
41539    edit: post_comment_edit_Edit,
41540    save: post_comment_save_save
41541  };
41542  const post_comment_init = () => initBlock({
41543    name: post_comment_name,
41544    metadata: post_comment_metadata,
41545    settings: post_comment_settings
41546  });
41547  
41548  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments-count.js
41549  /**
41550   * WordPress dependencies
41551   */
41552  
41553  
41554  const postCommentsCount = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41555    xmlns: "http://www.w3.org/2000/svg",
41556    viewBox: "0 0 24 24",
41557    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41558      d: "M13 8H4v1.5h9V8zM4 4v1.5h16V4H4zm9 8H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1V13c0-.6-.4-1-1-1zm-2.2 6.6H7l1.6-2.2c.3-.4.5-.7.6-.9.1-.2.2-.4.2-.5 0-.2-.1-.3-.1-.4-.1-.1-.2-.1-.4-.1s-.4 0-.6.1c-.3.1-.5.3-.7.4l-.2.2-.2-1.2.1-.1c.3-.2.5-.3.8-.4.3-.1.6-.1.9-.1.3 0 .6.1.9.2.2.1.4.3.6.5.1.2.2.5.2.7 0 .3-.1.6-.2.9-.1.3-.4.7-.7 1.1l-.5.6h1.6v1.2z"
41559    })
41560  });
41561  /* harmony default export */ const post_comments_count = (postCommentsCount);
41562  
41563  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-count/edit.js
41564  /**
41565   * External dependencies
41566   */
41567  
41568  
41569  /**
41570   * WordPress dependencies
41571   */
41572  
41573  
41574  
41575  
41576  
41577  
41578  
41579  
41580  function PostCommentsCountEdit({
41581    attributes,
41582    context,
41583    setAttributes
41584  }) {
41585    const {
41586      textAlign
41587    } = attributes;
41588    const {
41589      postId
41590    } = context;
41591    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
41592    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41593      className: dist_clsx({
41594        [`has-text-align-$textAlign}`]: textAlign
41595      })
41596    });
41597    (0,external_wp_element_namespaceObject.useEffect)(() => {
41598      if (!postId) {
41599        return;
41600      }
41601      const currentPostId = postId;
41602      external_wp_apiFetch_default()({
41603        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
41604          post: postId
41605        }),
41606        parse: false
41607      }).then(res => {
41608        // Stale requests will have the `currentPostId` of an older closure.
41609        if (currentPostId === postId) {
41610          setCommentsCount(res.headers.get('X-WP-Total'));
41611        }
41612      });
41613    }, [postId]);
41614    const hasPostAndComments = postId && commentsCount !== undefined;
41615    const blockStyles = {
41616      ...blockProps.style,
41617      textDecoration: hasPostAndComments ? blockProps.style?.textDecoration : undefined
41618    };
41619    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41620      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
41621        group: "block",
41622        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41623          value: textAlign,
41624          onChange: nextAlign => {
41625            setAttributes({
41626              textAlign: nextAlign
41627            });
41628          }
41629        })
41630      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41631        ...blockProps,
41632        style: blockStyles,
41633        children: hasPostAndComments ? commentsCount : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
41634          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Count block: post not found.')
41635        })
41636      })]
41637    });
41638  }
41639  
41640  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-count/index.js
41641  /**
41642   * WordPress dependencies
41643   */
41644  
41645  
41646  /**
41647   * Internal dependencies
41648   */
41649  
41650  const post_comments_count_metadata = {
41651    $schema: "https://schemas.wp.org/trunk/block.json",
41652    apiVersion: 3,
41653    __experimental: "fse",
41654    name: "core/post-comments-count",
41655    title: "Comments Count",
41656    category: "theme",
41657    description: "Display a post's comments count.",
41658    textdomain: "default",
41659    attributes: {
41660      textAlign: {
41661        type: "string"
41662      }
41663    },
41664    usesContext: ["postId"],
41665    supports: {
41666      html: false,
41667      color: {
41668        gradients: true,
41669        __experimentalDefaultControls: {
41670          background: true,
41671          text: true
41672        }
41673      },
41674      spacing: {
41675        margin: true,
41676        padding: true
41677      },
41678      typography: {
41679        fontSize: true,
41680        lineHeight: true,
41681        __experimentalFontFamily: true,
41682        __experimentalFontWeight: true,
41683        __experimentalFontStyle: true,
41684        __experimentalTextTransform: true,
41685        __experimentalTextDecoration: true,
41686        __experimentalLetterSpacing: true,
41687        __experimentalDefaultControls: {
41688          fontSize: true
41689        }
41690      },
41691      interactivity: {
41692        clientNavigation: true
41693      }
41694    }
41695  };
41696  
41697  const {
41698    name: post_comments_count_name
41699  } = post_comments_count_metadata;
41700  
41701  const post_comments_count_settings = {
41702    icon: post_comments_count,
41703    edit: PostCommentsCountEdit
41704  };
41705  const post_comments_count_init = () => initBlock({
41706    name: post_comments_count_name,
41707    metadata: post_comments_count_metadata,
41708    settings: post_comments_count_settings
41709  });
41710  
41711  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments-form.js
41712  /**
41713   * WordPress dependencies
41714   */
41715  
41716  
41717  const postCommentsForm = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41718    xmlns: "http://www.w3.org/2000/svg",
41719    viewBox: "0 0 24 24",
41720    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41721      d: "M13 8H4v1.5h9V8zM4 4v1.5h16V4H4zm9 8H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1V13c0-.6-.4-1-1-1zm-.5 6.6H6.7l-1.2 1.2v-6.3h7v5.1z"
41722    })
41723  });
41724  /* harmony default export */ const post_comments_form = (postCommentsForm);
41725  
41726  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/edit.js
41727  /**
41728   * External dependencies
41729   */
41730  
41731  
41732  /**
41733   * WordPress dependencies
41734   */
41735  
41736  
41737  
41738  
41739  
41740  /**
41741   * Internal dependencies
41742   */
41743  
41744  
41745  
41746  
41747  function PostCommentsFormEdit({
41748    attributes,
41749    context,
41750    setAttributes
41751  }) {
41752    const {
41753      textAlign
41754    } = attributes;
41755    const {
41756      postId,
41757      postType
41758    } = context;
41759    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsFormEdit);
41760    const instanceIdDesc = (0,external_wp_i18n_namespaceObject.sprintf)('comments-form-edit-%d-desc', instanceId);
41761    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41762      className: dist_clsx({
41763        [`has-text-align-$textAlign}`]: textAlign
41764      }),
41765      'aria-describedby': instanceIdDesc
41766    });
41767    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41768      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
41769        group: "block",
41770        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41771          value: textAlign,
41772          onChange: nextAlign => {
41773            setAttributes({
41774              textAlign: nextAlign
41775            });
41776          }
41777        })
41778      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
41779        ...blockProps,
41780        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_comments_form_form, {
41781          postId: postId,
41782          postType: postType
41783        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
41784          id: instanceIdDesc,
41785          children: (0,external_wp_i18n_namespaceObject.__)('Comments form disabled in editor.')
41786        })]
41787      })]
41788    });
41789  }
41790  
41791  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
41792  /**
41793   * WordPress dependencies
41794   */
41795  
41796  
41797  /**
41798   * Internal dependencies
41799   */
41800  
41801  const post_comments_form_metadata = {
41802    $schema: "https://schemas.wp.org/trunk/block.json",
41803    apiVersion: 3,
41804    name: "core/post-comments-form",
41805    title: "Comments Form",
41806    category: "theme",
41807    description: "Display a post's comments form.",
41808    textdomain: "default",
41809    attributes: {
41810      textAlign: {
41811        type: "string"
41812      }
41813    },
41814    usesContext: ["postId", "postType"],
41815    supports: {
41816      html: false,
41817      color: {
41818        gradients: true,
41819        heading: true,
41820        link: true,
41821        __experimentalDefaultControls: {
41822          background: true,
41823          text: true
41824        }
41825      },
41826      spacing: {
41827        margin: true,
41828        padding: true
41829      },
41830      typography: {
41831        fontSize: true,
41832        lineHeight: true,
41833        __experimentalFontStyle: true,
41834        __experimentalFontWeight: true,
41835        __experimentalLetterSpacing: true,
41836        __experimentalTextTransform: true,
41837        __experimentalDefaultControls: {
41838          fontSize: true
41839        }
41840      },
41841      __experimentalBorder: {
41842        radius: true,
41843        color: true,
41844        width: true,
41845        style: true,
41846        __experimentalDefaultControls: {
41847          radius: true,
41848          color: true,
41849          width: true,
41850          style: true
41851        }
41852      }
41853    },
41854    editorStyle: "wp-block-post-comments-form-editor",
41855    style: ["wp-block-post-comments-form", "wp-block-buttons", "wp-block-button"]
41856  };
41857  
41858  const {
41859    name: post_comments_form_name
41860  } = post_comments_form_metadata;
41861  
41862  const post_comments_form_settings = {
41863    icon: post_comments_form,
41864    edit: PostCommentsFormEdit
41865  };
41866  const post_comments_form_init = () => initBlock({
41867    name: post_comments_form_name,
41868    metadata: post_comments_form_metadata,
41869    settings: post_comments_form_settings
41870  });
41871  
41872  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-link/edit.js
41873  /**
41874   * External dependencies
41875   */
41876  
41877  
41878  /**
41879   * WordPress dependencies
41880   */
41881  
41882  
41883  
41884  
41885  
41886  
41887  
41888  
41889  
41890  
41891  function PostCommentsLinkEdit({
41892    context,
41893    attributes,
41894    setAttributes
41895  }) {
41896    const {
41897      textAlign
41898    } = attributes;
41899    const {
41900      postType,
41901      postId
41902    } = context;
41903    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
41904    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41905      className: dist_clsx({
41906        [`has-text-align-$textAlign}`]: textAlign
41907      })
41908    });
41909    (0,external_wp_element_namespaceObject.useEffect)(() => {
41910      if (!postId) {
41911        return;
41912      }
41913      const currentPostId = postId;
41914      external_wp_apiFetch_default()({
41915        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
41916          post: postId
41917        }),
41918        parse: false
41919      }).then(res => {
41920        // Stale requests will have the `currentPostId` of an older closure.
41921        if (currentPostId === postId) {
41922          setCommentsCount(res.headers.get('X-WP-Total'));
41923        }
41924      });
41925    }, [postId]);
41926    const post = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', postType, postId), [postType, postId]);
41927    if (!post) {
41928      return null;
41929    }
41930    const {
41931      link
41932    } = post;
41933    let commentsText;
41934    if (commentsCount !== undefined) {
41935      const commentsNumber = parseInt(commentsCount);
41936      if (commentsNumber === 0) {
41937        commentsText = (0,external_wp_i18n_namespaceObject.__)('No comments');
41938      } else {
41939        commentsText = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Number of comments */
41940        (0,external_wp_i18n_namespaceObject._n)('%s comment', '%s comments', commentsNumber), commentsNumber.toLocaleString());
41941      }
41942    }
41943    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41944      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
41945        group: "block",
41946        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41947          value: textAlign,
41948          onChange: nextAlign => {
41949            setAttributes({
41950              textAlign: nextAlign
41951            });
41952          }
41953        })
41954      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41955        ...blockProps,
41956        children: link && commentsText !== undefined ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
41957          href: link + '#comments',
41958          onClick: event => event.preventDefault(),
41959          children: commentsText
41960        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
41961          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Link block: post not found.')
41962        })
41963      })]
41964    });
41965  }
41966  /* harmony default export */ const post_comments_link_edit = (PostCommentsLinkEdit);
41967  
41968  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-link/index.js
41969  /**
41970   * WordPress dependencies
41971   */
41972  
41973  
41974  /**
41975   * Internal dependencies
41976   */
41977  
41978  const post_comments_link_metadata = {
41979    $schema: "https://schemas.wp.org/trunk/block.json",
41980    apiVersion: 3,
41981    __experimental: "fse",
41982    name: "core/post-comments-link",
41983    title: "Comments Link",
41984    category: "theme",
41985    description: "Displays the link to the current post comments.",
41986    textdomain: "default",
41987    usesContext: ["postType", "postId"],
41988    attributes: {
41989      textAlign: {
41990        type: "string"
41991      }
41992    },
41993    supports: {
41994      html: false,
41995      color: {
41996        link: true,
41997        text: false,
41998        __experimentalDefaultControls: {
41999          background: true,
42000          link: true
42001        }
42002      },
42003      spacing: {
42004        margin: true,
42005        padding: true
42006      },
42007      typography: {
42008        fontSize: true,
42009        lineHeight: true,
42010        __experimentalFontFamily: true,
42011        __experimentalFontWeight: true,
42012        __experimentalFontStyle: true,
42013        __experimentalTextTransform: true,
42014        __experimentalTextDecoration: true,
42015        __experimentalLetterSpacing: true,
42016        __experimentalDefaultControls: {
42017          fontSize: true
42018        }
42019      },
42020      interactivity: {
42021        clientNavigation: true
42022      }
42023    }
42024  };
42025  
42026  const {
42027    name: post_comments_link_name
42028  } = post_comments_link_metadata;
42029  
42030  const post_comments_link_settings = {
42031    edit: post_comments_link_edit,
42032    icon: post_comments_count
42033  };
42034  const post_comments_link_init = () => initBlock({
42035    name: post_comments_link_name,
42036    metadata: post_comments_link_metadata,
42037    settings: post_comments_link_settings
42038  });
42039  
42040  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-content.js
42041  /**
42042   * WordPress dependencies
42043   */
42044  
42045  
42046  const postContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42047    xmlns: "http://www.w3.org/2000/svg",
42048    viewBox: "0 0 24 24",
42049    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42050      d: "M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z"
42051    })
42052  });
42053  /* harmony default export */ const post_content = (postContent);
42054  
42055  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/edit.js
42056  /**
42057   * WordPress dependencies
42058   */
42059  
42060  
42061  
42062  
42063  
42064  
42065  
42066  /**
42067   * Internal dependencies
42068   */
42069  
42070  
42071  
42072  function ReadOnlyContent({
42073    parentLayout,
42074    layoutClassNames,
42075    userCanEdit,
42076    postType,
42077    postId
42078  }) {
42079    const [,, content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
42080    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42081      className: layoutClassNames
42082    });
42083    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
42084      return content?.raw ? (0,external_wp_blocks_namespaceObject.parse)(content.raw) : [];
42085    }, [content?.raw]);
42086    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
42087      blocks,
42088      props: blockProps,
42089      layout: parentLayout
42090    });
42091    if (userCanEdit) {
42092      /*
42093       * Rendering the block preview using the raw content blocks allows for
42094       * block support styles to be generated and applied by the editor.
42095       *
42096       * The preview using the raw blocks can only be presented to users with
42097       * edit permissions for the post to prevent potential exposure of private
42098       * block content.
42099       */
42100      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42101        ...blockPreviewProps
42102      });
42103    }
42104    return content?.protected ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42105      ...blockProps,
42106      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
42107        children: (0,external_wp_i18n_namespaceObject.__)('This content is password protected.')
42108      })
42109    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42110      ...blockProps,
42111      dangerouslySetInnerHTML: {
42112        __html: content?.rendered
42113      }
42114    });
42115  }
42116  function EditableContent({
42117    context = {}
42118  }) {
42119    const {
42120      postType,
42121      postId
42122    } = context;
42123    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
42124      id: postId
42125    });
42126    const entityRecord = (0,external_wp_data_namespaceObject.useSelect)(select => {
42127      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, postId);
42128    }, [postType, postId]);
42129    const hasInnerBlocks = !!entityRecord?.content?.raw || blocks?.length;
42130    const initialInnerBlocks = [['core/paragraph']];
42131    const props = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)((0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42132      className: 'entry-content'
42133    }), {
42134      value: blocks,
42135      onInput,
42136      onChange,
42137      template: !hasInnerBlocks ? initialInnerBlocks : undefined
42138    });
42139    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42140      ...props
42141    });
42142  }
42143  function Content(props) {
42144    const {
42145      context: {
42146        queryId,
42147        postType,
42148        postId
42149      } = {},
42150      layoutClassNames
42151    } = props;
42152    const userCanEdit = useCanEditEntity('postType', postType, postId);
42153    if (userCanEdit === undefined) {
42154      return null;
42155    }
42156    const isDescendentOfQueryLoop = Number.isFinite(queryId);
42157    const isEditable = userCanEdit && !isDescendentOfQueryLoop;
42158    return isEditable ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditableContent, {
42159      ...props
42160    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReadOnlyContent, {
42161      parentLayout: props.parentLayout,
42162      layoutClassNames: layoutClassNames,
42163      userCanEdit: userCanEdit,
42164      postType: postType,
42165      postId: postId
42166    });
42167  }
42168  function edit_Placeholder({
42169    layoutClassNames
42170  }) {
42171    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42172      className: layoutClassNames
42173    });
42174    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42175      ...blockProps,
42176      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42177        children: (0,external_wp_i18n_namespaceObject.__)('This is the Content block, it will display all the blocks in any single post or page.')
42178      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42179        children: (0,external_wp_i18n_namespaceObject.__)('That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.')
42180      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42181        children: (0,external_wp_i18n_namespaceObject.__)('If there are any Custom Post Types registered at your site, the Content block can display the contents of those entries as well.')
42182      })]
42183    });
42184  }
42185  function RecursionError() {
42186    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
42187    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42188      ...blockProps,
42189      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
42190        children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
42191      })
42192    });
42193  }
42194  function PostContentEdit({
42195    context,
42196    __unstableLayoutClassNames: layoutClassNames,
42197    __unstableParentLayout: parentLayout
42198  }) {
42199    const {
42200      postId: contextPostId,
42201      postType: contextPostType
42202    } = context;
42203    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(contextPostId);
42204    if (contextPostId && contextPostType && hasAlreadyRendered) {
42205      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionError, {});
42206    }
42207    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
42208      uniqueId: contextPostId,
42209      children: contextPostId && contextPostType ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Content, {
42210        context: context,
42211        parentLayout: parentLayout,
42212        layoutClassNames: layoutClassNames
42213      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_Placeholder, {
42214        layoutClassNames: layoutClassNames
42215      })
42216    });
42217  }
42218  
42219  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/index.js
42220  /**
42221   * WordPress dependencies
42222   */
42223  
42224  
42225  /**
42226   * Internal dependencies
42227   */
42228  
42229  const post_content_metadata = {
42230    $schema: "https://schemas.wp.org/trunk/block.json",
42231    apiVersion: 3,
42232    name: "core/post-content",
42233    title: "Content",
42234    category: "theme",
42235    description: "Displays the contents of a post or page.",
42236    textdomain: "default",
42237    usesContext: ["postId", "postType", "queryId"],
42238    example: {
42239      viewportWidth: 350
42240    },
42241    supports: {
42242      align: ["wide", "full"],
42243      html: false,
42244      layout: true,
42245      background: {
42246        backgroundImage: true,
42247        backgroundSize: true,
42248        __experimentalDefaultControls: {
42249          backgroundImage: true
42250        }
42251      },
42252      dimensions: {
42253        minHeight: true
42254      },
42255      spacing: {
42256        blockGap: true,
42257        padding: true,
42258        __experimentalDefaultControls: {
42259          margin: false,
42260          padding: false
42261        }
42262      },
42263      color: {
42264        gradients: true,
42265        link: true,
42266        __experimentalDefaultControls: {
42267          background: false,
42268          text: false
42269        }
42270      },
42271      typography: {
42272        fontSize: true,
42273        lineHeight: true,
42274        __experimentalFontFamily: true,
42275        __experimentalFontWeight: true,
42276        __experimentalFontStyle: true,
42277        __experimentalTextTransform: true,
42278        __experimentalTextDecoration: true,
42279        __experimentalLetterSpacing: true,
42280        __experimentalDefaultControls: {
42281          fontSize: true
42282        }
42283      }
42284    },
42285    style: "wp-block-post-content",
42286    editorStyle: "wp-block-post-content-editor"
42287  };
42288  
42289  const {
42290    name: post_content_name
42291  } = post_content_metadata;
42292  
42293  const post_content_settings = {
42294    icon: post_content,
42295    edit: PostContentEdit
42296  };
42297  const post_content_init = () => initBlock({
42298    name: post_content_name,
42299    metadata: post_content_metadata,
42300    settings: post_content_settings
42301  });
42302  
42303  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/edit.js
42304  /**
42305   * External dependencies
42306   */
42307  
42308  
42309  /**
42310   * WordPress dependencies
42311   */
42312  
42313  
42314  
42315  
42316  
42317  
42318  
42319  
42320  
42321  
42322  
42323  
42324  function PostDateEdit({
42325    attributes: {
42326      textAlign,
42327      format,
42328      isLink,
42329      displayType
42330    },
42331    context: {
42332      postId,
42333      postType: postTypeSlug,
42334      queryId
42335    },
42336    setAttributes
42337  }) {
42338    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42339      className: dist_clsx({
42340        [`has-text-align-$textAlign}`]: textAlign,
42341        [`wp-block-post-date__modified-date`]: displayType === 'modified'
42342      })
42343    });
42344  
42345    // Use internal state instead of a ref to make sure that the component
42346    // re-renders when the popover's anchor updates.
42347    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
42348    // Memoize popoverProps to avoid returning a new object every time.
42349    const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
42350      anchor: popoverAnchor
42351    }), [popoverAnchor]);
42352    const isDescendentOfQueryLoop = Number.isFinite(queryId);
42353    const dateSettings = (0,external_wp_date_namespaceObject.getSettings)();
42354    const [siteFormat = dateSettings.formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
42355    const [siteTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format');
42356    const [date, setDate] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, displayType, postId);
42357    const postType = (0,external_wp_data_namespaceObject.useSelect)(select => postTypeSlug ? select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug) : null, [postTypeSlug]);
42358    const dateLabel = displayType === 'date' ? (0,external_wp_i18n_namespaceObject.__)('Post Date') : (0,external_wp_i18n_namespaceObject.__)('Post Modified Date');
42359    let postDate = date ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
42360      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
42361      ref: setPopoverAnchor,
42362      children: format === 'human-diff' ? (0,external_wp_date_namespaceObject.humanTimeDiff)(date) : (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)
42363    }) : dateLabel;
42364    if (isLink && date) {
42365      postDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
42366        href: "#post-date-pseudo-link",
42367        onClick: event => event.preventDefault(),
42368        children: postDate
42369      });
42370    }
42371    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42372      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
42373        group: "block",
42374        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42375          value: textAlign,
42376          onChange: nextAlign => {
42377            setAttributes({
42378              textAlign: nextAlign
42379            });
42380          }
42381        }), date && displayType === 'date' && !isDescendentOfQueryLoop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
42382          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
42383            popoverProps: popoverProps,
42384            renderContent: ({
42385              onClose
42386            }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalPublishDateTimePicker, {
42387              currentDate: date,
42388              onChange: setDate,
42389              is12Hour: is12HourFormat(siteTimeFormat),
42390              onClose: onClose,
42391              dateOrder: /* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
42392              (0,external_wp_i18n_namespaceObject._x)('dmy', 'date order')
42393            }),
42394            renderToggle: ({
42395              isOpen,
42396              onToggle
42397            }) => {
42398              const openOnArrowDown = event => {
42399                if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
42400                  event.preventDefault();
42401                  onToggle();
42402                }
42403              };
42404              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
42405                "aria-expanded": isOpen,
42406                icon: library_edit,
42407                title: (0,external_wp_i18n_namespaceObject.__)('Change Date'),
42408                onClick: onToggle,
42409                onKeyDown: openOnArrowDown
42410              });
42411            }
42412          })
42413        })]
42414      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
42415        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
42416          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
42417          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
42418            format: format,
42419            defaultFormat: siteFormat,
42420            onChange: nextFormat => setAttributes({
42421              format: nextFormat
42422            })
42423          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42424            __nextHasNoMarginBottom: true,
42425            label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
42426            // translators: %s: Name of the post type e.g: "post".
42427            (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
42428            onChange: () => setAttributes({
42429              isLink: !isLink
42430            }),
42431            checked: isLink
42432          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42433            __nextHasNoMarginBottom: true,
42434            label: (0,external_wp_i18n_namespaceObject.__)('Display last modified date'),
42435            onChange: value => setAttributes({
42436              displayType: value ? 'modified' : 'date'
42437            }),
42438            checked: displayType === 'modified',
42439            help: (0,external_wp_i18n_namespaceObject.__)('Only shows if the post has been modified')
42440          })]
42441        })
42442      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42443        ...blockProps,
42444        children: postDate
42445      })]
42446    });
42447  }
42448  function is12HourFormat(format) {
42449    // To know if the time format is a 12 hour time, look for any of the 12 hour
42450    // format characters: 'a', 'A', 'g', and 'h'. The character must be
42451    // unescaped, i.e. not preceded by a '\'. Coincidentally, 'aAgh' is how I
42452    // feel when working with regular expressions.
42453    // https://www.php.net/manual/en/datetime.format.php
42454    return /(?:^|[^\\])[aAgh]/.test(format);
42455  }
42456  
42457  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/deprecated.js
42458  /**
42459   * Internal dependencies
42460   */
42461  
42462  const post_date_deprecated_v1 = {
42463    attributes: {
42464      textAlign: {
42465        type: 'string'
42466      },
42467      format: {
42468        type: 'string'
42469      },
42470      isLink: {
42471        type: 'boolean',
42472        default: false
42473      }
42474    },
42475    supports: {
42476      html: false,
42477      color: {
42478        gradients: true,
42479        link: true
42480      },
42481      typography: {
42482        fontSize: true,
42483        lineHeight: true,
42484        __experimentalFontFamily: true,
42485        __experimentalFontWeight: true,
42486        __experimentalFontStyle: true,
42487        __experimentalTextTransform: true,
42488        __experimentalLetterSpacing: true
42489      }
42490    },
42491    save() {
42492      return null;
42493    },
42494    migrate: migrate_font_family,
42495    isEligible({
42496      style
42497    }) {
42498      return style?.typography?.fontFamily;
42499    }
42500  };
42501  
42502  /**
42503   * New deprecations need to be placed first
42504   * for them to have higher priority.
42505   *
42506   * Old deprecations may need to be updated as well.
42507   *
42508   * See block-deprecation.md
42509   */
42510  /* harmony default export */ const post_date_deprecated = ([post_date_deprecated_v1]);
42511  
42512  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/variations.js
42513  /**
42514   * WordPress dependencies
42515   */
42516  
42517  
42518  const post_date_variations_variations = [{
42519    name: 'post-date-modified',
42520    title: (0,external_wp_i18n_namespaceObject.__)('Modified Date'),
42521    description: (0,external_wp_i18n_namespaceObject.__)("Display a post's last updated date."),
42522    attributes: {
42523      displayType: 'modified'
42524    },
42525    scope: ['block', 'inserter'],
42526    isActive: blockAttributes => blockAttributes.displayType === 'modified',
42527    icon: post_date
42528  }];
42529  /* harmony default export */ const post_date_variations = (post_date_variations_variations);
42530  
42531  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/index.js
42532  /**
42533   * WordPress dependencies
42534   */
42535  
42536  
42537  /**
42538   * Internal dependencies
42539   */
42540  
42541  const post_date_metadata = {
42542    $schema: "https://schemas.wp.org/trunk/block.json",
42543    apiVersion: 3,
42544    name: "core/post-date",
42545    title: "Date",
42546    category: "theme",
42547    description: "Display the publish date for an entry such as a post or page.",
42548    textdomain: "default",
42549    attributes: {
42550      textAlign: {
42551        type: "string"
42552      },
42553      format: {
42554        type: "string"
42555      },
42556      isLink: {
42557        type: "boolean",
42558        "default": false
42559      },
42560      displayType: {
42561        type: "string",
42562        "default": "date"
42563      }
42564    },
42565    usesContext: ["postId", "postType", "queryId"],
42566    example: {
42567      viewportWidth: 350
42568    },
42569    supports: {
42570      html: false,
42571      color: {
42572        gradients: true,
42573        link: true,
42574        __experimentalDefaultControls: {
42575          background: true,
42576          text: true,
42577          link: true
42578        }
42579      },
42580      spacing: {
42581        margin: true,
42582        padding: true
42583      },
42584      typography: {
42585        fontSize: true,
42586        lineHeight: true,
42587        __experimentalFontFamily: true,
42588        __experimentalFontWeight: true,
42589        __experimentalFontStyle: true,
42590        __experimentalTextTransform: true,
42591        __experimentalTextDecoration: true,
42592        __experimentalLetterSpacing: true,
42593        __experimentalDefaultControls: {
42594          fontSize: true
42595        }
42596      },
42597      interactivity: {
42598        clientNavigation: true
42599      },
42600      __experimentalBorder: {
42601        radius: true,
42602        color: true,
42603        width: true,
42604        style: true,
42605        __experimentalDefaultControls: {
42606          radius: true,
42607          color: true,
42608          width: true,
42609          style: true
42610        }
42611      }
42612    }
42613  };
42614  
42615  
42616  
42617  const {
42618    name: post_date_name
42619  } = post_date_metadata;
42620  
42621  const post_date_settings = {
42622    icon: post_date,
42623    edit: PostDateEdit,
42624    deprecated: post_date_deprecated,
42625    variations: post_date_variations
42626  };
42627  const post_date_init = () => initBlock({
42628    name: post_date_name,
42629    metadata: post_date_metadata,
42630    settings: post_date_settings
42631  });
42632  
42633  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-excerpt.js
42634  /**
42635   * WordPress dependencies
42636   */
42637  
42638  
42639  const postExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42640    xmlns: "http://www.w3.org/2000/svg",
42641    viewBox: "0 0 24 24",
42642    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42643      d: "M8.001 3.984V9.47c0 1.518-.98 2.5-2.499 2.5h-.5v-1.5h.5c.69 0 1-.31 1-1V6.984H4v-3h4.001ZM4 20h9v-1.5H4V20Zm16-4H4v-1.5h16V16ZM13.001 3.984V9.47c0 1.518-.98 2.5-2.499 2.5h-.5v-1.5h.5c.69 0 1-.31 1-1V6.984H9v-3h4.001Z"
42644    })
42645  });
42646  /* harmony default export */ const post_excerpt = (postExcerpt);
42647  
42648  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/edit.js
42649  /**
42650   * External dependencies
42651   */
42652  
42653  
42654  /**
42655   * WordPress dependencies
42656   */
42657  
42658  
42659  
42660  
42661  
42662  
42663  
42664  /**
42665   * Internal dependencies
42666   */
42667  
42668  
42669  
42670  
42671  const ELLIPSIS = '…';
42672  function PostExcerptEditor({
42673    attributes: {
42674      textAlign,
42675      moreText,
42676      showMoreOnNewLine,
42677      excerptLength
42678    },
42679    setAttributes,
42680    isSelected,
42681    context: {
42682      postId,
42683      postType,
42684      queryId
42685    }
42686  }) {
42687    const isDescendentOfQueryLoop = Number.isFinite(queryId);
42688    const userCanEdit = useCanEditEntity('postType', postType, postId);
42689    const [rawExcerpt, setExcerpt, {
42690      rendered: renderedExcerpt,
42691      protected: isProtected
42692    } = {}] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'excerpt', postId);
42693  
42694    /**
42695     * Check if the post type supports excerpts.
42696     * Add an exception and return early for the "page" post type,
42697     * which is registered without support for the excerpt UI,
42698     * but supports saving the excerpt to the database.
42699     * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65
42700     * Without this exception, users that have excerpts saved to the database will
42701     * not be able to edit the excerpts.
42702     */
42703    const postTypeSupportsExcerpts = (0,external_wp_data_namespaceObject.useSelect)(select => {
42704      if (postType === 'page') {
42705        return true;
42706      }
42707      return !!select(external_wp_coreData_namespaceObject.store).getPostType(postType)?.supports?.excerpt;
42708    }, [postType]);
42709  
42710    /**
42711     * The excerpt is editable if:
42712     * - The user can edit the post
42713     * - It is not a descendent of a Query Loop block
42714     * - The post type supports excerpts
42715     */
42716    const isEditable = userCanEdit && !isDescendentOfQueryLoop && postTypeSupportsExcerpts;
42717    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42718      className: dist_clsx({
42719        [`has-text-align-$textAlign}`]: textAlign
42720      })
42721    });
42722  
42723    /**
42724     * translators: If your word count is based on single characters (e.g. East Asian characters),
42725     * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
42726     * Do not translate into your own language.
42727     */
42728    const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
42729  
42730    /**
42731     * When excerpt is editable, strip the html tags from
42732     * rendered excerpt. This will be used if the entity's
42733     * excerpt has been produced from the content.
42734     */
42735    const strippedRenderedExcerpt = (0,external_wp_element_namespaceObject.useMemo)(() => {
42736      if (!renderedExcerpt) {
42737        return '';
42738      }
42739      const document = new window.DOMParser().parseFromString(renderedExcerpt, 'text/html');
42740      return document.body.textContent || document.body.innerText || '';
42741    }, [renderedExcerpt]);
42742    if (!postType || !postId) {
42743      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42744        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42745          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
42746            value: textAlign,
42747            onChange: newAlign => setAttributes({
42748              textAlign: newAlign
42749            })
42750          })
42751        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42752          ...blockProps,
42753          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42754            children: (0,external_wp_i18n_namespaceObject.__)('This block will display the excerpt.')
42755          })
42756        })]
42757      });
42758    }
42759    if (isProtected && !userCanEdit) {
42760      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42761        ...blockProps,
42762        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
42763          children: (0,external_wp_i18n_namespaceObject.__)('The content is currently protected and does not have the available excerpt.')
42764        })
42765      });
42766    }
42767    const readMoreLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
42768      identifier: "moreText",
42769      className: "wp-block-post-excerpt__more-link",
42770      tagName: "a",
42771      "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
42772      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add "read more" link text'),
42773      value: moreText,
42774      onChange: newMoreText => setAttributes({
42775        moreText: newMoreText
42776      }),
42777      withoutInteractiveFormatting: true
42778    });
42779    const excerptClassName = dist_clsx('wp-block-post-excerpt__excerpt', {
42780      'is-inline': !showMoreOnNewLine
42781    });
42782  
42783    /**
42784     * The excerpt length setting needs to be applied to both
42785     * the raw and the rendered excerpt depending on which is being used.
42786     */
42787    const rawOrRenderedExcerpt = (rawExcerpt || strippedRenderedExcerpt).trim();
42788    let trimmedExcerpt = '';
42789    if (wordCountType === 'words') {
42790      trimmedExcerpt = rawOrRenderedExcerpt.split(' ', excerptLength).join(' ');
42791    } else if (wordCountType === 'characters_excluding_spaces') {
42792      /*
42793       * 1. Split the excerpt at the character limit,
42794       * then join the substrings back into one string.
42795       * 2. Count the number of spaces in the excerpt
42796       * by comparing the lengths of the string with and without spaces.
42797       * 3. Add the number to the length of the visible excerpt,
42798       * so that the spaces are excluded from the word count.
42799       */
42800      const excerptWithSpaces = rawOrRenderedExcerpt.split('', excerptLength).join('');
42801      const numberOfSpaces = excerptWithSpaces.length - excerptWithSpaces.replaceAll(' ', '').length;
42802      trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength + numberOfSpaces).join('');
42803    } else if (wordCountType === 'characters_including_spaces') {
42804      trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength).join('');
42805    }
42806    const isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;
42807    const excerptContent = isEditable ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
42808      className: excerptClassName,
42809      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Excerpt text'),
42810      value: isSelected ? rawOrRenderedExcerpt : (!isTrimmed ? rawOrRenderedExcerpt : trimmedExcerpt + ELLIPSIS) || (0,external_wp_i18n_namespaceObject.__)('No excerpt found'),
42811      onChange: setExcerpt,
42812      tagName: "p"
42813    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42814      className: excerptClassName,
42815      children: !isTrimmed ? rawOrRenderedExcerpt || (0,external_wp_i18n_namespaceObject.__)('No excerpt found') : trimmedExcerpt + ELLIPSIS
42816    });
42817    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42818      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42819        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
42820          value: textAlign,
42821          onChange: newAlign => setAttributes({
42822            textAlign: newAlign
42823          })
42824        })
42825      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
42826        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
42827          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
42828          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42829            __nextHasNoMarginBottom: true,
42830            label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
42831            checked: showMoreOnNewLine,
42832            onChange: newShowMoreOnNewLine => setAttributes({
42833              showMoreOnNewLine: newShowMoreOnNewLine
42834            })
42835          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
42836            __next40pxDefaultSize: true,
42837            __nextHasNoMarginBottom: true,
42838            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
42839            value: excerptLength,
42840            onChange: value => {
42841              setAttributes({
42842                excerptLength: value
42843              });
42844            },
42845            min: "10",
42846            max: "100"
42847          })]
42848        })
42849      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42850        ...blockProps,
42851        children: [excerptContent, !showMoreOnNewLine && ' ', showMoreOnNewLine ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42852          className: "wp-block-post-excerpt__more-text",
42853          children: readMoreLink
42854        }) : readMoreLink]
42855      })]
42856    });
42857  }
42858  
42859  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/transforms.js
42860  /**
42861   * WordPress dependencies
42862   */
42863  
42864  const post_excerpt_transforms_transforms = {
42865    from: [{
42866      type: 'block',
42867      blocks: ['core/post-content'],
42868      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-excerpt')
42869    }],
42870    to: [{
42871      type: 'block',
42872      blocks: ['core/post-content'],
42873      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content')
42874    }]
42875  };
42876  /* harmony default export */ const post_excerpt_transforms = (post_excerpt_transforms_transforms);
42877  
42878  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
42879  /**
42880   * WordPress dependencies
42881   */
42882  
42883  
42884  /**
42885   * Internal dependencies
42886   */
42887  
42888  const post_excerpt_metadata = {
42889    $schema: "https://schemas.wp.org/trunk/block.json",
42890    apiVersion: 3,
42891    name: "core/post-excerpt",
42892    title: "Excerpt",
42893    category: "theme",
42894    description: "Display the excerpt.",
42895    textdomain: "default",
42896    attributes: {
42897      textAlign: {
42898        type: "string"
42899      },
42900      moreText: {
42901        type: "string"
42902      },
42903      showMoreOnNewLine: {
42904        type: "boolean",
42905        "default": true
42906      },
42907      excerptLength: {
42908        type: "number",
42909        "default": 55
42910      }
42911    },
42912    usesContext: ["postId", "postType", "queryId"],
42913    example: {
42914      viewportWidth: 350
42915    },
42916    supports: {
42917      html: false,
42918      color: {
42919        gradients: true,
42920        link: true,
42921        __experimentalDefaultControls: {
42922          background: true,
42923          text: true,
42924          link: true
42925        }
42926      },
42927      spacing: {
42928        margin: true,
42929        padding: true
42930      },
42931      typography: {
42932        fontSize: true,
42933        lineHeight: true,
42934        __experimentalFontFamily: true,
42935        __experimentalFontWeight: true,
42936        __experimentalFontStyle: true,
42937        __experimentalTextTransform: true,
42938        __experimentalTextDecoration: true,
42939        __experimentalLetterSpacing: true,
42940        __experimentalDefaultControls: {
42941          fontSize: true
42942        }
42943      },
42944      interactivity: {
42945        clientNavigation: true
42946      },
42947      __experimentalBorder: {
42948        radius: true,
42949        color: true,
42950        width: true,
42951        style: true,
42952        __experimentalDefaultControls: {
42953          radius: true,
42954          color: true,
42955          width: true,
42956          style: true
42957        }
42958      }
42959    },
42960    editorStyle: "wp-block-post-excerpt-editor",
42961    style: "wp-block-post-excerpt"
42962  };
42963  
42964  
42965  const {
42966    name: post_excerpt_name
42967  } = post_excerpt_metadata;
42968  
42969  const post_excerpt_settings = {
42970    icon: post_excerpt,
42971    transforms: post_excerpt_transforms,
42972    edit: PostExcerptEditor
42973  };
42974  const post_excerpt_init = () => initBlock({
42975    name: post_excerpt_name,
42976    metadata: post_excerpt_metadata,
42977    settings: post_excerpt_settings
42978  });
42979  
42980  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js
42981  /**
42982   * WordPress dependencies
42983   */
42984  
42985  
42986  const postFeaturedImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42987    xmlns: "http://www.w3.org/2000/svg",
42988    viewBox: "0 0 24 24",
42989    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42990      d: "M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z"
42991    })
42992  });
42993  /* harmony default export */ const post_featured_image = (postFeaturedImage);
42994  
42995  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/dimension-controls.js
42996  /**
42997   * WordPress dependencies
42998   */
42999  
43000  
43001  
43002  
43003  
43004  
43005  
43006  const SCALE_OPTIONS = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43007    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
43008      value: "cover",
43009      label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for Image dimension control')
43010    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
43011      value: "contain",
43012      label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for Image dimension control')
43013    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
43014      value: "fill",
43015      label: (0,external_wp_i18n_namespaceObject._x)('Fill', 'Scale option for Image dimension control')
43016    })]
43017  });
43018  const DEFAULT_SCALE = 'cover';
43019  const DEFAULT_SIZE = 'full';
43020  const scaleHelp = {
43021    cover: (0,external_wp_i18n_namespaceObject.__)('Image is scaled and cropped to fill the entire space without being distorted.'),
43022    contain: (0,external_wp_i18n_namespaceObject.__)('Image is scaled to fill the space without clipping nor distorting.'),
43023    fill: (0,external_wp_i18n_namespaceObject.__)('Image will be stretched and distorted to completely fill the space.')
43024  };
43025  const DimensionControls = ({
43026    clientId,
43027    attributes: {
43028      aspectRatio,
43029      width,
43030      height,
43031      scale,
43032      sizeSlug
43033    },
43034    setAttributes,
43035    media
43036  }) => {
43037    const [availableUnits, defaultRatios, themeRatios, showDefaultRatios] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units', 'dimensions.aspectRatios.default', 'dimensions.aspectRatios.theme', 'dimensions.defaultAspectRatios');
43038    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
43039      availableUnits: availableUnits || ['px', '%', 'vw', 'em', 'rem']
43040    });
43041    const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().imageSizes, []);
43042    const imageSizeOptions = imageSizes.filter(({
43043      slug
43044    }) => {
43045      return media?.media_details?.sizes?.[slug]?.source_url;
43046    }).map(({
43047      name,
43048      slug
43049    }) => ({
43050      value: slug,
43051      label: name
43052    }));
43053    const onDimensionChange = (dimension, nextValue) => {
43054      const parsedValue = parseFloat(nextValue);
43055      /**
43056       * If we have no value set and we change the unit,
43057       * we don't want to set the attribute, as it would
43058       * end up having the unit as value without any number.
43059       */
43060      if (isNaN(parsedValue) && nextValue) {
43061        return;
43062      }
43063      setAttributes({
43064        [dimension]: parsedValue < 0 ? '0' : nextValue
43065      });
43066    };
43067    const scaleLabel = (0,external_wp_i18n_namespaceObject._x)('Scale', 'Image scaling options');
43068    const showScaleControl = height || aspectRatio && aspectRatio !== 'auto';
43069    const themeOptions = themeRatios?.map(({
43070      name,
43071      ratio
43072    }) => ({
43073      label: name,
43074      value: ratio
43075    }));
43076    const defaultOptions = defaultRatios?.map(({
43077      name,
43078      ratio
43079    }) => ({
43080      label: name,
43081      value: ratio
43082    }));
43083    const aspectRatioOptions = [{
43084      label: (0,external_wp_i18n_namespaceObject._x)('Original', 'Aspect ratio option for dimensions control'),
43085      value: 'auto'
43086    }, ...(showDefaultRatios ? defaultOptions : []), ...(themeOptions ? themeOptions : [])];
43087    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43088      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43089        hasValue: () => !!aspectRatio,
43090        label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'),
43091        onDeselect: () => setAttributes({
43092          aspectRatio: undefined
43093        }),
43094        resetAllFilter: () => ({
43095          aspectRatio: undefined
43096        }),
43097        isShownByDefault: true,
43098        panelId: clientId,
43099        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
43100          __next40pxDefaultSize: true,
43101          __nextHasNoMarginBottom: true,
43102          label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'),
43103          value: aspectRatio,
43104          options: aspectRatioOptions,
43105          onChange: nextAspectRatio => setAttributes({
43106            aspectRatio: nextAspectRatio
43107          })
43108        })
43109      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43110        className: "single-column",
43111        hasValue: () => !!height,
43112        label: (0,external_wp_i18n_namespaceObject.__)('Height'),
43113        onDeselect: () => setAttributes({
43114          height: undefined
43115        }),
43116        resetAllFilter: () => ({
43117          height: undefined
43118        }),
43119        isShownByDefault: true,
43120        panelId: clientId,
43121        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
43122          __next40pxDefaultSize: true,
43123          label: (0,external_wp_i18n_namespaceObject.__)('Height'),
43124          labelPosition: "top",
43125          value: height || '',
43126          min: 0,
43127          onChange: nextHeight => onDimensionChange('height', nextHeight),
43128          units: units
43129        })
43130      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43131        className: "single-column",
43132        hasValue: () => !!width,
43133        label: (0,external_wp_i18n_namespaceObject.__)('Width'),
43134        onDeselect: () => setAttributes({
43135          width: undefined
43136        }),
43137        resetAllFilter: () => ({
43138          width: undefined
43139        }),
43140        isShownByDefault: true,
43141        panelId: clientId,
43142        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
43143          __next40pxDefaultSize: true,
43144          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
43145          labelPosition: "top",
43146          value: width || '',
43147          min: 0,
43148          onChange: nextWidth => onDimensionChange('width', nextWidth),
43149          units: units
43150        })
43151      }), showScaleControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43152        hasValue: () => !!scale && scale !== DEFAULT_SCALE,
43153        label: scaleLabel,
43154        onDeselect: () => setAttributes({
43155          scale: DEFAULT_SCALE
43156        }),
43157        resetAllFilter: () => ({
43158          scale: DEFAULT_SCALE
43159        }),
43160        isShownByDefault: true,
43161        panelId: clientId,
43162        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
43163          __next40pxDefaultSize: true,
43164          __nextHasNoMarginBottom: true,
43165          label: scaleLabel,
43166          value: scale,
43167          help: scaleHelp[scale],
43168          onChange: value => setAttributes({
43169            scale: value
43170          }),
43171          isBlock: true,
43172          children: SCALE_OPTIONS
43173        })
43174      }), !!imageSizeOptions.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43175        hasValue: () => !!sizeSlug,
43176        label: (0,external_wp_i18n_namespaceObject.__)('Resolution'),
43177        onDeselect: () => setAttributes({
43178          sizeSlug: undefined
43179        }),
43180        resetAllFilter: () => ({
43181          sizeSlug: undefined
43182        }),
43183        isShownByDefault: false,
43184        panelId: clientId,
43185        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
43186          __next40pxDefaultSize: true,
43187          __nextHasNoMarginBottom: true,
43188          label: (0,external_wp_i18n_namespaceObject.__)('Resolution'),
43189          value: sizeSlug || DEFAULT_SIZE,
43190          options: imageSizeOptions,
43191          onChange: nextSizeSlug => setAttributes({
43192            sizeSlug: nextSizeSlug
43193          }),
43194          help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.')
43195        })
43196      })]
43197    });
43198  };
43199  /* harmony default export */ const dimension_controls = (DimensionControls);
43200  
43201  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/overlay-controls.js
43202  /**
43203   * WordPress dependencies
43204   */
43205  
43206  
43207  
43208  
43209  
43210  
43211  
43212  const Overlay = ({
43213    clientId,
43214    attributes,
43215    setAttributes,
43216    overlayColor,
43217    setOverlayColor
43218  }) => {
43219    const {
43220      dimRatio
43221    } = attributes;
43222    const {
43223      gradientValue,
43224      setGradient
43225    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
43226    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
43227    if (!colorGradientSettings.hasColorsOrGradients) {
43228      return null;
43229    }
43230    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43231      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
43232        __experimentalIsRenderedInSidebar: true,
43233        settings: [{
43234          colorValue: overlayColor.color,
43235          gradientValue,
43236          label: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
43237          onColorChange: setOverlayColor,
43238          onGradientChange: setGradient,
43239          isShownByDefault: true,
43240          resetAllFilter: () => ({
43241            overlayColor: undefined,
43242            customOverlayColor: undefined,
43243            gradient: undefined,
43244            customGradient: undefined
43245          })
43246        }],
43247        panelId: clientId,
43248        ...colorGradientSettings
43249      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43250        hasValue: () => dimRatio !== undefined,
43251        label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
43252        onDeselect: () => setAttributes({
43253          dimRatio: 0
43254        }),
43255        resetAllFilter: () => ({
43256          dimRatio: 0
43257        }),
43258        isShownByDefault: true,
43259        panelId: clientId,
43260        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
43261          __nextHasNoMarginBottom: true,
43262          label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
43263          value: dimRatio,
43264          onChange: newDimRatio => setAttributes({
43265            dimRatio: newDimRatio
43266          }),
43267          min: 0,
43268          max: 100,
43269          step: 10,
43270          required: true,
43271          __next40pxDefaultSize: true
43272        })
43273      })]
43274    });
43275  };
43276  /* harmony default export */ const overlay_controls = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
43277    overlayColor: 'background-color'
43278  })])(Overlay));
43279  
43280  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/utils.js
43281  /**
43282   * Generates the opacity/dim class based on given number.
43283   *
43284   * @param {number} ratio Dim/opacity number.
43285   *
43286   * @return {string} Generated class.
43287   */
43288  function utils_dimRatioToClass(ratio) {
43289    return ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
43290  }
43291  
43292  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/overlay.js
43293  /**
43294   * External dependencies
43295   */
43296  
43297  
43298  /**
43299   * WordPress dependencies
43300   */
43301  
43302  
43303  
43304  /**
43305   * Internal dependencies
43306   */
43307  
43308  
43309  const overlay_Overlay = ({
43310    attributes,
43311    overlayColor
43312  }) => {
43313    const {
43314      dimRatio
43315    } = attributes;
43316    const {
43317      gradientClass,
43318      gradientValue
43319    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
43320    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
43321    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
43322    const overlayStyles = {
43323      backgroundColor: overlayColor.color,
43324      backgroundImage: gradientValue,
43325      ...borderProps.style
43326    };
43327    if (!colorGradientSettings.hasColorsOrGradients || !dimRatio) {
43328      return null;
43329    }
43330    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
43331      "aria-hidden": "true",
43332      className: dist_clsx('wp-block-post-featured-image__overlay', utils_dimRatioToClass(dimRatio), {
43333        [overlayColor.class]: overlayColor.class,
43334        'has-background-dim': dimRatio !== undefined,
43335        'has-background-gradient': gradientValue,
43336        [gradientClass]: gradientClass
43337      }, borderProps.className),
43338      style: overlayStyles
43339    });
43340  };
43341  /* harmony default export */ const overlay = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
43342    overlayColor: 'background-color'
43343  })])(overlay_Overlay));
43344  
43345  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/edit.js
43346  /**
43347   * External dependencies
43348   */
43349  
43350  
43351  /**
43352   * WordPress dependencies
43353   */
43354  
43355  
43356  
43357  
43358  
43359  
43360  
43361  
43362  
43363  
43364  /**
43365   * Internal dependencies
43366   */
43367  
43368  
43369  
43370  
43371  
43372  
43373  const post_featured_image_edit_ALLOWED_MEDIA_TYPES = ['image'];
43374  function getMediaSourceUrlBySizeSlug(media, slug) {
43375    return media?.media_details?.sizes?.[slug]?.source_url || media?.source_url;
43376  }
43377  const disabledClickProps = {
43378    onClick: event => event.preventDefault(),
43379    'aria-disabled': true
43380  };
43381  function PostFeaturedImageEdit({
43382    clientId,
43383    attributes,
43384    setAttributes,
43385    context: {
43386      postId,
43387      postType: postTypeSlug,
43388      queryId
43389    }
43390  }) {
43391    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43392    const {
43393      isLink,
43394      aspectRatio,
43395      height,
43396      width,
43397      scale,
43398      sizeSlug,
43399      rel,
43400      linkTarget,
43401      useFirstImageFromPost
43402    } = attributes;
43403    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
43404    const [storedFeaturedImage, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'featured_media', postId);
43405  
43406    // Fallback to post content if no featured image is set.
43407    // This is needed for the "Use first image from post" option.
43408    const [postContent] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'content', postId);
43409    const featuredImage = (0,external_wp_element_namespaceObject.useMemo)(() => {
43410      if (storedFeaturedImage) {
43411        return storedFeaturedImage;
43412      }
43413      if (!useFirstImageFromPost) {
43414        return;
43415      }
43416      const imageOpener = /<!--\s+wp:(?:core\/)?image\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\s+\/?-->).)*)?}\s+)?-->/.exec(postContent);
43417      const imageId = imageOpener?.groups?.attrs && JSON.parse(imageOpener.groups.attrs)?.id;
43418      return imageId;
43419    }, [storedFeaturedImage, useFirstImageFromPost, postContent]);
43420    const {
43421      media,
43422      postType,
43423      postPermalink
43424    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
43425      const {
43426        getMedia,
43427        getPostType,
43428        getEditedEntityRecord
43429      } = select(external_wp_coreData_namespaceObject.store);
43430      return {
43431        media: featuredImage && getMedia(featuredImage, {
43432          context: 'view'
43433        }),
43434        postType: postTypeSlug && getPostType(postTypeSlug),
43435        postPermalink: getEditedEntityRecord('postType', postTypeSlug, postId)?.link
43436      };
43437    }, [featuredImage, postTypeSlug, postId]);
43438    const mediaUrl = getMediaSourceUrlBySizeSlug(media, sizeSlug);
43439    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43440      style: {
43441        width,
43442        height,
43443        aspectRatio
43444      },
43445      className: dist_clsx({
43446        'is-transient': temporaryURL
43447      })
43448    });
43449    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
43450    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
43451    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
43452    const placeholder = content => {
43453      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
43454        className: dist_clsx('block-editor-media-placeholder', borderProps.className),
43455        withIllustration: true,
43456        style: {
43457          height: !!aspectRatio && '100%',
43458          width: !!aspectRatio && '100%',
43459          ...borderProps.style,
43460          ...shadowProps.style
43461        },
43462        children: content
43463      });
43464    };
43465    const onSelectImage = value => {
43466      if (value?.id) {
43467        setFeaturedImage(value.id);
43468      }
43469      if (value?.url && (0,external_wp_blob_namespaceObject.isBlobURL)(value.url)) {
43470        setTemporaryURL(value.url);
43471      }
43472    };
43473  
43474    // Reset temporary url when media is available.
43475    (0,external_wp_element_namespaceObject.useEffect)(() => {
43476      if (mediaUrl && temporaryURL) {
43477        setTemporaryURL();
43478      }
43479    }, [mediaUrl, temporaryURL]);
43480    const {
43481      createErrorNotice
43482    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
43483    const onUploadError = message => {
43484      createErrorNotice(message, {
43485        type: 'snackbar'
43486      });
43487      setTemporaryURL();
43488    };
43489    const controls = blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43490      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43491        group: "color",
43492        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay_controls, {
43493          attributes: attributes,
43494          setAttributes: setAttributes,
43495          clientId: clientId
43496        })
43497      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43498        group: "dimensions",
43499        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(dimension_controls, {
43500          clientId: clientId,
43501          attributes: attributes,
43502          setAttributes: setAttributes,
43503          media: media
43504        })
43505      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43506        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
43507          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
43508          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43509            __nextHasNoMarginBottom: true,
43510            label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
43511            // translators: %s: Name of the post type e.g: "post".
43512            (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
43513            onChange: () => setAttributes({
43514              isLink: !isLink
43515            }),
43516            checked: isLink
43517          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43518            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43519              __nextHasNoMarginBottom: true,
43520              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
43521              onChange: value => setAttributes({
43522                linkTarget: value ? '_blank' : '_self'
43523              }),
43524              checked: linkTarget === '_blank'
43525            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
43526              __next40pxDefaultSize: true,
43527              __nextHasNoMarginBottom: true,
43528              label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
43529              value: rel,
43530              onChange: newRel => setAttributes({
43531                rel: newRel
43532              })
43533            })]
43534          })]
43535        })
43536      })]
43537    });
43538    let image;
43539  
43540    /**
43541     * A Post Featured Image block should not have image replacement
43542     * or upload options in the following cases:
43543     * - Is placed in a Query Loop. This is a conscious decision to
43544     * prevent content editing of different posts in Query Loop, and
43545     * this could change in the future.
43546     * - Is in a context where it does not have a postId (for example
43547     * in a template or template part).
43548     */
43549    if (!featuredImage && (isDescendentOfQueryLoop || !postId)) {
43550      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43551        children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
43552          ...blockProps,
43553          children: [!!isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43554            href: postPermalink,
43555            target: linkTarget,
43556            ...disabledClickProps,
43557            children: placeholder()
43558          }) : placeholder(), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay, {
43559            attributes: attributes,
43560            setAttributes: setAttributes,
43561            clientId: clientId
43562          })]
43563        })]
43564      });
43565    }
43566    const label = (0,external_wp_i18n_namespaceObject.__)('Add a featured image');
43567    const imageStyles = {
43568      ...borderProps.style,
43569      ...shadowProps.style,
43570      height: aspectRatio ? '100%' : height,
43571      width: !!aspectRatio && '100%',
43572      objectFit: !!(height || aspectRatio) && scale
43573    };
43574  
43575    /**
43576     * When the post featured image block is placed in a context where:
43577     * - It has a postId (for example in a single post)
43578     * - It is not inside a query loop
43579     * - It has no image assigned yet
43580     * Then display the placeholder with the image upload option.
43581     */
43582    if (!featuredImage && !temporaryURL) {
43583      image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
43584        onSelect: onSelectImage,
43585        accept: "image/*",
43586        allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
43587        onError: onUploadError,
43588        placeholder: placeholder,
43589        mediaLibraryButton: ({
43590          open
43591        }) => {
43592          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
43593            __next40pxDefaultSize: true,
43594            icon: library_upload,
43595            variant: "primary",
43596            label: label,
43597            showTooltip: true,
43598            tooltipPosition: "top center",
43599            onClick: () => {
43600              open();
43601            }
43602          });
43603        }
43604      });
43605    } else {
43606      // We have a Featured image so show a Placeholder if is loading.
43607      image = !media && !temporaryURL ? placeholder() : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43608        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
43609          className: borderProps.className,
43610          src: temporaryURL || mediaUrl,
43611          alt: media && media?.alt_text ? (0,external_wp_i18n_namespaceObject.sprintf)(
43612          // translators: %s: The image's alt text.
43613          (0,external_wp_i18n_namespaceObject.__)('Featured image: %s'), media.alt_text) : (0,external_wp_i18n_namespaceObject.__)('Featured image'),
43614          style: imageStyles
43615        }), temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
43616      });
43617    }
43618  
43619    /**
43620     * When the post featured image block:
43621     * - Has an image assigned
43622     * - Is not inside a query loop
43623     * Then display the image and the image replacement option.
43624     */
43625    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43626      children: [!temporaryURL && controls, !!media && !isDescendentOfQueryLoop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
43627        group: "other",
43628        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
43629          mediaId: featuredImage,
43630          mediaURL: mediaUrl,
43631          allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
43632          accept: "image/*",
43633          onSelect: onSelectImage,
43634          onError: onUploadError,
43635          onReset: () => setFeaturedImage(0)
43636        })
43637      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
43638        ...blockProps,
43639        children: [!!isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43640          href: postPermalink,
43641          target: linkTarget,
43642          ...disabledClickProps,
43643          children: image
43644        }) : image, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay, {
43645          attributes: attributes,
43646          setAttributes: setAttributes,
43647          clientId: clientId
43648        })]
43649      })]
43650    });
43651  }
43652  
43653  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
43654  /**
43655   * WordPress dependencies
43656   */
43657  
43658  
43659  /**
43660   * Internal dependencies
43661   */
43662  
43663  const post_featured_image_metadata = {
43664    $schema: "https://schemas.wp.org/trunk/block.json",
43665    apiVersion: 3,
43666    name: "core/post-featured-image",
43667    title: "Featured Image",
43668    category: "theme",
43669    description: "Display a post's featured image.",
43670    textdomain: "default",
43671    attributes: {
43672      isLink: {
43673        type: "boolean",
43674        "default": false
43675      },
43676      aspectRatio: {
43677        type: "string"
43678      },
43679      width: {
43680        type: "string"
43681      },
43682      height: {
43683        type: "string"
43684      },
43685      scale: {
43686        type: "string",
43687        "default": "cover"
43688      },
43689      sizeSlug: {
43690        type: "string"
43691      },
43692      rel: {
43693        type: "string",
43694        attribute: "rel",
43695        "default": ""
43696      },
43697      linkTarget: {
43698        type: "string",
43699        "default": "_self"
43700      },
43701      overlayColor: {
43702        type: "string"
43703      },
43704      customOverlayColor: {
43705        type: "string"
43706      },
43707      dimRatio: {
43708        type: "number",
43709        "default": 0
43710      },
43711      gradient: {
43712        type: "string"
43713      },
43714      customGradient: {
43715        type: "string"
43716      },
43717      useFirstImageFromPost: {
43718        type: "boolean",
43719        "default": false
43720      }
43721    },
43722    usesContext: ["postId", "postType", "queryId"],
43723    example: {
43724      viewportWidth: 350
43725    },
43726    supports: {
43727      align: ["left", "right", "center", "wide", "full"],
43728      color: {
43729        text: false,
43730        background: false
43731      },
43732      __experimentalBorder: {
43733        color: true,
43734        radius: true,
43735        width: true,
43736        __experimentalSkipSerialization: true,
43737        __experimentalDefaultControls: {
43738          color: true,
43739          radius: true,
43740          width: true
43741        }
43742      },
43743      filter: {
43744        duotone: true
43745      },
43746      shadow: {
43747        __experimentalSkipSerialization: true
43748      },
43749      html: false,
43750      spacing: {
43751        margin: true,
43752        padding: true
43753      },
43754      interactivity: {
43755        clientNavigation: true
43756      }
43757    },
43758    selectors: {
43759      border: ".wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay",
43760      shadow: ".wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder",
43761      filter: {
43762        duotone: ".wp-block-post-featured-image img, .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder__illustration, .wp-block-post-featured-image .components-placeholder::before"
43763      }
43764    },
43765    editorStyle: "wp-block-post-featured-image-editor",
43766    style: "wp-block-post-featured-image"
43767  };
43768  
43769  const {
43770    name: post_featured_image_name
43771  } = post_featured_image_metadata;
43772  
43773  const post_featured_image_settings = {
43774    icon: post_featured_image,
43775    edit: PostFeaturedImageEdit
43776  };
43777  const post_featured_image_init = () => initBlock({
43778    name: post_featured_image_name,
43779    metadata: post_featured_image_metadata,
43780    settings: post_featured_image_settings
43781  });
43782  
43783  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/edit.js
43784  /**
43785   * External dependencies
43786   */
43787  
43788  
43789  /**
43790   * WordPress dependencies
43791   */
43792  
43793  
43794  
43795  
43796  
43797  
43798  
43799  
43800  function PostNavigationLinkEdit({
43801    context: {
43802      postType
43803    },
43804    attributes: {
43805      type,
43806      label,
43807      showTitle,
43808      textAlign,
43809      linkLabel,
43810      arrow,
43811      taxonomy
43812    },
43813    setAttributes
43814  }) {
43815    const isNext = type === 'next';
43816    let placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next') : (0,external_wp_i18n_namespaceObject.__)('Previous');
43817    const arrowMap = {
43818      none: '',
43819      arrow: isNext ? '→' : '←',
43820      chevron: isNext ? '»' : '«'
43821    };
43822    const displayArrow = arrowMap[arrow];
43823    if (showTitle) {
43824      placeholder = isNext ? /* translators: Label before for next and previous post. There is a space after the colon. */
43825      (0,external_wp_i18n_namespaceObject.__)('Next: ') // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
43826      : /* translators: Label before for next and previous post. There is a space after the colon. */
43827      (0,external_wp_i18n_namespaceObject.__)('Previous: '); // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
43828    }
43829    const ariaLabel = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next post') : (0,external_wp_i18n_namespaceObject.__)('Previous post');
43830    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43831      className: dist_clsx({
43832        [`has-text-align-$textAlign}`]: textAlign
43833      })
43834    });
43835    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
43836      const {
43837        getTaxonomies
43838      } = select(external_wp_coreData_namespaceObject.store);
43839      const filteredTaxonomies = getTaxonomies({
43840        type: postType,
43841        per_page: -1
43842      });
43843      return filteredTaxonomies;
43844    }, [postType]);
43845    const getTaxonomyOptions = () => {
43846      const selectOption = {
43847        label: (0,external_wp_i18n_namespaceObject.__)('Unfiltered'),
43848        value: ''
43849      };
43850      const taxonomyOptions = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(({
43851        visibility
43852      }) => !!visibility?.publicly_queryable).map(item => {
43853        return {
43854          value: item.slug,
43855          label: item.name
43856        };
43857      });
43858      return [selectOption, ...taxonomyOptions];
43859    };
43860    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43861      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43862        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
43863          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43864            __nextHasNoMarginBottom: true,
43865            label: (0,external_wp_i18n_namespaceObject.__)('Display the title as a link'),
43866            help: (0,external_wp_i18n_namespaceObject.__)('If you have entered a custom label, it will be prepended before the title.'),
43867            checked: !!showTitle,
43868            onChange: () => setAttributes({
43869              showTitle: !showTitle
43870            })
43871          }), showTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43872            __nextHasNoMarginBottom: true,
43873            label: (0,external_wp_i18n_namespaceObject.__)('Include the label as part of the link'),
43874            checked: !!linkLabel,
43875            onChange: () => setAttributes({
43876              linkLabel: !linkLabel
43877            })
43878          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
43879            __next40pxDefaultSize: true,
43880            __nextHasNoMarginBottom: true,
43881            label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
43882            value: arrow,
43883            onChange: value => {
43884              setAttributes({
43885                arrow: value
43886              });
43887            },
43888            help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow for the next and previous link.'),
43889            isBlock: true,
43890            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
43891              value: "none",
43892              label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Next/Previous link')
43893            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
43894              value: "arrow",
43895              label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Next/Previous link')
43896            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
43897              value: "chevron",
43898              label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Next/Previous link')
43899            })]
43900          })]
43901        })
43902      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43903        group: "advanced",
43904        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
43905          __next40pxDefaultSize: true,
43906          __nextHasNoMarginBottom: true,
43907          label: (0,external_wp_i18n_namespaceObject.__)('Filter by taxonomy'),
43908          value: taxonomy,
43909          options: getTaxonomyOptions(),
43910          onChange: value => setAttributes({
43911            taxonomy: value
43912          }),
43913          help: (0,external_wp_i18n_namespaceObject.__)('Only link to posts that have the same taxonomy terms as the current post. For example the same tags or categories.')
43914        })
43915      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
43916        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
43917          value: textAlign,
43918          onChange: nextAlign => {
43919            setAttributes({
43920              textAlign: nextAlign
43921            });
43922          }
43923        })
43924      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
43925        ...blockProps,
43926        children: [!isNext && displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
43927          className: `wp-block-post-navigation-link__arrow-previous is-arrow-$arrow}`,
43928          children: displayArrow
43929        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
43930          tagName: "a",
43931          identifier: "label",
43932          "aria-label": ariaLabel,
43933          placeholder: placeholder,
43934          value: label,
43935          allowedFormats: ['core/bold', 'core/italic'],
43936          onChange: newLabel => setAttributes({
43937            label: newLabel
43938          })
43939        }), showTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43940          href: "#post-navigation-pseudo-link",
43941          onClick: event => event.preventDefault(),
43942          children: (0,external_wp_i18n_namespaceObject.__)('An example title')
43943        }), isNext && displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
43944          className: `wp-block-post-navigation-link__arrow-next is-arrow-$arrow}`,
43945          "aria-hidden": true,
43946          children: displayArrow
43947        })]
43948      })]
43949    });
43950  }
43951  
43952  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/next.js
43953  /**
43954   * WordPress dependencies
43955   */
43956  
43957  
43958  const next = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
43959    xmlns: "http://www.w3.org/2000/svg",
43960    viewBox: "0 0 24 24",
43961    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
43962      d: "M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z"
43963    })
43964  });
43965  /* harmony default export */ const library_next = (next);
43966  
43967  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/previous.js
43968  /**
43969   * WordPress dependencies
43970   */
43971  
43972  
43973  const previous = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
43974    xmlns: "http://www.w3.org/2000/svg",
43975    viewBox: "0 0 24 24",
43976    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
43977      d: "M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z"
43978    })
43979  });
43980  /* harmony default export */ const library_previous = (previous);
43981  
43982  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/variations.js
43983  /**
43984   * WordPress dependencies
43985   */
43986  
43987  
43988  const post_navigation_link_variations_variations = [{
43989    isDefault: true,
43990    name: 'post-next',
43991    title: (0,external_wp_i18n_namespaceObject.__)('Next post'),
43992    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that follows the current post.'),
43993    icon: library_next,
43994    attributes: {
43995      type: 'next'
43996    },
43997    scope: ['inserter', 'transform']
43998  }, {
43999    name: 'post-previous',
44000    title: (0,external_wp_i18n_namespaceObject.__)('Previous post'),
44001    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that precedes the current post.'),
44002    icon: library_previous,
44003    attributes: {
44004      type: 'previous'
44005    },
44006    scope: ['inserter', 'transform']
44007  }];
44008  
44009  /**
44010   * Add `isActive` function to all `post-navigation-link` variations, if not defined.
44011   * `isActive` function is used to find a variation match from a created
44012   *  Block by providing its attributes.
44013   */
44014  post_navigation_link_variations_variations.forEach(variation => {
44015    if (variation.isActive) {
44016      return;
44017    }
44018    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
44019  });
44020  /* harmony default export */ const post_navigation_link_variations = (post_navigation_link_variations_variations);
44021  
44022  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
44023  /**
44024   * Internal dependencies
44025   */
44026  
44027  const post_navigation_link_metadata = {
44028    $schema: "https://schemas.wp.org/trunk/block.json",
44029    apiVersion: 3,
44030    name: "core/post-navigation-link",
44031    title: "Post Navigation Link",
44032    category: "theme",
44033    description: "Displays the next or previous post link that is adjacent to the current post.",
44034    textdomain: "default",
44035    attributes: {
44036      textAlign: {
44037        type: "string"
44038      },
44039      type: {
44040        type: "string",
44041        "default": "next"
44042      },
44043      label: {
44044        type: "string"
44045      },
44046      showTitle: {
44047        type: "boolean",
44048        "default": false
44049      },
44050      linkLabel: {
44051        type: "boolean",
44052        "default": false
44053      },
44054      arrow: {
44055        type: "string",
44056        "default": "none"
44057      },
44058      taxonomy: {
44059        type: "string",
44060        "default": ""
44061      }
44062    },
44063    usesContext: ["postType"],
44064    supports: {
44065      reusable: false,
44066      html: false,
44067      color: {
44068        link: true
44069      },
44070      typography: {
44071        fontSize: true,
44072        lineHeight: true,
44073        __experimentalFontFamily: true,
44074        __experimentalFontWeight: true,
44075        __experimentalFontStyle: true,
44076        __experimentalTextTransform: true,
44077        __experimentalTextDecoration: true,
44078        __experimentalLetterSpacing: true,
44079        __experimentalWritingMode: true,
44080        __experimentalDefaultControls: {
44081          fontSize: true
44082        }
44083      },
44084      interactivity: {
44085        clientNavigation: true
44086      }
44087    },
44088    style: "wp-block-post-navigation-link"
44089  };
44090  
44091  
44092  const {
44093    name: post_navigation_link_name
44094  } = post_navigation_link_metadata;
44095  
44096  const post_navigation_link_settings = {
44097    edit: PostNavigationLinkEdit,
44098    variations: post_navigation_link_variations
44099  };
44100  const post_navigation_link_init = () => initBlock({
44101    name: post_navigation_link_name,
44102    metadata: post_navigation_link_metadata,
44103    settings: post_navigation_link_settings
44104  });
44105  
44106  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/edit.js
44107  /**
44108   * External dependencies
44109   */
44110  
44111  
44112  /**
44113   * WordPress dependencies
44114   */
44115  
44116  
44117  
44118  
44119  
44120  
44121  
44122  
44123  
44124  
44125  const post_template_edit_TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];
44126  function PostTemplateInnerBlocks({
44127    classList
44128  }) {
44129    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
44130      className: dist_clsx('wp-block-post', classList)
44131    }, {
44132      template: post_template_edit_TEMPLATE,
44133      __unstableDisableLayoutClassNames: true
44134    });
44135    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
44136      ...innerBlocksProps
44137    });
44138  }
44139  function PostTemplateBlockPreview({
44140    blocks,
44141    blockContextId,
44142    classList,
44143    isHidden,
44144    setActiveBlockContextId
44145  }) {
44146    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
44147      blocks,
44148      props: {
44149        className: dist_clsx('wp-block-post', classList)
44150      }
44151    });
44152    const handleOnClick = () => {
44153      setActiveBlockContextId(blockContextId);
44154    };
44155    const style = {
44156      display: isHidden ? 'none' : undefined
44157    };
44158    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
44159      ...blockPreviewProps,
44160      tabIndex: 0
44161      // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
44162      ,
44163      role: "button",
44164      onClick: handleOnClick,
44165      onKeyPress: handleOnClick,
44166      style: style
44167    });
44168  }
44169  const MemoizedPostTemplateBlockPreview = (0,external_wp_element_namespaceObject.memo)(PostTemplateBlockPreview);
44170  function PostTemplateEdit({
44171    setAttributes,
44172    clientId,
44173    context: {
44174      query: {
44175        perPage,
44176        offset = 0,
44177        postType,
44178        order,
44179        orderBy,
44180        author,
44181        search,
44182        exclude,
44183        sticky,
44184        inherit,
44185        taxQuery,
44186        parents,
44187        pages,
44188        format,
44189        // We gather extra query args to pass to the REST API call.
44190        // This way extenders of Query Loop can add their own query args,
44191        // and have accurate previews in the editor.
44192        // Noting though that these args should either be supported by the
44193        // REST API or be handled by custom REST filters like `rest_{$this->post_type}_query`.
44194        ...restQueryArgs
44195      } = {},
44196      templateSlug,
44197      previewPostType
44198    },
44199    attributes: {
44200      layout
44201    },
44202    __unstableLayoutClassNames
44203  }) {
44204    const {
44205      type: layoutType,
44206      columnCount = 3
44207    } = layout || {};
44208    const [activeBlockContextId, setActiveBlockContextId] = (0,external_wp_element_namespaceObject.useState)();
44209    const {
44210      posts,
44211      blocks
44212    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44213      const {
44214        getEntityRecords,
44215        getTaxonomies
44216      } = select(external_wp_coreData_namespaceObject.store);
44217      const {
44218        getBlocks
44219      } = select(external_wp_blockEditor_namespaceObject.store);
44220      const templateCategory = inherit && templateSlug?.startsWith('category-') && getEntityRecords('taxonomy', 'category', {
44221        context: 'view',
44222        per_page: 1,
44223        _fields: ['id'],
44224        slug: templateSlug.replace('category-', '')
44225      });
44226      const query = {
44227        offset: offset || 0,
44228        order,
44229        orderby: orderBy
44230      };
44231      // There is no need to build the taxQuery if we inherit.
44232      if (taxQuery && !inherit) {
44233        const taxonomies = getTaxonomies({
44234          type: postType,
44235          per_page: -1,
44236          context: 'view'
44237        });
44238        // We have to build the tax query for the REST API and use as
44239        // keys the taxonomies `rest_base` with the `term ids` as values.
44240        const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, [taxonomySlug, terms]) => {
44241          const taxonomy = taxonomies?.find(({
44242            slug
44243          }) => slug === taxonomySlug);
44244          if (taxonomy?.rest_base) {
44245            accumulator[taxonomy?.rest_base] = terms;
44246          }
44247          return accumulator;
44248        }, {});
44249        if (!!Object.keys(builtTaxQuery).length) {
44250          Object.assign(query, builtTaxQuery);
44251        }
44252      }
44253      if (perPage) {
44254        query.per_page = perPage;
44255      }
44256      if (author) {
44257        query.author = author;
44258      }
44259      if (search) {
44260        query.search = search;
44261      }
44262      if (exclude?.length) {
44263        query.exclude = exclude;
44264      }
44265      if (parents?.length) {
44266        query.parent = parents;
44267      }
44268      if (format?.length) {
44269        query.format = format;
44270      }
44271  
44272      // If sticky is not set, it will return all posts in the results.
44273      // If sticky is set to `only`, it will limit the results to sticky posts only.
44274      // If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.
44275      if (sticky) {
44276        query.sticky = sticky === 'only';
44277      }
44278      // If `inherit` is truthy, adjust conditionally the query to create a better preview.
44279      if (inherit) {
44280        // Change the post-type if needed.
44281        if (templateSlug?.startsWith('archive-')) {
44282          query.postType = templateSlug.replace('archive-', '');
44283          postType = query.postType;
44284        } else if (templateCategory) {
44285          query.categories = templateCategory[0]?.id;
44286        }
44287      }
44288      // When we preview Query Loop blocks we should prefer the current
44289      // block's postType, which is passed through block context.
44290      const usedPostType = previewPostType || postType;
44291      return {
44292        posts: getEntityRecords('postType', usedPostType, {
44293          ...query,
44294          ...restQueryArgs
44295        }),
44296        blocks: getBlocks(clientId)
44297      };
44298    }, [perPage, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery, parents, format, restQueryArgs, previewPostType]);
44299    const blockContexts = (0,external_wp_element_namespaceObject.useMemo)(() => posts?.map(post => {
44300      var _post$class_list;
44301      return {
44302        postType: post.type,
44303        postId: post.id,
44304        classList: (_post$class_list = post.class_list) !== null && _post$class_list !== void 0 ? _post$class_list : ''
44305      };
44306    }), [posts]);
44307    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
44308      className: dist_clsx(__unstableLayoutClassNames, {
44309        [`columns-$columnCount}`]: layoutType === 'grid' && columnCount // Ensure column count is flagged via classname for backwards compatibility.
44310      })
44311    });
44312    if (!posts) {
44313      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
44314        ...blockProps,
44315        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
44316      });
44317    }
44318    if (!posts.length) {
44319      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
44320        ...blockProps,
44321        children: [" ", (0,external_wp_i18n_namespaceObject.__)('No results found.')]
44322      });
44323    }
44324    const setDisplayLayout = newDisplayLayout => setAttributes({
44325      layout: {
44326        ...layout,
44327        ...newDisplayLayout
44328      }
44329    });
44330    const displayLayoutControls = [{
44331      icon: library_list,
44332      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'Post template block display setting'),
44333      onClick: () => setDisplayLayout({
44334        type: 'default'
44335      }),
44336      isActive: layoutType === 'default' || layoutType === 'constrained'
44337    }, {
44338      icon: library_grid,
44339      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'Post template block display setting'),
44340      onClick: () => setDisplayLayout({
44341        type: 'grid',
44342        columnCount
44343      }),
44344      isActive: layoutType === 'grid'
44345    }];
44346  
44347    // To avoid flicker when switching active block contexts, a preview is rendered
44348    // for each block context, but the preview for the active block context is hidden.
44349    // This ensures that when it is displayed again, the cached rendering of the
44350    // block preview is used, instead of having to re-render the preview from scratch.
44351    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44352      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44353        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
44354          controls: displayLayoutControls
44355        })
44356      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
44357        ...blockProps,
44358        children: blockContexts && blockContexts.map(blockContext => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
44359          value: blockContext,
44360          children: [blockContext.postId === (activeBlockContextId || blockContexts[0]?.postId) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTemplateInnerBlocks, {
44361            classList: blockContext.classList
44362          }) : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MemoizedPostTemplateBlockPreview, {
44363            blocks: blocks,
44364            blockContextId: blockContext.postId,
44365            classList: blockContext.classList,
44366            setActiveBlockContextId: setActiveBlockContextId,
44367            isHidden: blockContext.postId === (activeBlockContextId || blockContexts[0]?.postId)
44368          })]
44369        }, blockContext.postId))
44370      })]
44371    });
44372  }
44373  
44374  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/save.js
44375  /**
44376   * WordPress dependencies
44377   */
44378  
44379  
44380  function PostTemplateSave() {
44381    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
44382  }
44383  
44384  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/index.js
44385  /**
44386   * WordPress dependencies
44387   */
44388  
44389  
44390  /**
44391   * Internal dependencies
44392   */
44393  
44394  const post_template_metadata = {
44395    $schema: "https://schemas.wp.org/trunk/block.json",
44396    apiVersion: 3,
44397    name: "core/post-template",
44398    title: "Post Template",
44399    category: "theme",
44400    parent: ["core/query"],
44401    description: "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.",
44402    textdomain: "default",
44403    usesContext: ["queryId", "query", "displayLayout", "templateSlug", "previewPostType", "enhancedPagination"],
44404    supports: {
44405      reusable: false,
44406      html: false,
44407      align: ["wide", "full"],
44408      layout: true,
44409      color: {
44410        gradients: true,
44411        link: true,
44412        __experimentalDefaultControls: {
44413          background: true,
44414          text: true
44415        }
44416      },
44417      typography: {
44418        fontSize: true,
44419        lineHeight: true,
44420        __experimentalFontFamily: true,
44421        __experimentalFontWeight: true,
44422        __experimentalFontStyle: true,
44423        __experimentalTextTransform: true,
44424        __experimentalTextDecoration: true,
44425        __experimentalLetterSpacing: true,
44426        __experimentalDefaultControls: {
44427          fontSize: true
44428        }
44429      },
44430      spacing: {
44431        blockGap: {
44432          __experimentalDefault: "1.25em"
44433        },
44434        __experimentalDefaultControls: {
44435          blockGap: true
44436        }
44437      },
44438      interactivity: {
44439        clientNavigation: true
44440      }
44441    },
44442    style: "wp-block-post-template",
44443    editorStyle: "wp-block-post-template-editor"
44444  };
44445  
44446  
44447  const {
44448    name: post_template_name
44449  } = post_template_metadata;
44450  
44451  const post_template_settings = {
44452    icon: library_layout,
44453    edit: PostTemplateEdit,
44454    save: PostTemplateSave
44455  };
44456  const post_template_init = () => initBlock({
44457    name: post_template_name,
44458    metadata: post_template_metadata,
44459    settings: post_template_settings
44460  });
44461  
44462  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-categories.js
44463  /**
44464   * WordPress dependencies
44465   */
44466  
44467  
44468  const postCategories = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
44469    viewBox: "0 0 24 24",
44470    xmlns: "http://www.w3.org/2000/svg",
44471    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
44472      d: "M20 4H4v1.5h16V4zm-2 9h-3c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3zM4 9.5h9V8H4v1.5zM9 13H6c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3z",
44473      fillRule: "evenodd",
44474      clipRule: "evenodd"
44475    })
44476  });
44477  /* harmony default export */ const post_categories = (postCategories);
44478  
44479  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/use-post-terms.js
44480  /**
44481   * WordPress dependencies
44482   */
44483  
44484  
44485  const use_post_terms_EMPTY_ARRAY = [];
44486  function usePostTerms({
44487    postId,
44488    term
44489  }) {
44490    const {
44491      slug
44492    } = term;
44493    return (0,external_wp_data_namespaceObject.useSelect)(select => {
44494      const visible = term?.visibility?.publicly_queryable;
44495      if (!visible) {
44496        return {
44497          postTerms: use_post_terms_EMPTY_ARRAY,
44498          isLoading: false,
44499          hasPostTerms: false
44500        };
44501      }
44502      const {
44503        getEntityRecords,
44504        isResolving
44505      } = select(external_wp_coreData_namespaceObject.store);
44506      const taxonomyArgs = ['taxonomy', slug, {
44507        post: postId,
44508        per_page: -1,
44509        context: 'view'
44510      }];
44511      const terms = getEntityRecords(...taxonomyArgs);
44512      return {
44513        postTerms: terms,
44514        isLoading: isResolving('getEntityRecords', taxonomyArgs),
44515        hasPostTerms: !!terms?.length
44516      };
44517    }, [postId, term?.visibility?.publicly_queryable, slug]);
44518  }
44519  
44520  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/edit.js
44521  /**
44522   * External dependencies
44523   */
44524  
44525  
44526  /**
44527   * WordPress dependencies
44528   */
44529  
44530  
44531  
44532  
44533  
44534  
44535  
44536  
44537  /**
44538   * Internal dependencies
44539   */
44540  
44541  
44542  // Allowed formats for the prefix and suffix fields.
44543  
44544  
44545  
44546  const ALLOWED_FORMATS = ['core/bold', 'core/image', 'core/italic', 'core/link', 'core/strikethrough', 'core/text-color'];
44547  function PostTermsEdit({
44548    attributes,
44549    clientId,
44550    context,
44551    isSelected,
44552    setAttributes,
44553    insertBlocksAfter
44554  }) {
44555    const {
44556      term,
44557      textAlign,
44558      separator,
44559      prefix,
44560      suffix
44561    } = attributes;
44562    const {
44563      postId,
44564      postType
44565    } = context;
44566    const selectedTerm = (0,external_wp_data_namespaceObject.useSelect)(select => {
44567      if (!term) {
44568        return {};
44569      }
44570      const {
44571        getTaxonomy
44572      } = select(external_wp_coreData_namespaceObject.store);
44573      const taxonomy = getTaxonomy(term);
44574      return taxonomy?.visibility?.publicly_queryable ? taxonomy : {};
44575    }, [term]);
44576    const {
44577      postTerms,
44578      hasPostTerms,
44579      isLoading
44580    } = usePostTerms({
44581      postId,
44582      term: selectedTerm
44583    });
44584    const hasPost = postId && postType;
44585    const blockInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(clientId);
44586    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
44587      className: dist_clsx({
44588        [`has-text-align-$textAlign}`]: textAlign,
44589        [`taxonomy-$term}`]: term
44590      })
44591    });
44592    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44593      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44594        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
44595          value: textAlign,
44596          onChange: nextAlign => {
44597            setAttributes({
44598              textAlign: nextAlign
44599            });
44600          }
44601        })
44602      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44603        group: "advanced",
44604        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
44605          __next40pxDefaultSize: true,
44606          __nextHasNoMarginBottom: true,
44607          autoComplete: "off",
44608          label: (0,external_wp_i18n_namespaceObject.__)('Separator'),
44609          value: separator || '',
44610          onChange: nextValue => {
44611            setAttributes({
44612              separator: nextValue
44613            });
44614          },
44615          help: (0,external_wp_i18n_namespaceObject.__)('Enter character(s) used to separate terms.')
44616        })
44617      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
44618        ...blockProps,
44619        children: [isLoading && hasPost && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), !isLoading && (isSelected || prefix) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
44620          identifier: "prefix",
44621          allowedFormats: ALLOWED_FORMATS,
44622          className: "wp-block-post-terms__prefix",
44623          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Prefix'),
44624          placeholder: (0,external_wp_i18n_namespaceObject.__)('Prefix') + ' ',
44625          value: prefix,
44626          onChange: value => setAttributes({
44627            prefix: value
44628          }),
44629          tagName: "span"
44630        }), (!hasPost || !term) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
44631          children: blockInformation.title
44632        }), hasPost && !isLoading && hasPostTerms && postTerms.map(postTerm => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
44633          href: postTerm.link,
44634          onClick: event => event.preventDefault(),
44635          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postTerm.name)
44636        }, postTerm.id)).reduce((prev, curr) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44637          children: [prev, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
44638            className: "wp-block-post-terms__separator",
44639            children: separator || ' '
44640          }), curr]
44641        })), hasPost && !isLoading && !hasPostTerms && (selectedTerm?.labels?.no_terms || (0,external_wp_i18n_namespaceObject.__)('Term items not found.')), !isLoading && (isSelected || suffix) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
44642          identifier: "suffix",
44643          allowedFormats: ALLOWED_FORMATS,
44644          className: "wp-block-post-terms__suffix",
44645          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Suffix'),
44646          placeholder: ' ' + (0,external_wp_i18n_namespaceObject.__)('Suffix'),
44647          value: suffix,
44648          onChange: value => setAttributes({
44649            suffix: value
44650          }),
44651          tagName: "span",
44652          __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
44653        })]
44654      })]
44655    });
44656  }
44657  
44658  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-terms.js
44659  /**
44660   * WordPress dependencies
44661   */
44662  
44663  
44664  const postTerms = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
44665    viewBox: "0 0 24 24",
44666    xmlns: "http://www.w3.org/2000/svg",
44667    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
44668      d: "M8.1 12.3c.1.1.3.3.5.3.2.1.4.1.6.1.2 0 .4 0 .6-.1.2-.1.4-.2.5-.3l3-3c.3-.3.5-.7.5-1.1 0-.4-.2-.8-.5-1.1L9.7 3.5c-.1-.2-.3-.3-.5-.3H5c-.4 0-.8.4-.8.8v4.2c0 .2.1.4.2.5l3.7 3.6zM5.8 4.8h3.1l3.4 3.4v.1l-3 3 .5.5-.7-.5-3.3-3.4V4.8zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z"
44669    })
44670  });
44671  /* harmony default export */ const post_terms = (postTerms);
44672  
44673  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/hooks.js
44674  /**
44675   * WordPress dependencies
44676   */
44677  
44678  const variationIconMap = {
44679    category: post_categories,
44680    post_tag: post_terms
44681  };
44682  
44683  // We add `icons` to categories and tags. The remaining ones use
44684  // the block's default icon.
44685  function enhanceVariations(settings, name) {
44686    if (name !== 'core/post-terms') {
44687      return settings;
44688    }
44689    const variations = settings.variations.map(variation => {
44690      var _variationIconMap$var;
44691      return {
44692        ...variation,
44693        ...{
44694          icon: (_variationIconMap$var = variationIconMap[variation.name]) !== null && _variationIconMap$var !== void 0 ? _variationIconMap$var : post_categories
44695        }
44696      };
44697    });
44698    return {
44699      ...settings,
44700      variations
44701    };
44702  }
44703  
44704  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
44705  /**
44706   * WordPress dependencies
44707   */
44708  
44709  
44710  
44711  /**
44712   * Internal dependencies
44713   */
44714  
44715  const post_terms_metadata = {
44716    $schema: "https://schemas.wp.org/trunk/block.json",
44717    apiVersion: 3,
44718    name: "core/post-terms",
44719    title: "Post Terms",
44720    category: "theme",
44721    description: "Post terms.",
44722    textdomain: "default",
44723    attributes: {
44724      term: {
44725        type: "string"
44726      },
44727      textAlign: {
44728        type: "string"
44729      },
44730      separator: {
44731        type: "string",
44732        "default": ", "
44733      },
44734      prefix: {
44735        type: "string",
44736        "default": ""
44737      },
44738      suffix: {
44739        type: "string",
44740        "default": ""
44741      }
44742    },
44743    usesContext: ["postId", "postType"],
44744    example: {
44745      viewportWidth: 350
44746    },
44747    supports: {
44748      html: false,
44749      color: {
44750        gradients: true,
44751        link: true,
44752        __experimentalDefaultControls: {
44753          background: true,
44754          text: true,
44755          link: true
44756        }
44757      },
44758      spacing: {
44759        margin: true,
44760        padding: true
44761      },
44762      typography: {
44763        fontSize: true,
44764        lineHeight: true,
44765        __experimentalFontFamily: true,
44766        __experimentalFontWeight: true,
44767        __experimentalFontStyle: true,
44768        __experimentalTextTransform: true,
44769        __experimentalTextDecoration: true,
44770        __experimentalLetterSpacing: true,
44771        __experimentalDefaultControls: {
44772          fontSize: true
44773        }
44774      },
44775      interactivity: {
44776        clientNavigation: true
44777      },
44778      __experimentalBorder: {
44779        radius: true,
44780        color: true,
44781        width: true,
44782        style: true,
44783        __experimentalDefaultControls: {
44784          radius: true,
44785          color: true,
44786          width: true,
44787          style: true
44788        }
44789      }
44790    },
44791    style: "wp-block-post-terms"
44792  };
44793  
44794  
44795  const {
44796    name: post_terms_name
44797  } = post_terms_metadata;
44798  
44799  const post_terms_settings = {
44800    icon: post_categories,
44801    edit: PostTermsEdit
44802  };
44803  const post_terms_init = () => {
44804    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceVariations);
44805    return initBlock({
44806      name: post_terms_name,
44807      metadata: post_terms_metadata,
44808      settings: post_terms_settings
44809    });
44810  };
44811  
44812  ;// CONCATENATED MODULE: external ["wp","wordcount"]
44813  const external_wp_wordcount_namespaceObject = window["wp"]["wordcount"];
44814  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-time-to-read/edit.js
44815  /**
44816   * External dependencies
44817   */
44818  
44819  
44820  /**
44821   * WordPress dependencies
44822   */
44823  
44824  
44825  
44826  
44827  
44828  
44829  
44830  /**
44831   * Average reading rate - based on average taken from
44832   * https://irisreading.com/average-reading-speed-in-various-languages/
44833   * (Characters/minute used for Chinese rather than words).
44834   */
44835  
44836  
44837  
44838  const AVERAGE_READING_RATE = 189;
44839  function PostTimeToReadEdit({
44840    attributes,
44841    setAttributes,
44842    context
44843  }) {
44844    const {
44845      textAlign
44846    } = attributes;
44847    const {
44848      postId,
44849      postType
44850    } = context;
44851    const [contentStructure] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
44852    const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
44853      id: postId
44854    });
44855    const minutesToReadString = (0,external_wp_element_namespaceObject.useMemo)(() => {
44856      // Replicates the logic found in getEditedPostContent().
44857      let content;
44858      if (contentStructure instanceof Function) {
44859        content = contentStructure({
44860          blocks
44861        });
44862      } else if (blocks) {
44863        // If we have parsed blocks already, they should be our source of truth.
44864        // Parsing applies block deprecations and legacy block conversions that
44865        // unparsed content will not have.
44866        content = (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocks);
44867      } else {
44868        content = contentStructure;
44869      }
44870  
44871      /*
44872       * translators: If your word count is based on single characters (e.g. East Asian characters),
44873       * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
44874       * Do not translate into your own language.
44875       */
44876      const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
44877      const minutesToRead = Math.max(1, Math.round((0,external_wp_wordcount_namespaceObject.count)(content || '', wordCountType) / AVERAGE_READING_RATE));
44878      return (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: the number of minutes to read the post. */
44879      (0,external_wp_i18n_namespaceObject._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
44880    }, [contentStructure, blocks]);
44881    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
44882      className: dist_clsx({
44883        [`has-text-align-$textAlign}`]: textAlign
44884      })
44885    });
44886    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44887      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44888        group: "block",
44889        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
44890          value: textAlign,
44891          onChange: nextAlign => {
44892            setAttributes({
44893              textAlign: nextAlign
44894            });
44895          }
44896        })
44897      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
44898        ...blockProps,
44899        children: minutesToReadString
44900      })]
44901    });
44902  }
44903  /* harmony default export */ const post_time_to_read_edit = (PostTimeToReadEdit);
44904  
44905  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-time-to-read/icon.js
44906  /**
44907   * WordPress dependencies
44908   */
44909  
44910  
44911  /* harmony default export */ const icon = (/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
44912    xmlns: "http://www.w3.org/2000/svg",
44913    width: "24",
44914    height: "24",
44915    viewBox: "0 0 24 24",
44916    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
44917      d: "M12 3c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16.5c-4.1 0-7.5-3.4-7.5-7.5S7.9 4.5 12 4.5s7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5zM12 7l-1 5c0 .3.2.6.4.8l4.2 2.8-2.7-4.1L12 7z"
44918    })
44919  }));
44920  
44921  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-time-to-read/index.js
44922  /**
44923   * Internal dependencies
44924   */
44925  
44926  const post_time_to_read_metadata = {
44927    $schema: "https://schemas.wp.org/trunk/block.json",
44928    apiVersion: 3,
44929    __experimental: true,
44930    name: "core/post-time-to-read",
44931    title: "Time To Read",
44932    category: "theme",
44933    description: "Show minutes required to finish reading the post.",
44934    textdomain: "default",
44935    usesContext: ["postId", "postType"],
44936    attributes: {
44937      textAlign: {
44938        type: "string"
44939      }
44940    },
44941    supports: {
44942      color: {
44943        gradients: true,
44944        __experimentalDefaultControls: {
44945          background: true,
44946          text: true
44947        }
44948      },
44949      html: false,
44950      spacing: {
44951        margin: true,
44952        padding: true,
44953        __experimentalDefaultControls: {
44954          margin: false,
44955          padding: false
44956        }
44957      },
44958      typography: {
44959        fontSize: true,
44960        lineHeight: true,
44961        __experimentalFontFamily: true,
44962        __experimentalFontWeight: true,
44963        __experimentalFontStyle: true,
44964        __experimentalTextTransform: true,
44965        __experimentalTextDecoration: true,
44966        __experimentalLetterSpacing: true,
44967        __experimentalDefaultControls: {
44968          fontSize: true
44969        }
44970      },
44971      interactivity: {
44972        clientNavigation: true
44973      },
44974      __experimentalBorder: {
44975        radius: true,
44976        color: true,
44977        width: true,
44978        style: true
44979      }
44980    }
44981  };
44982  
44983  
44984  const {
44985    name: post_time_to_read_name
44986  } = post_time_to_read_metadata;
44987  
44988  const post_time_to_read_settings = {
44989    icon: icon,
44990    edit: post_time_to_read_edit
44991  };
44992  const post_time_to_read_init = () => initBlock({
44993    name: post_time_to_read_name,
44994    metadata: post_time_to_read_metadata,
44995    settings: post_time_to_read_settings
44996  });
44997  
44998  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/edit.js
44999  /**
45000   * External dependencies
45001   */
45002  
45003  
45004  /**
45005   * WordPress dependencies
45006   */
45007  
45008  
45009  
45010  
45011  
45012  
45013  
45014  
45015  
45016  function PostTitleEdit({
45017    attributes: {
45018      level,
45019      levelOptions,
45020      textAlign,
45021      isLink,
45022      rel,
45023      linkTarget
45024    },
45025    setAttributes,
45026    context: {
45027      postType,
45028      postId,
45029      queryId
45030    },
45031    insertBlocksAfter
45032  }) {
45033    const TagName = level === 0 ? 'p' : `h$level}`;
45034    const isDescendentOfQueryLoop = Number.isFinite(queryId);
45035    const userCanEdit = (0,external_wp_data_namespaceObject.useSelect)(select => {
45036      /**
45037       * useCanEditEntity may trigger an OPTIONS request to the REST API
45038       * via the canUser resolver. However, when the Post Title is a
45039       * descendant of a Query Loop block, the title cannot be edited. In
45040       * order to avoid these unnecessary requests, we call the hook
45041       * without the proper data, resulting in returning early without
45042       * making them.
45043       */
45044      if (isDescendentOfQueryLoop) {
45045        return false;
45046      }
45047      return select(external_wp_coreData_namespaceObject.store).canUser('update', {
45048        kind: 'postType',
45049        name: postType,
45050        id: postId
45051      });
45052    }, [isDescendentOfQueryLoop, postType, postId]);
45053    const [rawTitle = '', setTitle, fullTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
45054    const [link] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'link', postId);
45055    const onSplitAtEnd = () => {
45056      insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()));
45057    };
45058    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45059      className: dist_clsx({
45060        [`has-text-align-$textAlign}`]: textAlign
45061      })
45062    });
45063    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
45064    let titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
45065      ...blockProps,
45066      children: (0,external_wp_i18n_namespaceObject.__)('Title')
45067    });
45068    if (postType && postId) {
45069      titleElement = userCanEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
45070        tagName: TagName,
45071        placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
45072        value: rawTitle,
45073        onChange: setTitle,
45074        __experimentalVersion: 2,
45075        __unstableOnSplitAtEnd: onSplitAtEnd,
45076        ...blockProps
45077      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
45078        ...blockProps,
45079        dangerouslySetInnerHTML: {
45080          __html: fullTitle?.rendered
45081        }
45082      });
45083    }
45084    if (isLink && postType && postId) {
45085      titleElement = userCanEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
45086        ...blockProps,
45087        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
45088          tagName: "a",
45089          href: link,
45090          target: linkTarget,
45091          rel: rel,
45092          placeholder: !rawTitle.length ? (0,external_wp_i18n_namespaceObject.__)('No title') : null,
45093          value: rawTitle,
45094          onChange: setTitle,
45095          __experimentalVersion: 2,
45096          __unstableOnSplitAtEnd: onSplitAtEnd
45097        })
45098      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
45099        ...blockProps,
45100        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
45101          href: link,
45102          target: linkTarget,
45103          rel: rel,
45104          onClick: event => event.preventDefault(),
45105          dangerouslySetInnerHTML: {
45106            __html: fullTitle?.rendered
45107          }
45108        })
45109      });
45110    }
45111    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45112      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45113        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
45114          group: "block",
45115          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
45116            value: level,
45117            options: levelOptions,
45118            onChange: newLevel => setAttributes({
45119              level: newLevel
45120            })
45121          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
45122            value: textAlign,
45123            onChange: nextAlign => {
45124              setAttributes({
45125                textAlign: nextAlign
45126              });
45127            }
45128          })]
45129        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45130          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
45131            title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
45132            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
45133              __nextHasNoMarginBottom: true,
45134              label: (0,external_wp_i18n_namespaceObject.__)('Make title a link'),
45135              onChange: () => setAttributes({
45136                isLink: !isLink
45137              }),
45138              checked: isLink
45139            }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45140              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
45141                __nextHasNoMarginBottom: true,
45142                label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
45143                onChange: value => setAttributes({
45144                  linkTarget: value ? '_blank' : '_self'
45145                }),
45146                checked: linkTarget === '_blank'
45147              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
45148                __next40pxDefaultSize: true,
45149                __nextHasNoMarginBottom: true,
45150                label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
45151                value: rel,
45152                onChange: newRel => setAttributes({
45153                  rel: newRel
45154                })
45155              })]
45156            })]
45157          })
45158        })]
45159      }), titleElement]
45160    });
45161  }
45162  
45163  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/deprecated.js
45164  /**
45165   * Internal dependencies
45166   */
45167  
45168  const post_title_deprecated_v1 = {
45169    attributes: {
45170      textAlign: {
45171        type: 'string'
45172      },
45173      level: {
45174        type: 'number',
45175        default: 2
45176      },
45177      isLink: {
45178        type: 'boolean',
45179        default: false
45180      },
45181      rel: {
45182        type: 'string',
45183        attribute: 'rel',
45184        default: ''
45185      },
45186      linkTarget: {
45187        type: 'string',
45188        default: '_self'
45189      }
45190    },
45191    supports: {
45192      align: ['wide', 'full'],
45193      html: false,
45194      color: {
45195        gradients: true,
45196        link: true
45197      },
45198      spacing: {
45199        margin: true
45200      },
45201      typography: {
45202        fontSize: true,
45203        lineHeight: true,
45204        __experimentalFontFamily: true,
45205        __experimentalFontWeight: true,
45206        __experimentalFontStyle: true,
45207        __experimentalTextTransform: true
45208      }
45209    },
45210    save() {
45211      return null;
45212    },
45213    migrate: migrate_font_family,
45214    isEligible({
45215      style
45216    }) {
45217      return style?.typography?.fontFamily;
45218    }
45219  };
45220  
45221  /**
45222   * New deprecations need to be placed first
45223   * for them to have higher priority.
45224   *
45225   * Old deprecations may need to be updated as well.
45226   *
45227   * See block-deprecation.md
45228   */
45229  /* harmony default export */ const post_title_deprecated = ([post_title_deprecated_v1]);
45230  
45231  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/index.js
45232  /**
45233   * WordPress dependencies
45234   */
45235  
45236  
45237  /**
45238   * Internal dependencies
45239   */
45240  
45241  const post_title_metadata = {
45242    $schema: "https://schemas.wp.org/trunk/block.json",
45243    apiVersion: 3,
45244    name: "core/post-title",
45245    title: "Title",
45246    category: "theme",
45247    description: "Displays the title of a post, page, or any other content-type.",
45248    textdomain: "default",
45249    usesContext: ["postId", "postType", "queryId"],
45250    attributes: {
45251      textAlign: {
45252        type: "string"
45253      },
45254      level: {
45255        type: "number",
45256        "default": 2
45257      },
45258      levelOptions: {
45259        type: "array"
45260      },
45261      isLink: {
45262        type: "boolean",
45263        "default": false
45264      },
45265      rel: {
45266        type: "string",
45267        attribute: "rel",
45268        "default": ""
45269      },
45270      linkTarget: {
45271        type: "string",
45272        "default": "_self"
45273      }
45274    },
45275    example: {
45276      viewportWidth: 350
45277    },
45278    supports: {
45279      align: ["wide", "full"],
45280      html: false,
45281      color: {
45282        gradients: true,
45283        link: true,
45284        __experimentalDefaultControls: {
45285          background: true,
45286          text: true,
45287          link: true
45288        }
45289      },
45290      spacing: {
45291        margin: true,
45292        padding: true
45293      },
45294      typography: {
45295        fontSize: true,
45296        lineHeight: true,
45297        __experimentalFontFamily: true,
45298        __experimentalFontWeight: true,
45299        __experimentalFontStyle: true,
45300        __experimentalTextTransform: true,
45301        __experimentalTextDecoration: true,
45302        __experimentalLetterSpacing: true,
45303        __experimentalDefaultControls: {
45304          fontSize: true
45305        }
45306      },
45307      interactivity: {
45308        clientNavigation: true
45309      },
45310      __experimentalBorder: {
45311        radius: true,
45312        color: true,
45313        width: true,
45314        style: true,
45315        __experimentalDefaultControls: {
45316          radius: true,
45317          color: true,
45318          width: true,
45319          style: true
45320        }
45321      }
45322    },
45323    style: "wp-block-post-title"
45324  };
45325  
45326  
45327  const {
45328    name: post_title_name
45329  } = post_title_metadata;
45330  
45331  const post_title_settings = {
45332    icon: library_title,
45333    edit: PostTitleEdit,
45334    deprecated: post_title_deprecated
45335  };
45336  const post_title_init = () => initBlock({
45337    name: post_title_name,
45338    metadata: post_title_metadata,
45339    settings: post_title_settings
45340  });
45341  
45342  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/preformatted.js
45343  /**
45344   * WordPress dependencies
45345   */
45346  
45347  
45348  const preformatted = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45349    viewBox: "0 0 24 24",
45350    xmlns: "http://www.w3.org/2000/svg",
45351    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45352      d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 16.5h6V15H7v1.5zm4-4h6V11h-6v1.5zM9 11H7v1.5h2V11zm6 5.5h2V15h-2v1.5z"
45353    })
45354  });
45355  /* harmony default export */ const library_preformatted = (preformatted);
45356  
45357  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js
45358  /**
45359   * WordPress dependencies
45360   */
45361  
45362  
45363  
45364  
45365  function PreformattedEdit({
45366    attributes,
45367    mergeBlocks,
45368    setAttributes,
45369    onRemove,
45370    insertBlocksAfter,
45371    style
45372  }) {
45373    const {
45374      content
45375    } = attributes;
45376    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45377      style
45378    });
45379    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
45380      tagName: "pre",
45381      identifier: "content",
45382      preserveWhiteSpace: true,
45383      value: content,
45384      onChange: nextContent => {
45385        setAttributes({
45386          content: nextContent
45387        });
45388      },
45389      onRemove: onRemove,
45390      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preformatted text'),
45391      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write preformatted text…'),
45392      onMerge: mergeBlocks,
45393      ...blockProps,
45394      __unstablePastePlainText: true,
45395      __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
45396    });
45397  }
45398  
45399  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/save.js
45400  /**
45401   * WordPress dependencies
45402   */
45403  
45404  
45405  function preformatted_save_save({
45406    attributes
45407  }) {
45408    const {
45409      content
45410    } = attributes;
45411    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
45412      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
45413      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45414        value: content
45415      })
45416    });
45417  }
45418  
45419  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js
45420  /**
45421   * WordPress dependencies
45422   */
45423  
45424  const preformatted_transforms_transforms = {
45425    from: [{
45426      type: 'block',
45427      blocks: ['core/code', 'core/paragraph'],
45428      transform: ({
45429        content,
45430        anchor
45431      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/preformatted', {
45432        content,
45433        anchor
45434      })
45435    }, {
45436      type: 'raw',
45437      isMatch: node => node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE'),
45438      schema: ({
45439        phrasingContentSchema
45440      }) => ({
45441        pre: {
45442          children: phrasingContentSchema
45443        }
45444      })
45445    }],
45446    to: [{
45447      type: 'block',
45448      blocks: ['core/paragraph'],
45449      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
45450    }, {
45451      type: 'block',
45452      blocks: ['core/code'],
45453      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', attributes)
45454    }]
45455  };
45456  /* harmony default export */ const preformatted_transforms = (preformatted_transforms_transforms);
45457  
45458  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
45459  /**
45460   * WordPress dependencies
45461   */
45462  
45463  
45464  
45465  /**
45466   * Internal dependencies
45467   */
45468  
45469  
45470  const preformatted_metadata = {
45471    $schema: "https://schemas.wp.org/trunk/block.json",
45472    apiVersion: 3,
45473    name: "core/preformatted",
45474    title: "Preformatted",
45475    category: "text",
45476    description: "Add text that respects your spacing and tabs, and also allows styling.",
45477    textdomain: "default",
45478    attributes: {
45479      content: {
45480        type: "rich-text",
45481        source: "rich-text",
45482        selector: "pre",
45483        __unstablePreserveWhiteSpace: true,
45484        role: "content"
45485      }
45486    },
45487    supports: {
45488      anchor: true,
45489      color: {
45490        gradients: true,
45491        __experimentalDefaultControls: {
45492          background: true,
45493          text: true
45494        }
45495      },
45496      spacing: {
45497        padding: true,
45498        margin: true
45499      },
45500      typography: {
45501        fontSize: true,
45502        lineHeight: true,
45503        __experimentalFontFamily: true,
45504        __experimentalFontWeight: true,
45505        __experimentalFontStyle: true,
45506        __experimentalTextTransform: true,
45507        __experimentalTextDecoration: true,
45508        __experimentalLetterSpacing: true,
45509        __experimentalDefaultControls: {
45510          fontSize: true
45511        }
45512      },
45513      interactivity: {
45514        clientNavigation: true
45515      },
45516      __experimentalBorder: {
45517        radius: true,
45518        color: true,
45519        width: true,
45520        style: true,
45521        __experimentalDefaultControls: {
45522          radius: true,
45523          color: true,
45524          width: true,
45525          style: true
45526        }
45527      }
45528    },
45529    style: "wp-block-preformatted"
45530  };
45531  
45532  
45533  const {
45534    name: preformatted_name
45535  } = preformatted_metadata;
45536  
45537  const preformatted_settings = {
45538    icon: library_preformatted,
45539    example: {
45540      attributes: {
45541        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
45542        // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.
45543        content: (0,external_wp_i18n_namespaceObject.__)('EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\nWindow, very small in the distance, illuminated.\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;')
45544        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
45545      }
45546    },
45547    transforms: preformatted_transforms,
45548    edit: PreformattedEdit,
45549    save: preformatted_save_save,
45550    merge(attributes, attributesToMerge) {
45551      return {
45552        content: attributes.content + '\n\n' + attributesToMerge.content
45553      };
45554    }
45555  };
45556  const preformatted_init = () => initBlock({
45557    name: preformatted_name,
45558    metadata: preformatted_metadata,
45559    settings: preformatted_settings
45560  });
45561  
45562  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pullquote.js
45563  /**
45564   * WordPress dependencies
45565   */
45566  
45567  
45568  const pullquote = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45569    viewBox: "0 0 24 24",
45570    xmlns: "http://www.w3.org/2000/svg",
45571    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45572      d: "M18 8H6c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v4zM4 4v1.5h16V4H4zm0 16h16v-1.5H4V20z"
45573    })
45574  });
45575  /* harmony default export */ const library_pullquote = (pullquote);
45576  
45577  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js
45578  const SOLID_COLOR_CLASS = `is-style-solid-color`;
45579  
45580  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js
45581  /**
45582   * External dependencies
45583   */
45584  
45585  
45586  /**
45587   * WordPress dependencies
45588   */
45589  
45590  
45591  
45592  /**
45593   * Internal dependencies
45594   */
45595  
45596  
45597  
45598  const pullquote_deprecated_blockAttributes = {
45599    value: {
45600      type: 'string',
45601      source: 'html',
45602      selector: 'blockquote',
45603      multiline: 'p'
45604    },
45605    citation: {
45606      type: 'string',
45607      source: 'html',
45608      selector: 'cite',
45609      default: ''
45610    },
45611    mainColor: {
45612      type: 'string'
45613    },
45614    customMainColor: {
45615      type: 'string'
45616    },
45617    textColor: {
45618      type: 'string'
45619    },
45620    customTextColor: {
45621      type: 'string'
45622    }
45623  };
45624  function parseBorderColor(styleString) {
45625    if (!styleString) {
45626      return;
45627    }
45628    const matches = styleString.match(/border-color:([^;]+)[;]?/);
45629    if (matches && matches[1]) {
45630      return matches[1];
45631    }
45632  }
45633  function multilineToInline(value) {
45634    value = value || `<p></p>`;
45635    const padded = `</p>$value}<p>`;
45636    const values = padded.split(`</p><p>`);
45637    values.shift();
45638    values.pop();
45639    return values.join('<br>');
45640  }
45641  const pullquote_deprecated_v5 = {
45642    attributes: {
45643      value: {
45644        type: 'string',
45645        source: 'html',
45646        selector: 'blockquote',
45647        multiline: 'p',
45648        role: 'content'
45649      },
45650      citation: {
45651        type: 'string',
45652        source: 'html',
45653        selector: 'cite',
45654        default: '',
45655        role: 'content'
45656      },
45657      textAlign: {
45658        type: 'string'
45659      }
45660    },
45661    save({
45662      attributes
45663    }) {
45664      const {
45665        textAlign,
45666        citation,
45667        value
45668      } = attributes;
45669      const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
45670      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
45671        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
45672          className: dist_clsx({
45673            [`has-text-align-$textAlign}`]: textAlign
45674          })
45675        }),
45676        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
45677          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45678            value: value,
45679            multiline: true
45680          }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45681            tagName: "cite",
45682            value: citation
45683          })]
45684        })
45685      });
45686    },
45687    migrate({
45688      value,
45689      ...attributes
45690    }) {
45691      return {
45692        value: multilineToInline(value),
45693        ...attributes
45694      };
45695    }
45696  };
45697  
45698  // TODO: this is ripe for a bit of a clean up according to the example in https://developer.wordpress.org/block-editor/reference-guides/block-api/block-deprecation/#example
45699  
45700  const pullquote_deprecated_v4 = {
45701    attributes: {
45702      ...pullquote_deprecated_blockAttributes
45703    },
45704    save({
45705      attributes
45706    }) {
45707      const {
45708        mainColor,
45709        customMainColor,
45710        customTextColor,
45711        textColor,
45712        value,
45713        citation,
45714        className
45715      } = attributes;
45716      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
45717      let figureClasses, figureStyles;
45718  
45719      // Is solid color style
45720      if (isSolidColorStyle) {
45721        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
45722        figureClasses = dist_clsx({
45723          'has-background': backgroundClass || customMainColor,
45724          [backgroundClass]: backgroundClass
45725        });
45726        figureStyles = {
45727          backgroundColor: backgroundClass ? undefined : customMainColor
45728        };
45729        // Is normal style and a custom color is being used ( we can set a style directly with its value)
45730      } else if (customMainColor) {
45731        figureStyles = {
45732          borderColor: customMainColor
45733        };
45734      }
45735      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
45736      const blockquoteClasses = dist_clsx({
45737        'has-text-color': textColor || customTextColor,
45738        [blockquoteTextColorClass]: blockquoteTextColorClass
45739      });
45740      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
45741        color: customTextColor
45742      };
45743      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
45744        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
45745          className: figureClasses,
45746          style: figureStyles
45747        }),
45748        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
45749          className: blockquoteClasses,
45750          style: blockquoteStyles,
45751          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45752            value: value,
45753            multiline: true
45754          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45755            tagName: "cite",
45756            value: citation
45757          })]
45758        })
45759      });
45760    },
45761    migrate({
45762      value,
45763      className,
45764      mainColor,
45765      customMainColor,
45766      customTextColor,
45767      ...attributes
45768    }) {
45769      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
45770      let style;
45771      if (customMainColor) {
45772        if (!isSolidColorStyle) {
45773          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
45774          style = {
45775            border: {
45776              color: customMainColor
45777            }
45778          };
45779        } else {
45780          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
45781          style = {
45782            color: {
45783              background: customMainColor
45784            }
45785          };
45786        }
45787      }
45788  
45789      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
45790      if (customTextColor && style) {
45791        style.color = {
45792          ...style.color,
45793          text: customTextColor
45794        };
45795      }
45796      return {
45797        value: multilineToInline(value),
45798        className,
45799        backgroundColor: isSolidColorStyle ? mainColor : undefined,
45800        borderColor: isSolidColorStyle ? undefined : mainColor,
45801        textAlign: isSolidColorStyle ? 'left' : undefined,
45802        style,
45803        ...attributes
45804      };
45805    }
45806  };
45807  const pullquote_deprecated_v3 = {
45808    attributes: {
45809      ...pullquote_deprecated_blockAttributes,
45810      // figureStyle is an attribute that never existed.
45811      // We are using it as a way to access the styles previously applied to the figure.
45812      figureStyle: {
45813        source: 'attribute',
45814        selector: 'figure',
45815        attribute: 'style'
45816      }
45817    },
45818    save({
45819      attributes
45820    }) {
45821      const {
45822        mainColor,
45823        customMainColor,
45824        textColor,
45825        customTextColor,
45826        value,
45827        citation,
45828        className,
45829        figureStyle
45830      } = attributes;
45831      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
45832      let figureClasses, figureStyles;
45833  
45834      // Is solid color style
45835      if (isSolidColorStyle) {
45836        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
45837        figureClasses = dist_clsx({
45838          'has-background': backgroundClass || customMainColor,
45839          [backgroundClass]: backgroundClass
45840        });
45841        figureStyles = {
45842          backgroundColor: backgroundClass ? undefined : customMainColor
45843        };
45844        // Is normal style and a custom color is being used ( we can set a style directly with its value)
45845      } else if (customMainColor) {
45846        figureStyles = {
45847          borderColor: customMainColor
45848        };
45849        // If normal style and a named color are being used, we need to retrieve the color value to set the style,
45850        // as there is no expectation that themes create classes that set border colors.
45851      } else if (mainColor) {
45852        // Previously here we queried the color settings to know the color value
45853        // of a named color. This made the save function impure and the block was refactored,
45854        // because meanwhile a change in the editor made it impossible to query color settings in the save function.
45855        // Here instead of querying the color settings to know the color value, we retrieve the value
45856        // directly from the style previously serialized.
45857        const borderColor = parseBorderColor(figureStyle);
45858        figureStyles = {
45859          borderColor
45860        };
45861      }
45862      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
45863      const blockquoteClasses = (textColor || customTextColor) && dist_clsx('has-text-color', {
45864        [blockquoteTextColorClass]: blockquoteTextColorClass
45865      });
45866      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
45867        color: customTextColor
45868      };
45869      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
45870        className: figureClasses,
45871        style: figureStyles,
45872        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
45873          className: blockquoteClasses,
45874          style: blockquoteStyles,
45875          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45876            value: value,
45877            multiline: true
45878          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
45879            tagName: "cite",
45880            value: citation
45881          })]
45882        })
45883      });
45884    },
45885    migrate({
45886      value,
45887      className,
45888      figureStyle,
45889      mainColor,
45890      customMainColor,
45891      customTextColor,
45892      ...attributes
45893    }) {
45894      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
45895      let style;
45896      if (customMainColor) {
45897        if (!isSolidColorStyle) {
45898          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
45899          style = {
45900            border: {
45901              color: customMainColor
45902            }
45903          };
45904        } else {
45905          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
45906          style = {
45907            color: {
45908              background: customMainColor
45909            }
45910          };
45911        }
45912      }
45913  
45914      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
45915      if (customTextColor && style) {
45916        style.color = {
45917          ...style.color,
45918          text: customTextColor
45919        };
45920      }
45921      // If is the default style, and a main color is set,
45922      // migrate the main color value into a custom border color.
45923      // The custom border color value is retrieved by parsing the figure styles.
45924      if (!isSolidColorStyle && mainColor && figureStyle) {
45925        const borderColor = parseBorderColor(figureStyle);
45926        if (borderColor) {
45927          return {
45928            value: multilineToInline(value),
45929            ...attributes,
45930            className,
45931            // Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style.
45932            style: {
45933              border: {
45934                color: borderColor
45935              }
45936            }
45937          };
45938        }
45939      }
45940      return {
45941        value: multilineToInline(value),
45942        className,
45943        backgroundColor: isSolidColorStyle ? mainColor : undefined,
45944        borderColor: isSolidColorStyle ? undefined : mainColor,
45945        textAlign: isSolidColorStyle ? 'left' : undefined,
45946        style,
45947        ...attributes
45948      };
45949    }
45950  };
45951  const pullquote_deprecated_v2 = {
45952    attributes: pullquote_deprecated_blockAttributes,
45953    save({
45954      attributes
45955    }) {
45956      const {
45957        mainColor,
45958        customMainColor,
45959        textColor,
45960        customTextColor,
45961        value,
45962        citation,
45963        className
45964      } = attributes;
45965      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
45966      let figureClass, figureStyles;
45967      // Is solid color style
45968      if (isSolidColorStyle) {
45969        figureClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
45970        if (!figureClass) {
45971          figureStyles = {
45972            backgroundColor: customMainColor
45973          };
45974        }
45975        // Is normal style and a custom color is being used ( we can set a style directly with its value)
45976      } else if (customMainColor) {
45977        figureStyles = {
45978          borderColor: customMainColor
45979        };
45980        // Is normal style and a named color is being used, we need to retrieve the color value to set the style,
45981        // as there is no expectation that themes create classes that set border colors.
45982      } else if (mainColor) {
45983        var _select$getSettings$c;
45984        const colors = (_select$getSettings$c = (0,external_wp_data_namespaceObject.select)(external_wp_blockEditor_namespaceObject.store).getSettings().colors) !== null && _select$getSettings$c !== void 0 ? _select$getSettings$c : [];
45985        const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colors, mainColor);
45986        figureStyles = {
45987          borderColor: colorObject.color
45988        };
45989      }
45990      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
45991      const blockquoteClasses = textColor || customTextColor ? dist_clsx('has-text-color', {
45992        [blockquoteTextColorClass]: blockquoteTextColorClass
45993      }) : undefined;
45994      const blockquoteStyle = blockquoteTextColorClass ? undefined : {
45995        color: customTextColor
45996      };
45997      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
45998        className: figureClass,
45999        style: figureStyles,
46000        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
46001          className: blockquoteClasses,
46002          style: blockquoteStyle,
46003          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46004            value: value,
46005            multiline: true
46006          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46007            tagName: "cite",
46008            value: citation
46009          })]
46010        })
46011      });
46012    },
46013    migrate({
46014      value,
46015      className,
46016      mainColor,
46017      customMainColor,
46018      customTextColor,
46019      ...attributes
46020    }) {
46021      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
46022      let style = {};
46023      if (customMainColor) {
46024        if (!isSolidColorStyle) {
46025          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
46026          style = {
46027            border: {
46028              color: customMainColor
46029            }
46030          };
46031        } else {
46032          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
46033          style = {
46034            color: {
46035              background: customMainColor
46036            }
46037          };
46038        }
46039      }
46040  
46041      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
46042      if (customTextColor && style) {
46043        style.color = {
46044          ...style.color,
46045          text: customTextColor
46046        };
46047      }
46048      return {
46049        value: multilineToInline(value),
46050        className,
46051        backgroundColor: isSolidColorStyle ? mainColor : undefined,
46052        borderColor: isSolidColorStyle ? undefined : mainColor,
46053        textAlign: isSolidColorStyle ? 'left' : undefined,
46054        style,
46055        ...attributes
46056      };
46057    }
46058  };
46059  const pullquote_deprecated_v1 = {
46060    attributes: {
46061      ...pullquote_deprecated_blockAttributes
46062    },
46063    save({
46064      attributes
46065    }) {
46066      const {
46067        value,
46068        citation
46069      } = attributes;
46070      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
46071        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46072          value: value,
46073          multiline: true
46074        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46075          tagName: "cite",
46076          value: citation
46077        })]
46078      });
46079    },
46080    migrate({
46081      value,
46082      ...attributes
46083    }) {
46084      return {
46085        value: multilineToInline(value),
46086        ...attributes
46087      };
46088    }
46089  };
46090  const deprecated_v0 = {
46091    attributes: {
46092      ...pullquote_deprecated_blockAttributes,
46093      citation: {
46094        type: 'string',
46095        source: 'html',
46096        selector: 'footer'
46097      },
46098      align: {
46099        type: 'string',
46100        default: 'none'
46101      }
46102    },
46103    save({
46104      attributes
46105    }) {
46106      const {
46107        value,
46108        citation,
46109        align
46110      } = attributes;
46111      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
46112        className: `align$align}`,
46113        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46114          value: value,
46115          multiline: true
46116        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46117          tagName: "footer",
46118          value: citation
46119        })]
46120      });
46121    },
46122    migrate({
46123      value,
46124      ...attributes
46125    }) {
46126      return {
46127        value: multilineToInline(value),
46128        ...attributes
46129      };
46130    }
46131  };
46132  
46133  /**
46134   * New deprecations need to be placed first
46135   * for them to have higher priority.
46136   *
46137   * Old deprecations may need to be updated as well.
46138   *
46139   * See block-deprecation.md
46140   */
46141  /* harmony default export */ const pullquote_deprecated = ([pullquote_deprecated_v5, pullquote_deprecated_v4, pullquote_deprecated_v3, pullquote_deprecated_v2, pullquote_deprecated_v1, deprecated_v0]);
46142  
46143  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js
46144  const Figure = 'figure';
46145  
46146  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js
46147  const BlockQuote = 'blockquote';
46148  
46149  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js
46150  /**
46151   * External dependencies
46152   */
46153  
46154  
46155  /**
46156   * WordPress dependencies
46157   */
46158  
46159  
46160  
46161  
46162  
46163  /**
46164   * Internal dependencies
46165   */
46166  
46167  
46168  
46169  
46170  
46171  const isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
46172  function PullQuoteEdit({
46173    attributes,
46174    setAttributes,
46175    isSelected,
46176    insertBlocksAfter
46177  }) {
46178    const {
46179      textAlign,
46180      citation,
46181      value
46182    } = attributes;
46183    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46184      className: dist_clsx({
46185        [`has-text-align-$textAlign}`]: textAlign
46186      })
46187    });
46188    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected;
46189    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46190      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
46191        group: "block",
46192        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
46193          value: textAlign,
46194          onChange: nextAlign => {
46195            setAttributes({
46196              textAlign: nextAlign
46197            });
46198          }
46199        })
46200      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Figure, {
46201        ...blockProps,
46202        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(BlockQuote, {
46203          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
46204            identifier: "value",
46205            tagName: "p",
46206            value: value,
46207            onChange: nextValue => setAttributes({
46208              value: nextValue
46209            }),
46210            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote text'),
46211            placeholder:
46212            // translators: placeholder text used for the quote
46213            (0,external_wp_i18n_namespaceObject.__)('Add quote'),
46214            textAlign: "center"
46215          }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
46216            identifier: "citation",
46217            tagName: isWebPlatform ? 'cite' : undefined,
46218            style: {
46219              display: 'block'
46220            },
46221            value: citation,
46222            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote citation text'),
46223            placeholder:
46224            // translators: placeholder text used for the citation
46225            (0,external_wp_i18n_namespaceObject.__)('Add citation'),
46226            onChange: nextCitation => setAttributes({
46227              citation: nextCitation
46228            }),
46229            className: "wp-block-pullquote__citation",
46230            __unstableMobileNoFocusOnMount: true,
46231            textAlign: "center",
46232            __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
46233          })]
46234        })
46235      })]
46236    });
46237  }
46238  /* harmony default export */ const pullquote_edit = (PullQuoteEdit);
46239  
46240  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/save.js
46241  /**
46242   * External dependencies
46243   */
46244  
46245  
46246  /**
46247   * WordPress dependencies
46248   */
46249  
46250  
46251  
46252  function pullquote_save_save({
46253    attributes
46254  }) {
46255    const {
46256      textAlign,
46257      citation,
46258      value
46259    } = attributes;
46260    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
46261    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
46262      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
46263        className: dist_clsx({
46264          [`has-text-align-$textAlign}`]: textAlign
46265        })
46266      }),
46267      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
46268        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46269          tagName: "p",
46270          value: value
46271        }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46272          tagName: "cite",
46273          value: citation
46274        })]
46275      })
46276    });
46277  }
46278  
46279  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js
46280  /**
46281   * WordPress dependencies
46282   */
46283  
46284  
46285  const pullquote_transforms_transforms = {
46286    from: [{
46287      type: 'block',
46288      isMultiBlock: true,
46289      blocks: ['core/paragraph'],
46290      transform: attributes => {
46291        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
46292          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
46293            value: (0,external_wp_richText_namespaceObject.join)(attributes.map(({
46294              content
46295            }) => (0,external_wp_richText_namespaceObject.create)({
46296              html: content
46297            })), '\n')
46298          }),
46299          anchor: attributes.anchor
46300        });
46301      }
46302    }, {
46303      type: 'block',
46304      blocks: ['core/heading'],
46305      transform: ({
46306        content,
46307        anchor
46308      }) => {
46309        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
46310          value: content,
46311          anchor
46312        });
46313      }
46314    }],
46315    to: [{
46316      type: 'block',
46317      blocks: ['core/paragraph'],
46318      transform: ({
46319        value,
46320        citation
46321      }) => {
46322        const paragraphs = [];
46323        if (value) {
46324          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
46325            content: value
46326          }));
46327        }
46328        if (citation) {
46329          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
46330            content: citation
46331          }));
46332        }
46333        if (paragraphs.length === 0) {
46334          return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
46335            content: ''
46336          });
46337        }
46338        return paragraphs;
46339      }
46340    }, {
46341      type: 'block',
46342      blocks: ['core/heading'],
46343      transform: ({
46344        value,
46345        citation
46346      }) => {
46347        // If there is no pullquote content, use the citation as the
46348        // content of the resulting heading. A nonexistent citation
46349        // will result in an empty heading.
46350        if (!value) {
46351          return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
46352            content: citation
46353          });
46354        }
46355        const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
46356          content: value
46357        });
46358        if (!citation) {
46359          return headingBlock;
46360        }
46361        return [headingBlock, (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
46362          content: citation
46363        })];
46364      }
46365    }]
46366  };
46367  /* harmony default export */ const pullquote_transforms = (pullquote_transforms_transforms);
46368  
46369  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
46370  /**
46371   * WordPress dependencies
46372   */
46373  
46374  
46375  
46376  /**
46377   * Internal dependencies
46378   */
46379  
46380  
46381  
46382  const pullquote_metadata = {
46383    $schema: "https://schemas.wp.org/trunk/block.json",
46384    apiVersion: 3,
46385    name: "core/pullquote",
46386    title: "Pullquote",
46387    category: "text",
46388    description: "Give special visual emphasis to a quote from your text.",
46389    textdomain: "default",
46390    attributes: {
46391      value: {
46392        type: "rich-text",
46393        source: "rich-text",
46394        selector: "p",
46395        role: "content"
46396      },
46397      citation: {
46398        type: "rich-text",
46399        source: "rich-text",
46400        selector: "cite",
46401        role: "content"
46402      },
46403      textAlign: {
46404        type: "string"
46405      }
46406    },
46407    supports: {
46408      anchor: true,
46409      align: ["left", "right", "wide", "full"],
46410      background: {
46411        backgroundImage: true,
46412        backgroundSize: true,
46413        __experimentalDefaultControls: {
46414          backgroundImage: true
46415        }
46416      },
46417      color: {
46418        gradients: true,
46419        background: true,
46420        link: true,
46421        __experimentalDefaultControls: {
46422          background: true,
46423          text: true
46424        }
46425      },
46426      dimensions: {
46427        minHeight: true,
46428        __experimentalDefaultControls: {
46429          minHeight: false
46430        }
46431      },
46432      spacing: {
46433        margin: true,
46434        padding: true
46435      },
46436      typography: {
46437        fontSize: true,
46438        lineHeight: true,
46439        __experimentalFontFamily: true,
46440        __experimentalFontWeight: true,
46441        __experimentalFontStyle: true,
46442        __experimentalTextTransform: true,
46443        __experimentalTextDecoration: true,
46444        __experimentalLetterSpacing: true,
46445        __experimentalDefaultControls: {
46446          fontSize: true
46447        }
46448      },
46449      __experimentalBorder: {
46450        color: true,
46451        radius: true,
46452        style: true,
46453        width: true,
46454        __experimentalDefaultControls: {
46455          color: true,
46456          radius: true,
46457          style: true,
46458          width: true
46459        }
46460      },
46461      __experimentalStyle: {
46462        typography: {
46463          fontSize: "1.5em",
46464          lineHeight: "1.6"
46465        }
46466      },
46467      interactivity: {
46468        clientNavigation: true
46469      }
46470    },
46471    editorStyle: "wp-block-pullquote-editor",
46472    style: "wp-block-pullquote"
46473  };
46474  
46475  
46476  const {
46477    name: pullquote_name
46478  } = pullquote_metadata;
46479  
46480  const pullquote_settings = {
46481    icon: library_pullquote,
46482    example: {
46483      attributes: {
46484        value:
46485        // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.
46486        (0,external_wp_i18n_namespaceObject.__)('One of the hardest things to do in technology is disrupt yourself.'),
46487        citation: (0,external_wp_i18n_namespaceObject.__)('Matt Mullenweg')
46488      }
46489    },
46490    transforms: pullquote_transforms,
46491    edit: pullquote_edit,
46492    save: pullquote_save_save,
46493    deprecated: pullquote_deprecated
46494  };
46495  const pullquote_init = () => initBlock({
46496    name: pullquote_name,
46497    metadata: pullquote_metadata,
46498    settings: pullquote_settings
46499  });
46500  
46501  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/loop.js
46502  /**
46503   * WordPress dependencies
46504   */
46505  
46506  
46507  const loop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46508    viewBox: "0 0 24 24",
46509    xmlns: "http://www.w3.org/2000/svg",
46510    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46511      d: "M18.1823 11.6392C18.1823 13.0804 17.0139 14.2487 15.5727 14.2487C14.3579 14.2487 13.335 13.4179 13.0453 12.2922L13.0377 12.2625L13.0278 12.2335L12.3985 10.377L12.3942 10.3785C11.8571 8.64997 10.246 7.39405 8.33961 7.39405C5.99509 7.39405 4.09448 9.29465 4.09448 11.6392C4.09448 13.9837 5.99509 15.8843 8.33961 15.8843C8.88499 15.8843 9.40822 15.781 9.88943 15.5923L9.29212 14.0697C8.99812 14.185 8.67729 14.2487 8.33961 14.2487C6.89838 14.2487 5.73003 13.0804 5.73003 11.6392C5.73003 10.1979 6.89838 9.02959 8.33961 9.02959C9.55444 9.02959 10.5773 9.86046 10.867 10.9862L10.8772 10.9836L11.4695 12.7311C11.9515 14.546 13.6048 15.8843 15.5727 15.8843C17.9172 15.8843 19.8178 13.9837 19.8178 11.6392C19.8178 9.29465 17.9172 7.39404 15.5727 7.39404C15.0287 7.39404 14.5066 7.4968 14.0264 7.6847L14.6223 9.20781C14.9158 9.093 15.2358 9.02959 15.5727 9.02959C17.0139 9.02959 18.1823 10.1979 18.1823 11.6392Z"
46512    })
46513  });
46514  /* harmony default export */ const library_loop = (loop);
46515  
46516  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/utils.js
46517  /**
46518   * WordPress dependencies
46519   */
46520  
46521  
46522  
46523  
46524  
46525  
46526  
46527  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
46528  
46529  /**
46530   * @typedef IHasNameAndId
46531   * @property {string|number} id   The entity's id.
46532   * @property {string}        name The entity's name.
46533   */
46534  
46535  /**
46536   * The object used in Query block that contains info and helper mappings
46537   * from an array of IHasNameAndId objects.
46538   *
46539   * @typedef {Object} QueryEntitiesInfo
46540   * @property {IHasNameAndId[]}               entities  The array of entities.
46541   * @property {Object<string, IHasNameAndId>} mapById   Object mapping with the id as key and the entity as value.
46542   * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.
46543   * @property {string[]}                      names     Array with the entities' names.
46544   */
46545  
46546  /**
46547   * Returns a helper object with mapping from Objects that implement
46548   * the `IHasNameAndId` interface. The returned object is used for
46549   * integration with `FormTokenField` component.
46550   *
46551   * @param {IHasNameAndId[]} entities The entities to extract of helper object.
46552   * @return {QueryEntitiesInfo} The object with the entities information.
46553   */
46554  const getEntitiesInfo = entities => {
46555    const mapping = entities?.reduce((accumulator, entity) => {
46556      const {
46557        mapById,
46558        mapByName,
46559        names
46560      } = accumulator;
46561      mapById[entity.id] = entity;
46562      mapByName[entity.name] = entity;
46563      names.push(entity.name);
46564      return accumulator;
46565    }, {
46566      mapById: {},
46567      mapByName: {},
46568      names: []
46569    });
46570    return {
46571      entities,
46572      ...mapping
46573    };
46574  };
46575  
46576  /**
46577   * Helper util to return a value from a certain path of the object.
46578   * Path is specified as a string of properties, separated by dots,
46579   * for example: "parent.child".
46580   *
46581   * @param {Object} object Input object.
46582   * @param {string} path   Path to the object property.
46583   * @return {*} Value of the object property at the specified path.
46584   */
46585  const getValueFromObjectPath = (object, path) => {
46586    const normalizedPath = path.split('.');
46587    let value = object;
46588    normalizedPath.forEach(fieldName => {
46589      value = value?.[fieldName];
46590    });
46591    return value;
46592  };
46593  
46594  /**
46595   * Helper util to map records to add a `name` prop from a
46596   * provided path, in order to handle all entities in the same
46597   * fashion(implementing`IHasNameAndId` interface).
46598   *
46599   * @param {Object[]} entities The array of entities.
46600   * @param {string}   path     The path to map a `name` property from the entity.
46601   * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.
46602   */
46603  const mapToIHasNameAndId = (entities, path) => {
46604    return (entities || []).map(entity => ({
46605      ...entity,
46606      name: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(getValueFromObjectPath(entity, path))
46607    }));
46608  };
46609  
46610  /**
46611   * Returns a helper object that contains:
46612   * 1. An `options` object from the available post types, to be passed to a `SelectControl`.
46613   * 2. A helper map with available taxonomies per post type.
46614   * 3. A helper map with post format support per post type.
46615   *
46616   * @return {Object} The helper object related to post types.
46617   */
46618  const usePostTypes = () => {
46619    const postTypes = (0,external_wp_data_namespaceObject.useSelect)(select => {
46620      const {
46621        getPostTypes
46622      } = select(external_wp_coreData_namespaceObject.store);
46623      const excludedPostTypes = ['attachment'];
46624      const filteredPostTypes = getPostTypes({
46625        per_page: -1
46626      })?.filter(({
46627        viewable,
46628        slug
46629      }) => viewable && !excludedPostTypes.includes(slug));
46630      return filteredPostTypes;
46631    }, []);
46632    const postTypesTaxonomiesMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
46633      if (!postTypes?.length) {
46634        return;
46635      }
46636      return postTypes.reduce((accumulator, type) => {
46637        accumulator[type.slug] = type.taxonomies;
46638        return accumulator;
46639      }, {});
46640    }, [postTypes]);
46641    const postTypesSelectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => (postTypes || []).map(({
46642      labels,
46643      slug
46644    }) => ({
46645      label: labels.singular_name,
46646      value: slug
46647    })), [postTypes]);
46648    const postTypeFormatSupportMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
46649      if (!postTypes?.length) {
46650        return {};
46651      }
46652      return postTypes.reduce((accumulator, type) => {
46653        accumulator[type.slug] = type.supports?.['post-formats'] || false;
46654        return accumulator;
46655      }, {});
46656    }, [postTypes]);
46657    return {
46658      postTypesTaxonomiesMap,
46659      postTypesSelectOptions,
46660      postTypeFormatSupportMap
46661    };
46662  };
46663  
46664  /**
46665   * Hook that returns the taxonomies associated with a specific post type.
46666   *
46667   * @param {string} postType The post type from which to retrieve the associated taxonomies.
46668   * @return {Object[]} An array of the associated taxonomies.
46669   */
46670  const useTaxonomies = postType => {
46671    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
46672      const {
46673        getTaxonomies,
46674        getPostType
46675      } = select(external_wp_coreData_namespaceObject.store);
46676      // Does the post type have taxonomies?
46677      if (getPostType(postType)?.taxonomies?.length > 0) {
46678        return getTaxonomies({
46679          type: postType,
46680          per_page: -1
46681        });
46682      }
46683      return [];
46684    }, [postType]);
46685    return (0,external_wp_element_namespaceObject.useMemo)(() => {
46686      return taxonomies?.filter(({
46687        visibility
46688      }) => !!visibility?.publicly_queryable);
46689    }, [taxonomies]);
46690  };
46691  
46692  /**
46693   * Hook that returns whether a specific post type is hierarchical.
46694   *
46695   * @param {string} postType The post type to check.
46696   * @return {boolean} Whether a specific post type is hierarchical.
46697   */
46698  function useIsPostTypeHierarchical(postType) {
46699    return (0,external_wp_data_namespaceObject.useSelect)(select => {
46700      const type = select(external_wp_coreData_namespaceObject.store).getPostType(postType);
46701      return type?.viewable && type?.hierarchical;
46702    }, [postType]);
46703  }
46704  
46705  /**
46706   * Hook that returns the query properties' names defined by the active
46707   * block variation, to determine which block's filters to show.
46708   *
46709   * @param {Object} attributes Block attributes.
46710   * @return {string[]} An array of the query attributes.
46711   */
46712  function useAllowedControls(attributes) {
46713    return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getActiveBlockVariation('core/query', attributes)?.allowedControls, [attributes]);
46714  }
46715  function isControlAllowed(allowedControls, key) {
46716    // Every controls is allowed if the list is not defined.
46717    if (!allowedControls) {
46718      return true;
46719    }
46720    return allowedControls.includes(key);
46721  }
46722  
46723  /**
46724   * Clones a pattern's blocks and then recurses over that list of blocks,
46725   * transforming them to retain some `query` attribute properties.
46726   * For now we retain the `postType` and `inherit` properties as they are
46727   * fundamental for the expected functionality of the block and don't affect
46728   * its design and presentation.
46729   *
46730   * Returns the cloned/transformed blocks and array of existing Query Loop
46731   * client ids for further manipulation, in order to avoid multiple recursions.
46732   *
46733   * @param {WPBlock[]}        blocks               The list of blocks to look through and transform(mutate).
46734   * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.
46735   * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.
46736   */
46737  const getTransformedBlocksFromPattern = (blocks, queryBlockAttributes) => {
46738    const {
46739      query: {
46740        postType,
46741        inherit
46742      },
46743      namespace
46744    } = queryBlockAttributes;
46745    const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block));
46746    const queryClientIds = [];
46747    const blocksQueue = [...clonedBlocks];
46748    while (blocksQueue.length > 0) {
46749      const block = blocksQueue.shift();
46750      if (block.name === 'core/query') {
46751        block.attributes.query = {
46752          ...block.attributes.query,
46753          postType,
46754          inherit
46755        };
46756        if (namespace) {
46757          block.attributes.namespace = namespace;
46758        }
46759        queryClientIds.push(block.clientId);
46760      }
46761      block.innerBlocks?.forEach(innerBlock => {
46762        blocksQueue.push(innerBlock);
46763      });
46764    }
46765    return {
46766      newBlocks: clonedBlocks,
46767      queryClientIds
46768    };
46769  };
46770  
46771  /**
46772   * Helper hook that determines if there is an active variation of the block
46773   * and if there are available specific patterns for this variation.
46774   * If there are, these patterns are going to be the only ones suggested to
46775   * the user in setup and replace flow, without including the default ones
46776   * for Query Loop.
46777   *
46778   * If there are no such patterns, the default ones for Query Loop are going
46779   * to be suggested.
46780   *
46781   * @param {string} clientId   The block's client ID.
46782   * @param {Object} attributes The block's attributes.
46783   * @return {string} The block name to be used in the patterns suggestions.
46784   */
46785  function useBlockNameForPatterns(clientId, attributes) {
46786    const activeVariationName = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getActiveBlockVariation('core/query', attributes)?.name, [attributes]);
46787    const blockName = `core/query/$activeVariationName}`;
46788    const hasActiveVariationPatterns = (0,external_wp_data_namespaceObject.useSelect)(select => {
46789      if (!activeVariationName) {
46790        return false;
46791      }
46792      const {
46793        getBlockRootClientId,
46794        getPatternsByBlockTypes
46795      } = select(external_wp_blockEditor_namespaceObject.store);
46796      const rootClientId = getBlockRootClientId(clientId);
46797      const activePatterns = getPatternsByBlockTypes(blockName, rootClientId);
46798      return activePatterns.length > 0;
46799    }, [clientId, activeVariationName, blockName]);
46800    return hasActiveVariationPatterns ? blockName : 'core/query';
46801  }
46802  
46803  /**
46804   * Helper hook that determines if there is an active variation of the block
46805   * and if there are available specific scoped `block` variations connected with
46806   * this variation.
46807   *
46808   * If there are, these variations are going to be the only ones suggested
46809   * to the user in setup flow when clicking to `start blank`, without including
46810   * the default ones for Query Loop.
46811   *
46812   * If there are no such scoped `block` variations, the default ones for Query
46813   * Loop are going to be suggested.
46814   *
46815   * The way we determine such variations is with the convention that they have the `namespace`
46816   * attribute defined as an array. This array should contain the names(`name` property) of any
46817   * variations they want to be connected to.
46818   * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,
46819   * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.
46820   * If the user selects this variation, the `namespace` attribute will be overridden by the
46821   * main `inserter` variation.
46822   *
46823   * @param {Object} attributes The block's attributes.
46824   * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.
46825   */
46826  function useScopedBlockVariations(attributes) {
46827    const {
46828      activeVariationName,
46829      blockVariations
46830    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
46831      const {
46832        getActiveBlockVariation,
46833        getBlockVariations
46834      } = select(external_wp_blocks_namespaceObject.store);
46835      return {
46836        activeVariationName: getActiveBlockVariation('core/query', attributes)?.name,
46837        blockVariations: getBlockVariations('core/query', 'block')
46838      };
46839    }, [attributes]);
46840    const variations = (0,external_wp_element_namespaceObject.useMemo)(() => {
46841      // Filter out the variations that have defined a `namespace` attribute,
46842      // which means they are 'connected' to specific variations of the block.
46843      const isNotConnected = variation => !variation.attributes?.namespace;
46844      if (!activeVariationName) {
46845        return blockVariations.filter(isNotConnected);
46846      }
46847      const connectedVariations = blockVariations.filter(variation => variation.attributes?.namespace?.includes(activeVariationName));
46848      if (!!connectedVariations.length) {
46849        return connectedVariations;
46850      }
46851      return blockVariations.filter(isNotConnected);
46852    }, [activeVariationName, blockVariations]);
46853    return variations;
46854  }
46855  
46856  /**
46857   * Hook that returns the block patterns for a specific block type.
46858   *
46859   * @param {string} clientId The block's client ID.
46860   * @param {string} name     The block type name.
46861   * @return {Object[]} An array of valid block patterns.
46862   */
46863  const usePatterns = (clientId, name) => {
46864    return (0,external_wp_data_namespaceObject.useSelect)(select => {
46865      const {
46866        getBlockRootClientId,
46867        getPatternsByBlockTypes
46868      } = select(external_wp_blockEditor_namespaceObject.store);
46869      const rootClientId = getBlockRootClientId(clientId);
46870      return getPatternsByBlockTypes(name, rootClientId);
46871    }, [name, clientId]);
46872  };
46873  
46874  /**
46875   * The object returned by useUnsupportedBlocks with info about the type of
46876   * unsupported blocks present inside the Query block.
46877   *
46878   * @typedef  {Object}  UnsupportedBlocksInfo
46879   * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.
46880   * @property {boolean} hasPostContentBlock  True if a 'core/post-content' block is present.
46881   * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.
46882   */
46883  
46884  /**
46885   * Hook that returns an object with information about the unsupported blocks
46886   * present inside a Query Loop with the given `clientId`. The returned object
46887   * contains props that are true when a certain type of unsupported block is
46888   * present.
46889   *
46890   * @param {string} clientId The block's client ID.
46891   * @return {UnsupportedBlocksInfo} The object containing the information.
46892   */
46893  const useUnsupportedBlocks = clientId => {
46894    return (0,external_wp_data_namespaceObject.useSelect)(select => {
46895      const {
46896        getClientIdsOfDescendants,
46897        getBlockName
46898      } = select(external_wp_blockEditor_namespaceObject.store);
46899      const blocks = {};
46900      getClientIdsOfDescendants(clientId).forEach(descendantClientId => {
46901        const blockName = getBlockName(descendantClientId);
46902        /*
46903         * Client side navigation can be true in two states:
46904         *  - supports.interactivity = true;
46905         *  - supports.interactivity.clientNavigation = true;
46906         */
46907        const blockSupportsInteractivity = Object.is((0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'interactivity'), true);
46908        const blockSupportsInteractivityClientNavigation = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'interactivity.clientNavigation');
46909        const blockInteractivity = blockSupportsInteractivity || blockSupportsInteractivityClientNavigation;
46910        if (!blockInteractivity) {
46911          blocks.hasBlocksFromPlugins = true;
46912        } else if (blockName === 'core/post-content') {
46913          blocks.hasPostContentBlock = true;
46914        }
46915      });
46916      blocks.hasUnsupportedBlocks = blocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;
46917      return blocks;
46918    }, [clientId]);
46919  };
46920  
46921  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/enhanced-pagination-control.js
46922  /**
46923   * WordPress dependencies
46924   */
46925  
46926  
46927  
46928  /**
46929   * Internal dependencies
46930   */
46931  
46932  
46933  
46934  function EnhancedPaginationControl({
46935    enhancedPagination,
46936    setAttributes,
46937    clientId
46938  }) {
46939    const {
46940      hasUnsupportedBlocks
46941    } = useUnsupportedBlocks(clientId);
46942    const fullPageClientSideNavigation = window.__experimentalFullPageClientSideNavigation;
46943    let help = (0,external_wp_i18n_namespaceObject.__)('Browsing between pages requires a full page reload.');
46944    if (fullPageClientSideNavigation) {
46945      help = (0,external_wp_i18n_namespaceObject.__)('Experimental full-page client-side navigation setting enabled.');
46946    } else if (enhancedPagination) {
46947      help = (0,external_wp_i18n_namespaceObject.__)('Reload the full page—instead of just the posts list—when visitors navigate between pages.');
46948    } else if (hasUnsupportedBlocks) {
46949      help = (0,external_wp_i18n_namespaceObject.__)('Enhancement disabled because there are non-compatible blocks inside the Query block.');
46950    }
46951    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46952      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
46953        __nextHasNoMarginBottom: true,
46954        label: (0,external_wp_i18n_namespaceObject.__)('Reload full page'),
46955        help: help,
46956        checked: !enhancedPagination && !fullPageClientSideNavigation,
46957        disabled: hasUnsupportedBlocks || fullPageClientSideNavigation,
46958        onChange: value => {
46959          setAttributes({
46960            enhancedPagination: !value
46961          });
46962        }
46963      })
46964    });
46965  }
46966  
46967  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-toolbar.js
46968  /**
46969   * WordPress dependencies
46970   */
46971  
46972  
46973  
46974  /**
46975   * Internal dependencies
46976   */
46977  
46978  
46979  
46980  function QueryToolbar({
46981    openPatternSelectionModal,
46982    name,
46983    clientId
46984  }) {
46985    const hasPatterns = !!usePatterns(clientId, name).length;
46986    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46987      children: hasPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
46988        className: "wp-block-template-part__block-control-group",
46989        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
46990          onClick: openPatternSelectionModal,
46991          children: (0,external_wp_i18n_namespaceObject.__)('Replace')
46992        })
46993      })
46994    });
46995  }
46996  
46997  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/order-control.js
46998  /**
46999   * WordPress dependencies
47000   */
47001  
47002  
47003  
47004  const orderOptions = [{
47005    label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
47006    value: 'date/desc'
47007  }, {
47008    label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
47009    value: 'date/asc'
47010  }, {
47011    /* translators: Label for ordering posts by title in ascending order. */
47012    label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
47013    value: 'title/asc'
47014  }, {
47015    /* translators: Label for ordering posts by title in descending order. */
47016    label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
47017    value: 'title/desc'
47018  }];
47019  function OrderControl({
47020    order,
47021    orderBy,
47022    onChange
47023  }) {
47024    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
47025      __nextHasNoMarginBottom: true,
47026      __next40pxDefaultSize: true,
47027      label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
47028      value: `$orderBy}/$order}`,
47029      options: orderOptions,
47030      onChange: value => {
47031        const [newOrderBy, newOrder] = value.split('/');
47032        onChange({
47033          order: newOrder,
47034          orderBy: newOrderBy
47035        });
47036      }
47037    });
47038  }
47039  /* harmony default export */ const order_control = (OrderControl);
47040  
47041  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/author-control.js
47042  /**
47043   * WordPress dependencies
47044   */
47045  
47046  
47047  
47048  
47049  
47050  /**
47051   * Internal dependencies
47052   */
47053  
47054  
47055  const author_control_AUTHORS_QUERY = {
47056    who: 'authors',
47057    per_page: -1,
47058    _fields: 'id,name',
47059    context: 'view'
47060  };
47061  function AuthorControl({
47062    value,
47063    onChange
47064  }) {
47065    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
47066      const {
47067        getUsers
47068      } = select(external_wp_coreData_namespaceObject.store);
47069      return getUsers(author_control_AUTHORS_QUERY);
47070    }, []);
47071    if (!authorsList) {
47072      return null;
47073    }
47074    const authorsInfo = getEntitiesInfo(authorsList);
47075    /**
47076     * We need to normalize the value because the block operates on a
47077     * comma(`,`) separated string value and `FormTokenFiels` needs an
47078     * array.
47079     */
47080    const normalizedValue = !value ? [] : value.toString().split(',');
47081    // Returns only the existing authors ids. This prevents the component
47082    // from crashing in the editor, when non existing ids are provided.
47083    const sanitizedValue = normalizedValue.reduce((accumulator, authorId) => {
47084      const author = authorsInfo.mapById[authorId];
47085      if (author) {
47086        accumulator.push({
47087          id: authorId,
47088          value: author.name
47089        });
47090      }
47091      return accumulator;
47092    }, []);
47093    const getIdByValue = (entitiesMappedByName, authorValue) => {
47094      const id = authorValue?.id || entitiesMappedByName[authorValue]?.id;
47095      if (id) {
47096        return id;
47097      }
47098    };
47099    const onAuthorChange = newValue => {
47100      const ids = Array.from(newValue.reduce((accumulator, author) => {
47101        // Verify that new values point to existing entities.
47102        const id = getIdByValue(authorsInfo.mapByName, author);
47103        if (id) {
47104          accumulator.add(id);
47105        }
47106        return accumulator;
47107      }, new Set()));
47108      onChange({
47109        author: ids.join(',')
47110      });
47111    };
47112    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
47113      label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
47114      value: sanitizedValue,
47115      suggestions: authorsInfo.names,
47116      onChange: onAuthorChange,
47117      __experimentalShowHowTo: false,
47118      __nextHasNoMarginBottom: true,
47119      __next40pxDefaultSize: true
47120    });
47121  }
47122  /* harmony default export */ const author_control = (AuthorControl);
47123  
47124  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/parent-control.js
47125  /**
47126   * WordPress dependencies
47127   */
47128  
47129  
47130  
47131  
47132  
47133  
47134  
47135  /**
47136   * Internal dependencies
47137   */
47138  
47139  
47140  const parent_control_EMPTY_ARRAY = [];
47141  const BASE_QUERY = {
47142    order: 'asc',
47143    _fields: 'id,title',
47144    context: 'view'
47145  };
47146  function ParentControl({
47147    parents,
47148    postType,
47149    onChange
47150  }) {
47151    const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
47152    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(parent_control_EMPTY_ARRAY);
47153    const [suggestions, setSuggestions] = (0,external_wp_element_namespaceObject.useState)(parent_control_EMPTY_ARRAY);
47154    const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 250);
47155    const {
47156      searchResults,
47157      searchHasResolved
47158    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
47159      if (!search) {
47160        return {
47161          searchResults: parent_control_EMPTY_ARRAY,
47162          searchHasResolved: true
47163        };
47164      }
47165      const {
47166        getEntityRecords,
47167        hasFinishedResolution
47168      } = select(external_wp_coreData_namespaceObject.store);
47169      const selectorArgs = ['postType', postType, {
47170        ...BASE_QUERY,
47171        search,
47172        orderby: 'relevance',
47173        exclude: parents,
47174        per_page: 20
47175      }];
47176      return {
47177        searchResults: getEntityRecords(...selectorArgs),
47178        searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
47179      };
47180    }, [search, parents]);
47181    const currentParents = (0,external_wp_data_namespaceObject.useSelect)(select => {
47182      if (!parents?.length) {
47183        return parent_control_EMPTY_ARRAY;
47184      }
47185      const {
47186        getEntityRecords
47187      } = select(external_wp_coreData_namespaceObject.store);
47188      return getEntityRecords('postType', postType, {
47189        ...BASE_QUERY,
47190        include: parents,
47191        per_page: parents.length
47192      });
47193    }, [parents]);
47194    // Update the `value` state only after the selectors are resolved
47195    // to avoid emptying the input when we're changing parents.
47196    (0,external_wp_element_namespaceObject.useEffect)(() => {
47197      if (!parents?.length) {
47198        setValue(parent_control_EMPTY_ARRAY);
47199      }
47200      if (!currentParents?.length) {
47201        return;
47202      }
47203      const currentParentsInfo = getEntitiesInfo(mapToIHasNameAndId(currentParents, 'title.rendered'));
47204      // Returns only the existing entity ids. This prevents the component
47205      // from crashing in the editor, when non existing ids are provided.
47206      const sanitizedValue = parents.reduce((accumulator, id) => {
47207        const entity = currentParentsInfo.mapById[id];
47208        if (entity) {
47209          accumulator.push({
47210            id,
47211            value: entity.name
47212          });
47213        }
47214        return accumulator;
47215      }, []);
47216      setValue(sanitizedValue);
47217    }, [parents, currentParents]);
47218    const entitiesInfo = (0,external_wp_element_namespaceObject.useMemo)(() => {
47219      if (!searchResults?.length) {
47220        return parent_control_EMPTY_ARRAY;
47221      }
47222      return getEntitiesInfo(mapToIHasNameAndId(searchResults, 'title.rendered'));
47223    }, [searchResults]);
47224    // Update suggestions only when the query has resolved.
47225    (0,external_wp_element_namespaceObject.useEffect)(() => {
47226      if (!searchHasResolved) {
47227        return;
47228      }
47229      setSuggestions(entitiesInfo.names);
47230    }, [entitiesInfo.names, searchHasResolved]);
47231    const getIdByValue = (entitiesMappedByName, entity) => {
47232      const id = entity?.id || entitiesMappedByName?.[entity]?.id;
47233      if (id) {
47234        return id;
47235      }
47236    };
47237    const onParentChange = newValue => {
47238      const ids = Array.from(newValue.reduce((accumulator, entity) => {
47239        // Verify that new values point to existing entities.
47240        const id = getIdByValue(entitiesInfo.mapByName, entity);
47241        if (id) {
47242          accumulator.add(id);
47243        }
47244        return accumulator;
47245      }, new Set()));
47246      setSuggestions(parent_control_EMPTY_ARRAY);
47247      onChange({
47248        parents: ids
47249      });
47250    };
47251    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
47252      __next40pxDefaultSize: true,
47253      label: (0,external_wp_i18n_namespaceObject.__)('Parents'),
47254      value: value,
47255      onInputChange: debouncedSearch,
47256      suggestions: suggestions,
47257      onChange: onParentChange,
47258      __experimentalShowHowTo: false,
47259      __nextHasNoMarginBottom: true
47260    });
47261  }
47262  /* harmony default export */ const parent_control = (ParentControl);
47263  
47264  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/taxonomy-controls.js
47265  /**
47266   * WordPress dependencies
47267   */
47268  
47269  
47270  
47271  
47272  
47273  
47274  
47275  /**
47276   * Internal dependencies
47277   */
47278  
47279  
47280  const taxonomy_controls_EMPTY_ARRAY = [];
47281  const taxonomy_controls_BASE_QUERY = {
47282    order: 'asc',
47283    _fields: 'id,name',
47284    context: 'view'
47285  };
47286  
47287  // Helper function to get the term id based on user input in terms `FormTokenField`.
47288  const getTermIdByTermValue = (terms, termValue) => {
47289    // First we check for exact match by `term.id` or case sensitive `term.name` match.
47290    const termId = termValue?.id || terms?.find(term => term.name === termValue)?.id;
47291    if (termId) {
47292      return termId;
47293    }
47294  
47295    /**
47296     * Here we make an extra check for entered terms in a non case sensitive way,
47297     * to match user expectations, due to `FormTokenField` behaviour that shows
47298     * suggestions which are case insensitive.
47299     *
47300     * Although WP tries to discourage users to add terms with the same name (case insensitive),
47301     * it's still possible if you manually change the name, as long as the terms have different slugs.
47302     * In this edge case we always apply the first match from the terms list.
47303     */
47304    const termValueLower = termValue.toLocaleLowerCase();
47305    return terms?.find(term => term.name.toLocaleLowerCase() === termValueLower)?.id;
47306  };
47307  function TaxonomyControls({
47308    onChange,
47309    query
47310  }) {
47311    const {
47312      postType,
47313      taxQuery
47314    } = query;
47315    const taxonomies = useTaxonomies(postType);
47316    if (!taxonomies || taxonomies.length === 0) {
47317      return null;
47318    }
47319    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
47320      spacing: 4,
47321      children: taxonomies.map(taxonomy => {
47322        const termIds = taxQuery?.[taxonomy.slug] || [];
47323        const handleChange = newTermIds => onChange({
47324          taxQuery: {
47325            ...taxQuery,
47326            [taxonomy.slug]: newTermIds
47327          }
47328        });
47329        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyItem, {
47330          taxonomy: taxonomy,
47331          termIds: termIds,
47332          onChange: handleChange
47333        }, taxonomy.slug);
47334      })
47335    });
47336  }
47337  
47338  /**
47339   * Renders a `FormTokenField` for a given taxonomy.
47340   *
47341   * @param {Object}   props          The props for the component.
47342   * @param {Object}   props.taxonomy The taxonomy object.
47343   * @param {number[]} props.termIds  An array with the block's term ids for the given taxonomy.
47344   * @param {Function} props.onChange Callback `onChange` function.
47345   * @return {JSX.Element} The rendered component.
47346   */
47347  function TaxonomyItem({
47348    taxonomy,
47349    termIds,
47350    onChange
47351  }) {
47352    const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
47353    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(taxonomy_controls_EMPTY_ARRAY);
47354    const [suggestions, setSuggestions] = (0,external_wp_element_namespaceObject.useState)(taxonomy_controls_EMPTY_ARRAY);
47355    const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 250);
47356    const {
47357      searchResults,
47358      searchHasResolved
47359    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
47360      if (!search) {
47361        return {
47362          searchResults: taxonomy_controls_EMPTY_ARRAY,
47363          searchHasResolved: true
47364        };
47365      }
47366      const {
47367        getEntityRecords,
47368        hasFinishedResolution
47369      } = select(external_wp_coreData_namespaceObject.store);
47370      const selectorArgs = ['taxonomy', taxonomy.slug, {
47371        ...taxonomy_controls_BASE_QUERY,
47372        search,
47373        orderby: 'name',
47374        exclude: termIds,
47375        per_page: 20
47376      }];
47377      return {
47378        searchResults: getEntityRecords(...selectorArgs),
47379        searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
47380      };
47381    }, [search, termIds]);
47382    // `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.
47383    // They are used to extract the terms' names to populate the `FormTokenField` properly
47384    // and to sanitize the provided `termIds`, by setting only the ones that exist.
47385    const existingTerms = (0,external_wp_data_namespaceObject.useSelect)(select => {
47386      if (!termIds?.length) {
47387        return taxonomy_controls_EMPTY_ARRAY;
47388      }
47389      const {
47390        getEntityRecords
47391      } = select(external_wp_coreData_namespaceObject.store);
47392      return getEntityRecords('taxonomy', taxonomy.slug, {
47393        ...taxonomy_controls_BASE_QUERY,
47394        include: termIds,
47395        per_page: termIds.length
47396      });
47397    }, [termIds]);
47398    // Update the `value` state only after the selectors are resolved
47399    // to avoid emptying the input when we're changing terms.
47400    (0,external_wp_element_namespaceObject.useEffect)(() => {
47401      if (!termIds?.length) {
47402        setValue(taxonomy_controls_EMPTY_ARRAY);
47403      }
47404      if (!existingTerms?.length) {
47405        return;
47406      }
47407      // Returns only the existing entity ids. This prevents the component
47408      // from crashing in the editor, when non existing ids are provided.
47409      const sanitizedValue = termIds.reduce((accumulator, id) => {
47410        const entity = existingTerms.find(term => term.id === id);
47411        if (entity) {
47412          accumulator.push({
47413            id,
47414            value: entity.name
47415          });
47416        }
47417        return accumulator;
47418      }, []);
47419      setValue(sanitizedValue);
47420    }, [termIds, existingTerms]);
47421    // Update suggestions only when the query has resolved.
47422    (0,external_wp_element_namespaceObject.useEffect)(() => {
47423      if (!searchHasResolved) {
47424        return;
47425      }
47426      setSuggestions(searchResults.map(result => result.name));
47427    }, [searchResults, searchHasResolved]);
47428    const onTermsChange = newTermValues => {
47429      const newTermIds = new Set();
47430      for (const termValue of newTermValues) {
47431        const termId = getTermIdByTermValue(searchResults, termValue);
47432        if (termId) {
47433          newTermIds.add(termId);
47434        }
47435      }
47436      setSuggestions(taxonomy_controls_EMPTY_ARRAY);
47437      onChange(Array.from(newTermIds));
47438    };
47439    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
47440      className: "block-library-query-inspector__taxonomy-control",
47441      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
47442        label: taxonomy.name,
47443        value: value,
47444        onInputChange: debouncedSearch,
47445        suggestions: suggestions,
47446        displayTransform: external_wp_htmlEntities_namespaceObject.decodeEntities,
47447        onChange: onTermsChange,
47448        __experimentalShowHowTo: false,
47449        __nextHasNoMarginBottom: true,
47450        __next40pxDefaultSize: true
47451      })
47452    });
47453  }
47454  
47455  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/format-controls.js
47456  /**
47457   * WordPress dependencies
47458   */
47459  
47460  
47461  
47462  
47463  
47464  // All WP post formats, sorted alphabetically by translated name.
47465  // Value is the post format slug. Label is the name.
47466  
47467  const POST_FORMATS = [{
47468    value: 'aside',
47469    label: (0,external_wp_i18n_namespaceObject.__)('Aside')
47470  }, {
47471    value: 'audio',
47472    label: (0,external_wp_i18n_namespaceObject.__)('Audio')
47473  }, {
47474    value: 'chat',
47475    label: (0,external_wp_i18n_namespaceObject.__)('Chat')
47476  }, {
47477    value: 'gallery',
47478    label: (0,external_wp_i18n_namespaceObject.__)('Gallery')
47479  }, {
47480    value: 'image',
47481    label: (0,external_wp_i18n_namespaceObject.__)('Image')
47482  }, {
47483    value: 'link',
47484    label: (0,external_wp_i18n_namespaceObject.__)('Link')
47485  }, {
47486    value: 'quote',
47487    label: (0,external_wp_i18n_namespaceObject.__)('Quote')
47488  }, {
47489    value: 'standard',
47490    label: (0,external_wp_i18n_namespaceObject.__)('Standard')
47491  }, {
47492    value: 'status',
47493    label: (0,external_wp_i18n_namespaceObject.__)('Status')
47494  }, {
47495    value: 'video',
47496    label: (0,external_wp_i18n_namespaceObject.__)('Video')
47497  }].sort((a, b) => {
47498    const normalizedA = a.label.toUpperCase();
47499    const normalizedB = b.label.toUpperCase();
47500    if (normalizedA < normalizedB) {
47501      return -1;
47502    }
47503    if (normalizedA > normalizedB) {
47504      return 1;
47505    }
47506    return 0;
47507  });
47508  
47509  // A helper function to convert translatable post format names into their static values.
47510  function formatNamesToValues(names, formats) {
47511    return names.map(name => {
47512      return formats.find(item => item.label.toLocaleLowerCase() === name.toLocaleLowerCase())?.value;
47513    }).filter(Boolean);
47514  }
47515  function FormatControls({
47516    onChange,
47517    query: {
47518      format
47519    }
47520  }) {
47521    // 'format' is expected to be an array. If it is not an array, for example
47522    // if a user has manually entered an invalid value in the block markup,
47523    // convert it to an array to prevent JavaScript errors.
47524    const normalizedFormats = Array.isArray(format) ? format : [format];
47525    const {
47526      supportedFormats
47527    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
47528      const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
47529      return {
47530        supportedFormats: themeSupports.formats
47531      };
47532    }, []);
47533    const formats = POST_FORMATS.filter(item => supportedFormats.includes(item.value));
47534    const values = normalizedFormats.map(name => formats.find(item => item.value === name)?.label).filter(Boolean);
47535    const suggestions = formats.filter(item => !normalizedFormats.includes(item.value)).map(item => item.label);
47536    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
47537      label: (0,external_wp_i18n_namespaceObject.__)('Formats'),
47538      value: values,
47539      suggestions: suggestions,
47540      onChange: newValues => {
47541        onChange({
47542          format: formatNamesToValues(newValues, formats)
47543        });
47544      },
47545      __experimentalShowHowTo: false,
47546      __experimentalExpandOnFocus: true,
47547      __nextHasNoMarginBottom: true,
47548      __next40pxDefaultSize: true
47549    });
47550  }
47551  
47552  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/sticky-control.js
47553  /**
47554   * WordPress dependencies
47555   */
47556  
47557  
47558  
47559  const stickyOptions = [{
47560    label: (0,external_wp_i18n_namespaceObject.__)('Include'),
47561    value: ''
47562  }, {
47563    label: (0,external_wp_i18n_namespaceObject.__)('Exclude'),
47564    value: 'exclude'
47565  }, {
47566    label: (0,external_wp_i18n_namespaceObject.__)('Only'),
47567    value: 'only'
47568  }];
47569  function StickyControl({
47570    value,
47571    onChange
47572  }) {
47573    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
47574      __nextHasNoMarginBottom: true,
47575      __next40pxDefaultSize: true,
47576      label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
47577      options: stickyOptions,
47578      value: value,
47579      onChange: onChange,
47580      help: (0,external_wp_i18n_namespaceObject.__)('Sticky posts always appear first, regardless of their publish date.')
47581    });
47582  }
47583  
47584  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/create-new-post-link.js
47585  /**
47586   * WordPress dependencies
47587   */
47588  
47589  
47590  
47591  
47592  
47593  const CreateNewPostLink = ({
47594    postType
47595  }) => {
47596    const newPostUrl = (0,external_wp_url_namespaceObject.addQueryArgs)('post-new.php', {
47597      post_type: postType
47598    });
47599    const addNewItemLabel = (0,external_wp_data_namespaceObject.useSelect)(select => {
47600      const {
47601        getPostType
47602      } = select(external_wp_coreData_namespaceObject.store);
47603      return getPostType(postType)?.labels?.add_new_item;
47604    }, [postType]);
47605    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
47606      className: "wp-block-query__create-new-link",
47607      children: (0,external_wp_element_namespaceObject.createInterpolateElement)('<a>' + addNewItemLabel + '</a>',
47608      // eslint-disable-next-line jsx-a11y/anchor-has-content
47609      {
47610        a: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
47611          href: newPostUrl
47612        })
47613      })
47614    });
47615  };
47616  /* harmony default export */ const create_new_post_link = (CreateNewPostLink);
47617  
47618  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/per-page-control.js
47619  /**
47620   * WordPress dependencies
47621   */
47622  
47623  
47624  
47625  const MIN_POSTS_PER_PAGE = 1;
47626  const MAX_POSTS_PER_PAGE = 100;
47627  const PerPageControl = ({
47628    perPage,
47629    offset = 0,
47630    onChange
47631  }) => {
47632    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
47633      __next40pxDefaultSize: true,
47634      __nextHasNoMarginBottom: true,
47635      label: (0,external_wp_i18n_namespaceObject.__)('Posts per page'),
47636      min: MIN_POSTS_PER_PAGE,
47637      max: MAX_POSTS_PER_PAGE,
47638      onChange: newPerPage => {
47639        if (isNaN(newPerPage) || newPerPage < MIN_POSTS_PER_PAGE || newPerPage > MAX_POSTS_PER_PAGE) {
47640          return;
47641        }
47642        onChange({
47643          perPage: newPerPage,
47644          offset
47645        });
47646      },
47647      value: parseInt(perPage, 10)
47648    });
47649  };
47650  /* harmony default export */ const per_page_control = (PerPageControl);
47651  
47652  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/offset-controls.js
47653  /**
47654   * WordPress dependencies
47655   */
47656  
47657  
47658  
47659  const MIN_OFFSET = 0;
47660  const MAX_OFFSET = 100;
47661  const OffsetControl = ({
47662    offset = 0,
47663    onChange
47664  }) => {
47665    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
47666      __next40pxDefaultSize: true,
47667      label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
47668      value: offset,
47669      min: MIN_OFFSET,
47670      onChange: newOffset => {
47671        if (isNaN(newOffset) || newOffset < MIN_OFFSET || newOffset > MAX_OFFSET) {
47672          return;
47673        }
47674        onChange({
47675          offset: newOffset
47676        });
47677      }
47678    });
47679  };
47680  /* harmony default export */ const offset_controls = (OffsetControl);
47681  
47682  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/pages-control.js
47683  /**
47684   * WordPress dependencies
47685   */
47686  
47687  
47688  
47689  const PagesControl = ({
47690    pages,
47691    onChange
47692  }) => {
47693    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
47694      __next40pxDefaultSize: true,
47695      label: (0,external_wp_i18n_namespaceObject.__)('Max pages'),
47696      value: pages,
47697      min: 0,
47698      onChange: newPages => {
47699        if (isNaN(newPages) || newPages < 0) {
47700          return;
47701        }
47702        onChange({
47703          pages: newPages
47704        });
47705      },
47706      help: (0,external_wp_i18n_namespaceObject.__)('Limit the pages you want to show, even if the query has more results. To show all pages use 0 (zero).')
47707    });
47708  };
47709  /* harmony default export */ const pages_control = (PagesControl);
47710  
47711  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/index.js
47712  /**
47713   * WordPress dependencies
47714   */
47715  
47716  
47717  
47718  
47719  
47720  
47721  
47722  
47723  /**
47724   * Internal dependencies
47725   */
47726  
47727  
47728  
47729  
47730  
47731  
47732  
47733  
47734  
47735  
47736  
47737  
47738  
47739  
47740  
47741  
47742  const {
47743    BlockInfo
47744  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
47745  function QueryInspectorControls(props) {
47746    const {
47747      attributes,
47748      setQuery,
47749      setDisplayLayout,
47750      isTemplate
47751    } = props;
47752    const {
47753      query,
47754      displayLayout
47755    } = attributes;
47756    const {
47757      order,
47758      orderBy,
47759      author: authorIds,
47760      pages,
47761      postType,
47762      perPage,
47763      offset,
47764      sticky,
47765      inherit,
47766      taxQuery,
47767      parents,
47768      format
47769    } = query;
47770    const allowedControls = useAllowedControls(attributes);
47771    const [showSticky, setShowSticky] = (0,external_wp_element_namespaceObject.useState)(postType === 'post');
47772    const {
47773      postTypesTaxonomiesMap,
47774      postTypesSelectOptions,
47775      postTypeFormatSupportMap
47776    } = usePostTypes();
47777    const taxonomies = useTaxonomies(postType);
47778    const isPostTypeHierarchical = useIsPostTypeHierarchical(postType);
47779    (0,external_wp_element_namespaceObject.useEffect)(() => {
47780      setShowSticky(postType === 'post');
47781    }, [postType]);
47782    const onPostTypeChange = newValue => {
47783      const updateQuery = {
47784        postType: newValue
47785      };
47786      // We need to dynamically update the `taxQuery` property,
47787      // by removing any not supported taxonomy from the query.
47788      const supportedTaxonomies = postTypesTaxonomiesMap[newValue];
47789      const updatedTaxQuery = Object.entries(taxQuery || {}).reduce((accumulator, [taxonomySlug, terms]) => {
47790        if (supportedTaxonomies.includes(taxonomySlug)) {
47791          accumulator[taxonomySlug] = terms;
47792        }
47793        return accumulator;
47794      }, {});
47795      updateQuery.taxQuery = !!Object.keys(updatedTaxQuery).length ? updatedTaxQuery : undefined;
47796      if (newValue !== 'post') {
47797        updateQuery.sticky = '';
47798      }
47799      // We need to reset `parents` because they are tied to each post type.
47800      updateQuery.parents = [];
47801      // Post types can register post format support with `add_post_type_support`.
47802      // But we need to reset the `format` property when switching to post types
47803      // that do not support post formats.
47804      const hasFormatSupport = postTypeFormatSupportMap[newValue];
47805      if (!hasFormatSupport) {
47806        updateQuery.format = [];
47807      }
47808      setQuery(updateQuery);
47809    };
47810    const [querySearch, setQuerySearch] = (0,external_wp_element_namespaceObject.useState)(query.search);
47811    const onChangeDebounced = (0,external_wp_element_namespaceObject.useCallback)((0,external_wp_compose_namespaceObject.debounce)(() => {
47812      if (query.search !== querySearch) {
47813        setQuery({
47814          search: querySearch
47815        });
47816      }
47817    }, 250), [querySearch, query.search]);
47818    (0,external_wp_element_namespaceObject.useEffect)(() => {
47819      onChangeDebounced();
47820      return onChangeDebounced.cancel;
47821    }, [querySearch, onChangeDebounced]);
47822    const showInheritControl = isTemplate && isControlAllowed(allowedControls, 'inherit');
47823    const showPostTypeControl = !inherit && isControlAllowed(allowedControls, 'postType');
47824    const postTypeControlLabel = (0,external_wp_i18n_namespaceObject.__)('Post type');
47825    const postTypeControlHelp = (0,external_wp_i18n_namespaceObject.__)('Select the type of content to display: posts, pages, or custom post types.');
47826    const showColumnsControl = false;
47827    const showOrderControl = !inherit && isControlAllowed(allowedControls, 'order');
47828    const showStickyControl = !inherit && showSticky && isControlAllowed(allowedControls, 'sticky');
47829    const showSettingsPanel = showInheritControl || showPostTypeControl || showColumnsControl || showOrderControl || showStickyControl;
47830    const showTaxControl = !!taxonomies?.length && isControlAllowed(allowedControls, 'taxQuery');
47831    const showAuthorControl = isControlAllowed(allowedControls, 'author');
47832    const showSearchControl = isControlAllowed(allowedControls, 'search');
47833    const showParentControl = isControlAllowed(allowedControls, 'parents') && isPostTypeHierarchical;
47834    const postTypeHasFormatSupport = postTypeFormatSupportMap[postType];
47835    const showFormatControl = (0,external_wp_data_namespaceObject.useSelect)(select => {
47836      // Check if the post type supports post formats and if the control is allowed.
47837      if (!postTypeHasFormatSupport || !isControlAllowed(allowedControls, 'format')) {
47838        return false;
47839      }
47840      const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
47841  
47842      // If there are no supported formats, getThemeSupports still includes the default 'standard' format,
47843      // and in this case the control should not be shown since the user has no other formats to choose from.
47844      return themeSupports.formats && themeSupports.formats.length > 0 && themeSupports.formats.some(type => type !== 'standard');
47845    }, [allowedControls, postTypeHasFormatSupport]);
47846    const showFiltersPanel = showTaxControl || showAuthorControl || showSearchControl || showParentControl || showFormatControl;
47847    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
47848    const showPostCountControl = isControlAllowed(allowedControls, 'postCount');
47849    const showOffSetControl = isControlAllowed(allowedControls, 'offset');
47850    const showPagesControl = isControlAllowed(allowedControls, 'pages');
47851    const showDisplayPanel = showPostCountControl || showOffSetControl || showPagesControl;
47852    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
47853      children: [!!postType && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockInfo, {
47854        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(create_new_post_link, {
47855          postType: postType
47856        })
47857      }), showSettingsPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
47858        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
47859        children: [showInheritControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
47860          __next40pxDefaultSize: true,
47861          __nextHasNoMarginBottom: true,
47862          label: (0,external_wp_i18n_namespaceObject.__)('Query type'),
47863          isBlock: true,
47864          onChange: value => {
47865            setQuery({
47866              inherit: !!value
47867            });
47868          },
47869          help: inherit ? (0,external_wp_i18n_namespaceObject.__)('Display a list of posts or custom post types based on the current template.') : (0,external_wp_i18n_namespaceObject.__)('Display a list of posts or custom post types based on specific criteria.'),
47870          value: !!inherit,
47871          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
47872            value: true,
47873            label: (0,external_wp_i18n_namespaceObject.__)('Default')
47874          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
47875            value: false,
47876            label: (0,external_wp_i18n_namespaceObject.__)('Custom')
47877          })]
47878        }), showPostTypeControl && (postTypesSelectOptions.length > 2 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
47879          __nextHasNoMarginBottom: true,
47880          __next40pxDefaultSize: true,
47881          options: postTypesSelectOptions,
47882          value: postType,
47883          label: postTypeControlLabel,
47884          onChange: onPostTypeChange,
47885          help: postTypeControlHelp
47886        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
47887          __nextHasNoMarginBottom: true,
47888          __next40pxDefaultSize: true,
47889          isBlock: true,
47890          value: postType,
47891          label: postTypeControlLabel,
47892          onChange: onPostTypeChange,
47893          help: postTypeControlHelp,
47894          children: postTypesSelectOptions.map(option => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
47895            value: option.value,
47896            label: option.label
47897          }, option.value))
47898        })), showColumnsControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
47899          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
47900            __nextHasNoMarginBottom: true,
47901            __next40pxDefaultSize: true,
47902            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
47903            value: displayLayout.columns,
47904            onChange: value => setDisplayLayout({
47905              columns: value
47906            }),
47907            min: 2,
47908            max: Math.max(6, displayLayout.columns)
47909          }), displayLayout.columns > 6 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
47910            status: "warning",
47911            isDismissible: false,
47912            children: (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')
47913          })]
47914        }), showOrderControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(order_control, {
47915          order,
47916          orderBy,
47917          onChange: setQuery
47918        }), showStickyControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StickyControl, {
47919          value: sticky,
47920          onChange: value => setQuery({
47921            sticky: value
47922          })
47923        })]
47924      }), !inherit && showDisplayPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
47925        className: "block-library-query-toolspanel__display",
47926        label: (0,external_wp_i18n_namespaceObject.__)('Display'),
47927        resetAll: () => {
47928          setQuery({
47929            offset: 0,
47930            pages: 0
47931          });
47932        },
47933        dropdownMenuProps: dropdownMenuProps,
47934        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
47935          label: (0,external_wp_i18n_namespaceObject.__)('Items'),
47936          hasValue: () => perPage > 0,
47937          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(per_page_control, {
47938            perPage: perPage,
47939            offset: offset,
47940            onChange: setQuery
47941          })
47942        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
47943          label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
47944          hasValue: () => offset > 0,
47945          onDeselect: () => setQuery({
47946            offset: 0
47947          }),
47948          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(offset_controls, {
47949            offset: offset,
47950            onChange: setQuery
47951          })
47952        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
47953          label: (0,external_wp_i18n_namespaceObject.__)('Max Pages to Show'),
47954          hasValue: () => pages > 0,
47955          onDeselect: () => setQuery({
47956            pages: 0
47957          }),
47958          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(pages_control, {
47959            pages: pages,
47960            onChange: setQuery
47961          })
47962        })]
47963      }), !inherit && showFiltersPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
47964        className: "block-library-query-toolspanel__filters" // unused but kept for backward compatibility
47965        ,
47966        label: (0,external_wp_i18n_namespaceObject.__)('Filters'),
47967        resetAll: () => {
47968          setQuery({
47969            author: '',
47970            parents: [],
47971            search: '',
47972            taxQuery: null,
47973            format: []
47974          });
47975          setQuerySearch('');
47976        },
47977        dropdownMenuProps: dropdownMenuProps,
47978        children: [showTaxControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
47979          label: (0,external_wp_i18n_namespaceObject.__)('Taxonomies'),
47980          hasValue: () => Object.values(taxQuery || {}).some(terms => !!terms.length),
47981          onDeselect: () => setQuery({
47982            taxQuery: null
47983          }),
47984          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyControls, {
47985            onChange: setQuery,
47986            query: query
47987          })
47988        }), showAuthorControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
47989          hasValue: () => !!authorIds,
47990          label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
47991          onDeselect: () => setQuery({
47992            author: ''
47993          }),
47994          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(author_control, {
47995            value: authorIds,
47996            onChange: setQuery
47997          })
47998        }), showSearchControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
47999          hasValue: () => !!querySearch,
48000          label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
48001          onDeselect: () => setQuerySearch(''),
48002          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
48003            __nextHasNoMarginBottom: true,
48004            __next40pxDefaultSize: true,
48005            label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
48006            value: querySearch,
48007            onChange: setQuerySearch
48008          })
48009        }), showParentControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
48010          hasValue: () => !!parents?.length,
48011          label: (0,external_wp_i18n_namespaceObject.__)('Parents'),
48012          onDeselect: () => setQuery({
48013            parents: []
48014          }),
48015          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(parent_control, {
48016            parents: parents,
48017            postType: postType,
48018            onChange: setQuery
48019          })
48020        }), showFormatControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
48021          hasValue: () => !!format?.length,
48022          label: (0,external_wp_i18n_namespaceObject.__)('Formats'),
48023          onDeselect: () => setQuery({
48024            format: []
48025          }),
48026          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FormatControls, {
48027            onChange: setQuery,
48028            query: query
48029          })
48030        })]
48031      })]
48032    });
48033  }
48034  
48035  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/enhanced-pagination-modal.js
48036  /**
48037   * WordPress dependencies
48038   */
48039  
48040  
48041  
48042  
48043  /**
48044   * Internal dependencies
48045   */
48046  
48047  
48048  
48049  const modalDescriptionId = 'wp-block-query-enhanced-pagination-modal__description';
48050  function EnhancedPaginationModal({
48051    clientId,
48052    attributes: {
48053      enhancedPagination
48054    },
48055    setAttributes
48056  }) {
48057    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
48058    const {
48059      hasBlocksFromPlugins,
48060      hasPostContentBlock,
48061      hasUnsupportedBlocks
48062    } = useUnsupportedBlocks(clientId);
48063    (0,external_wp_element_namespaceObject.useEffect)(() => {
48064      if (enhancedPagination && hasUnsupportedBlocks && !window.__experimentalFullPageClientSideNavigation) {
48065        setAttributes({
48066          enhancedPagination: false
48067        });
48068        setOpen(true);
48069      }
48070    }, [enhancedPagination, hasUnsupportedBlocks, setAttributes]);
48071    const closeModal = () => {
48072      setOpen(false);
48073    };
48074    let notice = (0,external_wp_i18n_namespaceObject.__)('If you still want to prevent full page reloads, remove that block, then disable "Reload full page" again in the Query Block settings.');
48075    if (hasBlocksFromPlugins) {
48076      notice = (0,external_wp_i18n_namespaceObject.__)('Currently, avoiding full page reloads is not possible when non-interactive or non-client Navigation compatible blocks from plugins are present inside the Query block.') + ' ' + notice;
48077    } else if (hasPostContentBlock) {
48078      notice = (0,external_wp_i18n_namespaceObject.__)('Currently, avoiding full page reloads is not possible when a Content block is present inside the Query block.') + ' ' + notice;
48079    }
48080    return isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
48081      title: (0,external_wp_i18n_namespaceObject.__)('Query block: Reload full page enabled'),
48082      className: "wp-block-query__enhanced-pagination-modal",
48083      aria: {
48084        describedby: modalDescriptionId
48085      },
48086      role: "alertdialog",
48087      focusOnMount: "firstElement",
48088      isDismissible: false,
48089      onRequestClose: closeModal,
48090      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
48091        alignment: "right",
48092        spacing: 5,
48093        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
48094          id: modalDescriptionId,
48095          children: notice
48096        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
48097          __next40pxDefaultSize: true,
48098          variant: "primary",
48099          onClick: closeModal,
48100          children: (0,external_wp_i18n_namespaceObject.__)('OK')
48101        })]
48102      })
48103    });
48104  }
48105  
48106  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-content.js
48107  /**
48108   * WordPress dependencies
48109   */
48110  
48111  
48112  
48113  
48114  
48115  
48116  
48117  
48118  /**
48119   * Internal dependencies
48120   */
48121  
48122  
48123  
48124  
48125  
48126  
48127  
48128  const DEFAULTS_POSTS_PER_PAGE = 3;
48129  const query_content_TEMPLATE = [['core/post-template']];
48130  function QueryContent({
48131    attributes,
48132    setAttributes,
48133    openPatternSelectionModal,
48134    name,
48135    clientId,
48136    context
48137  }) {
48138    const {
48139      queryId,
48140      query,
48141      displayLayout,
48142      enhancedPagination,
48143      tagName: TagName = 'div',
48144      query: {
48145        inherit
48146      } = {}
48147    } = attributes;
48148    const {
48149      postType
48150    } = context;
48151    const {
48152      __unstableMarkNextChangeAsNotPersistent
48153    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
48154    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryContent);
48155    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
48156    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
48157      template: query_content_TEMPLATE
48158    });
48159    const isTemplate = (0,external_wp_data_namespaceObject.useSelect)(select => {
48160      const currentTemplate = select(external_wp_coreData_namespaceObject.store).__experimentalGetTemplateForLink()?.type;
48161      const isInTemplate = 'wp_template' === currentTemplate;
48162      const isInSingularContent = postType !== undefined;
48163      return isInTemplate && !isInSingularContent;
48164    }, [postType]);
48165    const {
48166      postsPerPage
48167    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48168      const {
48169        getSettings
48170      } = select(external_wp_blockEditor_namespaceObject.store);
48171      const {
48172        getEntityRecord,
48173        getEntityRecordEdits,
48174        canUser
48175      } = select(external_wp_coreData_namespaceObject.store);
48176      const settingPerPage = canUser('read', {
48177        kind: 'root',
48178        name: 'site'
48179      }) ? +getEntityRecord('root', 'site')?.posts_per_page : +getSettings().postsPerPage;
48180  
48181      // Gets changes made via the template area posts per page setting. These won't be saved
48182      // until the page is saved, but we should reflect this setting within the query loops
48183      // that inherit it.
48184      const editedSettingPerPage = +getEntityRecordEdits('root', 'site')?.posts_per_page;
48185      return {
48186        postsPerPage: editedSettingPerPage || settingPerPage || DEFAULTS_POSTS_PER_PAGE
48187      };
48188    }, []);
48189    // There are some effects running where some initialization logic is
48190    // happening and setting some values to some attributes (ex. queryId).
48191    // These updates can cause an `undo trap` where undoing will result in
48192    // resetting again, so we need to mark these changes as not persistent
48193    // with `__unstableMarkNextChangeAsNotPersistent`.
48194  
48195    // Changes in query property (which is an object) need to be in the same callback,
48196    // because updates are batched after the render and changes in different query properties
48197    // would cause to override previous wanted changes.
48198    const updateQuery = (0,external_wp_element_namespaceObject.useCallback)(newQuery => setAttributes({
48199      query: {
48200        ...query,
48201        ...newQuery
48202      }
48203    }), [query, setAttributes]);
48204    (0,external_wp_element_namespaceObject.useEffect)(() => {
48205      const newQuery = {};
48206      // When we inherit from global query always need to set the `perPage`
48207      // based on the reading settings.
48208      if (inherit && query.perPage !== postsPerPage) {
48209        newQuery.perPage = postsPerPage;
48210      } else if (!query.perPage && postsPerPage) {
48211        newQuery.perPage = postsPerPage;
48212      }
48213      // We need to reset the `inherit` value if not in a template, as queries
48214      // are not inherited when outside a template (e.g. when in singular content).
48215      if (!isTemplate && query.inherit) {
48216        newQuery.inherit = false;
48217      }
48218      if (!!Object.keys(newQuery).length) {
48219        __unstableMarkNextChangeAsNotPersistent();
48220        updateQuery(newQuery);
48221      }
48222    }, [query.perPage, postsPerPage, inherit, isTemplate, query.inherit, __unstableMarkNextChangeAsNotPersistent, updateQuery]);
48223    // We need this for multi-query block pagination.
48224    // Query parameters for each block are scoped to their ID.
48225    (0,external_wp_element_namespaceObject.useEffect)(() => {
48226      if (!Number.isFinite(queryId)) {
48227        __unstableMarkNextChangeAsNotPersistent();
48228        setAttributes({
48229          queryId: instanceId
48230        });
48231      }
48232    }, [queryId, instanceId, __unstableMarkNextChangeAsNotPersistent, setAttributes]);
48233    const updateDisplayLayout = newDisplayLayout => setAttributes({
48234      displayLayout: {
48235        ...displayLayout,
48236        ...newDisplayLayout
48237      }
48238    });
48239    const htmlElementMessages = {
48240      main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only.'),
48241      section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
48242      aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.")
48243    };
48244    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
48245      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnhancedPaginationModal, {
48246        attributes: attributes,
48247        setAttributes: setAttributes,
48248        clientId: clientId
48249      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
48250        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryInspectorControls, {
48251          attributes: attributes,
48252          setQuery: updateQuery,
48253          setDisplayLayout: updateDisplayLayout,
48254          setAttributes: setAttributes,
48255          clientId: clientId,
48256          isTemplate: isTemplate
48257        })
48258      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
48259        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryToolbar, {
48260          name: name,
48261          clientId: clientId,
48262          attributes: attributes,
48263          setQuery: updateQuery,
48264          openPatternSelectionModal: openPatternSelectionModal
48265        })
48266      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
48267        group: "advanced",
48268        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
48269          __nextHasNoMarginBottom: true,
48270          __next40pxDefaultSize: true,
48271          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
48272          options: [{
48273            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
48274            value: 'div'
48275          }, {
48276            label: '<main>',
48277            value: 'main'
48278          }, {
48279            label: '<section>',
48280            value: 'section'
48281          }, {
48282            label: '<aside>',
48283            value: 'aside'
48284          }],
48285          value: TagName,
48286          onChange: value => setAttributes({
48287            tagName: value
48288          }),
48289          help: htmlElementMessages[TagName]
48290        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnhancedPaginationControl, {
48291          enhancedPagination: enhancedPagination,
48292          setAttributes: setAttributes,
48293          clientId: clientId
48294        })]
48295      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
48296        ...innerBlocksProps
48297      })]
48298    });
48299  }
48300  
48301  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-placeholder.js
48302  /**
48303   * WordPress dependencies
48304   */
48305  
48306  
48307  
48308  
48309  
48310  
48311  
48312  /**
48313   * Internal dependencies
48314   */
48315  
48316  
48317  
48318  function QueryPlaceholder({
48319    attributes,
48320    clientId,
48321    name,
48322    openPatternSelectionModal
48323  }) {
48324    const [isStartingBlank, setIsStartingBlank] = (0,external_wp_element_namespaceObject.useState)(false);
48325    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
48326    const blockNameForPatterns = useBlockNameForPatterns(clientId, attributes);
48327    const {
48328      blockType,
48329      activeBlockVariation,
48330      hasPatterns
48331    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48332      const {
48333        getActiveBlockVariation,
48334        getBlockType
48335      } = select(external_wp_blocks_namespaceObject.store);
48336      const {
48337        getBlockRootClientId,
48338        getPatternsByBlockTypes
48339      } = select(external_wp_blockEditor_namespaceObject.store);
48340      const rootClientId = getBlockRootClientId(clientId);
48341      return {
48342        blockType: getBlockType(name),
48343        activeBlockVariation: getActiveBlockVariation(name, attributes),
48344        hasPatterns: !!getPatternsByBlockTypes(blockNameForPatterns, rootClientId).length
48345      };
48346    }, [name, blockNameForPatterns, clientId, attributes]);
48347    const icon = activeBlockVariation?.icon?.src || activeBlockVariation?.icon || blockType?.icon?.src;
48348    const label = activeBlockVariation?.title || blockType?.title;
48349    if (isStartingBlank) {
48350      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryVariationPicker, {
48351        clientId: clientId,
48352        attributes: attributes,
48353        icon: icon,
48354        label: label
48355      });
48356    }
48357    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
48358      ...blockProps,
48359      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
48360        icon: icon,
48361        label: label,
48362        instructions: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern for the query loop or start blank.'),
48363        children: [!!hasPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
48364          __next40pxDefaultSize: true,
48365          variant: "primary",
48366          onClick: openPatternSelectionModal,
48367          children: (0,external_wp_i18n_namespaceObject.__)('Choose')
48368        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
48369          __next40pxDefaultSize: true,
48370          variant: "secondary",
48371          onClick: () => {
48372            setIsStartingBlank(true);
48373          },
48374          children: (0,external_wp_i18n_namespaceObject.__)('Start blank')
48375        })]
48376      })
48377    });
48378  }
48379  function QueryVariationPicker({
48380    clientId,
48381    attributes,
48382    icon,
48383    label
48384  }) {
48385    const scopeVariations = useScopedBlockVariations(attributes);
48386    const {
48387      replaceInnerBlocks
48388    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
48389    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
48390    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
48391      ...blockProps,
48392      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
48393        icon: icon,
48394        label: label,
48395        variations: scopeVariations,
48396        onSelect: variation => {
48397          if (variation.innerBlocks) {
48398            replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(variation.innerBlocks), false);
48399          }
48400        }
48401      })
48402    });
48403  }
48404  
48405  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/search-patterns.js
48406  /**
48407   * External dependencies
48408   */
48409  
48410  
48411  /**
48412   * Sanitizes the search input string.
48413   *
48414   * @param {string} input The search input to normalize.
48415   *
48416   * @return {string} The normalized search input.
48417   */
48418  function normalizeSearchInput(input = '') {
48419    // Disregard diacritics.
48420    input = remove_accents_default()(input);
48421  
48422    // Trim & Lowercase.
48423    input = input.trim().toLowerCase();
48424    return input;
48425  }
48426  
48427  /**
48428   * Get the search rank for a given pattern and a specific search term.
48429   *
48430   * @param {Object} pattern     Pattern to rank
48431   * @param {string} searchValue Search term
48432   * @return {number} A pattern search rank
48433   */
48434  function getPatternSearchRank(pattern, searchValue) {
48435    const normalizedSearchValue = normalizeSearchInput(searchValue);
48436    const normalizedTitle = normalizeSearchInput(pattern.title);
48437    let rank = 0;
48438    if (normalizedSearchValue === normalizedTitle) {
48439      rank += 30;
48440    } else if (normalizedTitle.startsWith(normalizedSearchValue)) {
48441      rank += 20;
48442    } else {
48443      const searchTerms = normalizedSearchValue.split(' ');
48444      const hasMatchedTerms = searchTerms.every(searchTerm => normalizedTitle.includes(searchTerm));
48445  
48446      // Prefer pattern with every search word in the title.
48447      if (hasMatchedTerms) {
48448        rank += 10;
48449      }
48450    }
48451    return rank;
48452  }
48453  
48454  /**
48455   * Filters an pattern list given a search term.
48456   *
48457   * @param {Array}  patterns    Item list
48458   * @param {string} searchValue Search input.
48459   *
48460   * @return {Array} Filtered pattern list.
48461   */
48462  function searchPatterns(patterns = [], searchValue = '') {
48463    if (!searchValue) {
48464      return patterns;
48465    }
48466    const rankedPatterns = patterns.map(pattern => {
48467      return [pattern, getPatternSearchRank(pattern, searchValue)];
48468    }).filter(([, rank]) => rank > 0);
48469    rankedPatterns.sort(([, rank1], [, rank2]) => rank2 - rank1);
48470    return rankedPatterns.map(([pattern]) => pattern);
48471  }
48472  
48473  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/pattern-selection-modal.js
48474  /**
48475   * WordPress dependencies
48476   */
48477  
48478  
48479  
48480  
48481  
48482  
48483  
48484  /**
48485   * Internal dependencies
48486   */
48487  
48488  
48489  
48490  
48491  function PatternSelectionModal({
48492    clientId,
48493    attributes,
48494    setIsPatternSelectionModalOpen
48495  }) {
48496    const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)('');
48497    const {
48498      replaceBlock,
48499      selectBlock
48500    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
48501    const onBlockPatternSelect = (pattern, blocks) => {
48502      const {
48503        newBlocks,
48504        queryClientIds
48505      } = getTransformedBlocksFromPattern(blocks, attributes);
48506      replaceBlock(clientId, newBlocks);
48507      if (queryClientIds[0]) {
48508        selectBlock(queryClientIds[0]);
48509      }
48510    };
48511    // When we preview Query Loop blocks we should prefer the current
48512    // block's postType, which is passed through block context.
48513    const blockPreviewContext = (0,external_wp_element_namespaceObject.useMemo)(() => ({
48514      previewPostType: attributes.query.postType
48515    }), [attributes.query.postType]);
48516    const blockNameForPatterns = useBlockNameForPatterns(clientId, attributes);
48517    const blockPatterns = usePatterns(clientId, blockNameForPatterns);
48518    const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
48519      return searchPatterns(blockPatterns, searchValue);
48520    }, [blockPatterns, searchValue]);
48521    const shownBlockPatterns = (0,external_wp_compose_namespaceObject.useAsyncList)(filteredBlockPatterns);
48522    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
48523      overlayClassName: "block-library-query-pattern__selection-modal",
48524      title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
48525      onRequestClose: () => setIsPatternSelectionModalOpen(false),
48526      isFullScreen: true,
48527      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
48528        className: "block-library-query-pattern__selection-content",
48529        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
48530          className: "block-library-query-pattern__selection-search",
48531          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
48532            __nextHasNoMarginBottom: true,
48533            onChange: setSearchValue,
48534            value: searchValue,
48535            label: (0,external_wp_i18n_namespaceObject.__)('Search for patterns'),
48536            placeholder: (0,external_wp_i18n_namespaceObject.__)('Search')
48537          })
48538        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
48539          value: blockPreviewContext,
48540          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
48541            blockPatterns: filteredBlockPatterns,
48542            shownPatterns: shownBlockPatterns,
48543            onClickPattern: onBlockPatternSelect
48544          })
48545        })]
48546      })
48547    });
48548  }
48549  
48550  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/index.js
48551  /**
48552   * WordPress dependencies
48553   */
48554  
48555  
48556  
48557  
48558  /**
48559   * Internal dependencies
48560   */
48561  
48562  
48563  
48564  
48565  
48566  
48567  const QueryEdit = props => {
48568    const {
48569      clientId,
48570      attributes
48571    } = props;
48572    const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
48573    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length, [clientId]);
48574    const Component = hasInnerBlocks ? QueryContent : QueryPlaceholder;
48575    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
48576      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
48577        ...props,
48578        openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
48579      }), isPatternSelectionModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelectionModal, {
48580        clientId: clientId,
48581        attributes: attributes,
48582        setIsPatternSelectionModalOpen: setIsPatternSelectionModalOpen
48583      })]
48584    });
48585  };
48586  /* harmony default export */ const query_edit = (QueryEdit);
48587  
48588  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/save.js
48589  /**
48590   * WordPress dependencies
48591   */
48592  
48593  
48594  function query_save_save({
48595    attributes: {
48596      tagName: Tag = 'div'
48597    }
48598  }) {
48599    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
48600    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
48601    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
48602      ...innerBlocksProps
48603    });
48604  }
48605  
48606  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/icons.js
48607  /**
48608   * WordPress dependencies
48609   */
48610  
48611  
48612  const titleDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
48613    xmlns: "http://www.w3.org/2000/svg",
48614    viewBox: "0 0 48 48",
48615    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
48616      d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z"
48617    })
48618  });
48619  const titleExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
48620    xmlns: "http://www.w3.org/2000/svg",
48621    viewBox: "0 0 48 48",
48622    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
48623      d: "M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z"
48624    })
48625  });
48626  const titleDateExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
48627    xmlns: "http://www.w3.org/2000/svg",
48628    viewBox: "0 0 48 48",
48629    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
48630      d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z"
48631    })
48632  });
48633  const imageDateTitle = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
48634    xmlns: "http://www.w3.org/2000/svg",
48635    viewBox: "0 0 48 48",
48636    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
48637      d: "M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z"
48638    })
48639  });
48640  
48641  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/variations.js
48642  /**
48643   * WordPress dependencies
48644   */
48645  
48646  
48647  /**
48648   * Internal dependencies
48649   */
48650  
48651  const query_variations_variations = [{
48652    name: 'title-date',
48653    title: (0,external_wp_i18n_namespaceObject.__)('Title & Date'),
48654    icon: titleDate,
48655    attributes: {},
48656    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date']]], ['core/query-pagination'], ['core/query-no-results']],
48657    scope: ['block']
48658  }, {
48659    name: 'title-excerpt',
48660    title: (0,external_wp_i18n_namespaceObject.__)('Title & Excerpt'),
48661    icon: titleExcerpt,
48662    attributes: {},
48663    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
48664    scope: ['block']
48665  }, {
48666    name: 'title-date-excerpt',
48667    title: (0,external_wp_i18n_namespaceObject.__)('Title, Date, & Excerpt'),
48668    icon: titleDateExcerpt,
48669    attributes: {},
48670    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
48671    scope: ['block']
48672  }, {
48673    name: 'image-date-title',
48674    title: (0,external_wp_i18n_namespaceObject.__)('Image, Date, & Title'),
48675    icon: imageDateTitle,
48676    attributes: {},
48677    innerBlocks: [['core/post-template', {}, [['core/post-featured-image'], ['core/post-date'], ['core/post-title']]], ['core/query-pagination'], ['core/query-no-results']],
48678    scope: ['block']
48679  }];
48680  /* harmony default export */ const query_variations = (query_variations_variations);
48681  
48682  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/deprecated.js
48683  /**
48684   * WordPress dependencies
48685   */
48686  
48687  
48688  
48689  /**
48690   * Internal dependencies
48691   */
48692  
48693  
48694  const {
48695    cleanEmptyObject: deprecated_cleanEmptyObject
48696  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
48697  const migrateToTaxQuery = attributes => {
48698    const {
48699      query
48700    } = attributes;
48701    const {
48702      categoryIds,
48703      tagIds,
48704      ...newQuery
48705    } = query;
48706    if (query.categoryIds?.length || query.tagIds?.length) {
48707      newQuery.taxQuery = {
48708        category: !!query.categoryIds?.length ? query.categoryIds : undefined,
48709        post_tag: !!query.tagIds?.length ? query.tagIds : undefined
48710      };
48711    }
48712    return {
48713      ...attributes,
48714      query: newQuery
48715    };
48716  };
48717  const migrateColors = (attributes, innerBlocks) => {
48718    // Remove color style attributes from the Query block.
48719    const {
48720      style,
48721      backgroundColor,
48722      gradient,
48723      textColor,
48724      ...newAttributes
48725    } = attributes;
48726    const hasColorStyles = backgroundColor || gradient || textColor || style?.color || style?.elements?.link;
48727  
48728    // If the query block doesn't currently have any color styles,
48729    // nothing needs migrating.
48730    if (!hasColorStyles) {
48731      return [attributes, innerBlocks];
48732    }
48733  
48734    // Clean color values from style attribute object.
48735    if (style) {
48736      newAttributes.style = deprecated_cleanEmptyObject({
48737        ...style,
48738        color: undefined,
48739        elements: {
48740          ...style.elements,
48741          link: undefined
48742        }
48743      });
48744    }
48745  
48746    // If the inner blocks are already wrapped in a single group
48747    // block, add the color support styles to that group block.
48748    if (hasSingleInnerGroupBlock(innerBlocks)) {
48749      const groupBlock = innerBlocks[0];
48750  
48751      // Create new styles for the group block.
48752      const hasStyles = style?.color || style?.elements?.link || groupBlock.attributes.style;
48753      const newStyles = hasStyles ? deprecated_cleanEmptyObject({
48754        ...groupBlock.attributes.style,
48755        color: style?.color,
48756        elements: style?.elements?.link ? {
48757          link: style?.elements?.link
48758        } : undefined
48759      }) : undefined;
48760  
48761      // Create a new Group block from the original.
48762      const updatedGroupBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
48763        ...groupBlock.attributes,
48764        backgroundColor,
48765        gradient,
48766        textColor,
48767        style: newStyles
48768      }, groupBlock.innerBlocks);
48769      return [newAttributes, [updatedGroupBlock]];
48770    }
48771  
48772    // When we don't have a single wrapping group block for the inner
48773    // blocks, wrap the current inner blocks in a group applying the
48774    // color styles to that.
48775    const newGroupBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
48776      backgroundColor,
48777      gradient,
48778      textColor,
48779      style: deprecated_cleanEmptyObject({
48780        color: style?.color,
48781        elements: style?.elements?.link ? {
48782          link: style?.elements?.link
48783        } : undefined
48784      })
48785    }, innerBlocks);
48786    return [newAttributes, [newGroupBlock]];
48787  };
48788  const hasSingleInnerGroupBlock = (innerBlocks = []) => innerBlocks.length === 1 && innerBlocks[0].name === 'core/group';
48789  const migrateToConstrainedLayout = attributes => {
48790    const {
48791      layout = null
48792    } = attributes;
48793    if (!layout) {
48794      return attributes;
48795    }
48796    const {
48797      inherit = null,
48798      contentSize = null,
48799      ...newLayout
48800    } = layout;
48801    if (inherit || contentSize) {
48802      return {
48803        ...attributes,
48804        layout: {
48805          ...newLayout,
48806          contentSize,
48807          type: 'constrained'
48808        }
48809      };
48810    }
48811    return attributes;
48812  };
48813  const findPostTemplateBlock = (innerBlocks = []) => {
48814    let foundBlock = null;
48815    for (const block of innerBlocks) {
48816      if (block.name === 'core/post-template') {
48817        foundBlock = block;
48818        break;
48819      } else if (block.innerBlocks.length) {
48820        foundBlock = findPostTemplateBlock(block.innerBlocks);
48821      }
48822    }
48823    return foundBlock;
48824  };
48825  const replacePostTemplateBlock = (innerBlocks = [], replacementBlock) => {
48826    innerBlocks.forEach((block, index) => {
48827      if (block.name === 'core/post-template') {
48828        innerBlocks.splice(index, 1, replacementBlock);
48829      } else if (block.innerBlocks.length) {
48830        block.innerBlocks = replacePostTemplateBlock(block.innerBlocks, replacementBlock);
48831      }
48832    });
48833    return innerBlocks;
48834  };
48835  const migrateDisplayLayout = (attributes, innerBlocks) => {
48836    const {
48837      displayLayout = null,
48838      ...newAttributes
48839    } = attributes;
48840    if (!displayLayout) {
48841      return [attributes, innerBlocks];
48842    }
48843    const postTemplateBlock = findPostTemplateBlock(innerBlocks);
48844    if (!postTemplateBlock) {
48845      return [attributes, innerBlocks];
48846    }
48847    const {
48848      type,
48849      columns
48850    } = displayLayout;
48851  
48852    // Convert custom displayLayout values to canonical layout types.
48853    const updatedLayoutType = type === 'flex' ? 'grid' : 'default';
48854    const newPostTemplateBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/post-template', {
48855      ...postTemplateBlock.attributes,
48856      layout: {
48857        type: updatedLayoutType,
48858        ...(columns && {
48859          columnCount: columns
48860        })
48861      }
48862    }, postTemplateBlock.innerBlocks);
48863    return [newAttributes, replacePostTemplateBlock(innerBlocks, newPostTemplateBlock)];
48864  };
48865  
48866  // Version with NO wrapper `div` element.
48867  const query_deprecated_v1 = {
48868    attributes: {
48869      queryId: {
48870        type: 'number'
48871      },
48872      query: {
48873        type: 'object',
48874        default: {
48875          perPage: null,
48876          pages: 0,
48877          offset: 0,
48878          postType: 'post',
48879          categoryIds: [],
48880          tagIds: [],
48881          order: 'desc',
48882          orderBy: 'date',
48883          author: '',
48884          search: '',
48885          exclude: [],
48886          sticky: '',
48887          inherit: true
48888        }
48889      },
48890      layout: {
48891        type: 'object',
48892        default: {
48893          type: 'list'
48894        }
48895      }
48896    },
48897    supports: {
48898      html: false
48899    },
48900    migrate(attributes, innerBlocks) {
48901      const withTaxQuery = migrateToTaxQuery(attributes);
48902      const {
48903        layout,
48904        ...restWithTaxQuery
48905      } = withTaxQuery;
48906      const newAttributes = {
48907        ...restWithTaxQuery,
48908        displayLayout: withTaxQuery.layout
48909      };
48910      return migrateDisplayLayout(newAttributes, innerBlocks);
48911    },
48912    save() {
48913      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
48914    }
48915  };
48916  
48917  // Version with `categoryIds and tagIds`.
48918  const query_deprecated_v2 = {
48919    attributes: {
48920      queryId: {
48921        type: 'number'
48922      },
48923      query: {
48924        type: 'object',
48925        default: {
48926          perPage: null,
48927          pages: 0,
48928          offset: 0,
48929          postType: 'post',
48930          categoryIds: [],
48931          tagIds: [],
48932          order: 'desc',
48933          orderBy: 'date',
48934          author: '',
48935          search: '',
48936          exclude: [],
48937          sticky: '',
48938          inherit: true
48939        }
48940      },
48941      tagName: {
48942        type: 'string',
48943        default: 'div'
48944      },
48945      displayLayout: {
48946        type: 'object',
48947        default: {
48948          type: 'list'
48949        }
48950      }
48951    },
48952    supports: {
48953      align: ['wide', 'full'],
48954      html: false,
48955      color: {
48956        gradients: true,
48957        link: true
48958      },
48959      layout: true
48960    },
48961    isEligible: ({
48962      query: {
48963        categoryIds,
48964        tagIds
48965      } = {}
48966    }) => categoryIds || tagIds,
48967    migrate(attributes, innerBlocks) {
48968      const withTaxQuery = migrateToTaxQuery(attributes);
48969      const [withColorAttributes, withColorInnerBlocks] = migrateColors(withTaxQuery, innerBlocks);
48970      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(withColorAttributes);
48971      return migrateDisplayLayout(withConstrainedLayoutAttributes, withColorInnerBlocks);
48972    },
48973    save({
48974      attributes: {
48975        tagName: Tag = 'div'
48976      }
48977    }) {
48978      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
48979      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
48980      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
48981        ...innerBlocksProps
48982      });
48983    }
48984  };
48985  
48986  // Version with color support prior to moving it to the PostTemplate block.
48987  const query_deprecated_v3 = {
48988    attributes: {
48989      queryId: {
48990        type: 'number'
48991      },
48992      query: {
48993        type: 'object',
48994        default: {
48995          perPage: null,
48996          pages: 0,
48997          offset: 0,
48998          postType: 'post',
48999          order: 'desc',
49000          orderBy: 'date',
49001          author: '',
49002          search: '',
49003          exclude: [],
49004          sticky: '',
49005          inherit: true,
49006          taxQuery: null,
49007          parents: []
49008        }
49009      },
49010      tagName: {
49011        type: 'string',
49012        default: 'div'
49013      },
49014      displayLayout: {
49015        type: 'object',
49016        default: {
49017          type: 'list'
49018        }
49019      },
49020      namespace: {
49021        type: 'string'
49022      }
49023    },
49024    supports: {
49025      align: ['wide', 'full'],
49026      html: false,
49027      color: {
49028        gradients: true,
49029        link: true,
49030        __experimentalDefaultControls: {
49031          background: true,
49032          text: true
49033        }
49034      },
49035      layout: true
49036    },
49037    isEligible(attributes) {
49038      const {
49039        style,
49040        backgroundColor,
49041        gradient,
49042        textColor
49043      } = attributes;
49044      return backgroundColor || gradient || textColor || style?.color || style?.elements?.link;
49045    },
49046    migrate(attributes, innerBlocks) {
49047      const [withColorAttributes, withColorInnerBlocks] = migrateColors(attributes, innerBlocks);
49048      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(withColorAttributes);
49049      return migrateDisplayLayout(withConstrainedLayoutAttributes, withColorInnerBlocks);
49050    },
49051    save({
49052      attributes: {
49053        tagName: Tag = 'div'
49054      }
49055    }) {
49056      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
49057      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
49058      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
49059        ...innerBlocksProps
49060      });
49061    }
49062  };
49063  const query_deprecated_v4 = {
49064    attributes: {
49065      queryId: {
49066        type: 'number'
49067      },
49068      query: {
49069        type: 'object',
49070        default: {
49071          perPage: null,
49072          pages: 0,
49073          offset: 0,
49074          postType: 'post',
49075          order: 'desc',
49076          orderBy: 'date',
49077          author: '',
49078          search: '',
49079          exclude: [],
49080          sticky: '',
49081          inherit: true,
49082          taxQuery: null,
49083          parents: []
49084        }
49085      },
49086      tagName: {
49087        type: 'string',
49088        default: 'div'
49089      },
49090      displayLayout: {
49091        type: 'object',
49092        default: {
49093          type: 'list'
49094        }
49095      },
49096      namespace: {
49097        type: 'string'
49098      }
49099    },
49100    supports: {
49101      align: ['wide', 'full'],
49102      html: false,
49103      color: {
49104        gradients: true,
49105        link: true,
49106        __experimentalDefaultControls: {
49107          background: true,
49108          text: true
49109        }
49110      },
49111      layout: true
49112    },
49113    save({
49114      attributes: {
49115        tagName: Tag = 'div'
49116      }
49117    }) {
49118      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
49119      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
49120      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
49121        ...innerBlocksProps
49122      });
49123    },
49124    isEligible: ({
49125      layout
49126    }) => layout?.inherit || layout?.contentSize && layout?.type !== 'constrained',
49127    migrate(attributes, innerBlocks) {
49128      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(attributes);
49129      return migrateDisplayLayout(withConstrainedLayoutAttributes, innerBlocks);
49130    }
49131  };
49132  const query_deprecated_v5 = {
49133    attributes: {
49134      queryId: {
49135        type: 'number'
49136      },
49137      query: {
49138        type: 'object',
49139        default: {
49140          perPage: null,
49141          pages: 0,
49142          offset: 0,
49143          postType: 'post',
49144          order: 'desc',
49145          orderBy: 'date',
49146          author: '',
49147          search: '',
49148          exclude: [],
49149          sticky: '',
49150          inherit: true,
49151          taxQuery: null,
49152          parents: []
49153        }
49154      },
49155      tagName: {
49156        type: 'string',
49157        default: 'div'
49158      },
49159      displayLayout: {
49160        type: 'object',
49161        default: {
49162          type: 'list'
49163        }
49164      },
49165      namespace: {
49166        type: 'string'
49167      }
49168    },
49169    supports: {
49170      align: ['wide', 'full'],
49171      anchor: true,
49172      html: false,
49173      layout: true
49174    },
49175    save({
49176      attributes: {
49177        tagName: Tag = 'div'
49178      }
49179    }) {
49180      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
49181      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
49182      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
49183        ...innerBlocksProps
49184      });
49185    },
49186    isEligible: ({
49187      displayLayout
49188    }) => {
49189      return !!displayLayout;
49190    },
49191    migrate: migrateDisplayLayout
49192  };
49193  const query_deprecated_deprecated = [query_deprecated_v5, query_deprecated_v4, query_deprecated_v3, query_deprecated_v2, query_deprecated_v1];
49194  /* harmony default export */ const query_deprecated = (query_deprecated_deprecated);
49195  
49196  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/index.js
49197  /**
49198   * WordPress dependencies
49199   */
49200  
49201  
49202  /**
49203   * Internal dependencies
49204   */
49205  
49206  const query_metadata = {
49207    $schema: "https://schemas.wp.org/trunk/block.json",
49208    apiVersion: 3,
49209    name: "core/query",
49210    title: "Query Loop",
49211    category: "theme",
49212    description: "An advanced block that allows displaying post types based on different query parameters and visual configurations.",
49213    textdomain: "default",
49214    attributes: {
49215      queryId: {
49216        type: "number"
49217      },
49218      query: {
49219        type: "object",
49220        "default": {
49221          perPage: null,
49222          pages: 0,
49223          offset: 0,
49224          postType: "post",
49225          order: "desc",
49226          orderBy: "date",
49227          author: "",
49228          search: "",
49229          exclude: [],
49230          sticky: "",
49231          inherit: true,
49232          taxQuery: null,
49233          parents: [],
49234          format: []
49235        }
49236      },
49237      tagName: {
49238        type: "string",
49239        "default": "div"
49240      },
49241      namespace: {
49242        type: "string"
49243      },
49244      enhancedPagination: {
49245        type: "boolean",
49246        "default": false
49247      }
49248    },
49249    usesContext: ["postType"],
49250    providesContext: {
49251      queryId: "queryId",
49252      query: "query",
49253      displayLayout: "displayLayout",
49254      enhancedPagination: "enhancedPagination"
49255    },
49256    supports: {
49257      align: ["wide", "full"],
49258      html: false,
49259      layout: true,
49260      interactivity: true
49261    },
49262    editorStyle: "wp-block-query-editor"
49263  };
49264  
49265  
49266  
49267  
49268  const {
49269    name: query_name
49270  } = query_metadata;
49271  
49272  const query_settings = {
49273    icon: library_loop,
49274    edit: query_edit,
49275    example: {
49276      viewportWidth: 650,
49277      attributes: {
49278        namespace: 'core/posts-list',
49279        query: {
49280          perPage: 4,
49281          pages: 1,
49282          offset: 0,
49283          postType: 'post',
49284          order: 'desc',
49285          orderBy: 'date',
49286          author: '',
49287          search: '',
49288          sticky: 'exclude',
49289          inherit: false
49290        }
49291      },
49292      innerBlocks: [{
49293        name: 'core/post-template',
49294        attributes: {
49295          layout: {
49296            type: 'grid',
49297            columnCount: 2
49298          }
49299        },
49300        innerBlocks: [{
49301          name: 'core/post-title'
49302        }, {
49303          name: 'core/post-date'
49304        }, {
49305          name: 'core/post-excerpt'
49306        }]
49307      }]
49308    },
49309    save: query_save_save,
49310    variations: query_variations,
49311    deprecated: query_deprecated
49312  };
49313  const query_init = () => initBlock({
49314    name: query_name,
49315    metadata: query_metadata,
49316    settings: query_settings
49317  });
49318  
49319  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/edit.js
49320  /**
49321   * WordPress dependencies
49322   */
49323  
49324  
49325  
49326  const query_no_results_edit_TEMPLATE = [['core/paragraph', {
49327    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text or blocks that will display when a query returns no results.')
49328  }]];
49329  function QueryNoResultsEdit() {
49330    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49331    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
49332      template: query_no_results_edit_TEMPLATE
49333    });
49334    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49335      ...innerBlocksProps
49336    });
49337  }
49338  
49339  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/save.js
49340  /**
49341   * WordPress dependencies
49342   */
49343  
49344  
49345  function query_no_results_save_save() {
49346    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
49347  }
49348  
49349  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
49350  /**
49351   * WordPress dependencies
49352   */
49353  
49354  
49355  /**
49356   * Internal dependencies
49357   */
49358  
49359  const query_no_results_metadata = {
49360    $schema: "https://schemas.wp.org/trunk/block.json",
49361    apiVersion: 3,
49362    name: "core/query-no-results",
49363    title: "No results",
49364    category: "theme",
49365    description: "Contains the block elements used to render content when no query results are found.",
49366    parent: ["core/query"],
49367    textdomain: "default",
49368    usesContext: ["queryId", "query"],
49369    supports: {
49370      align: true,
49371      reusable: false,
49372      html: false,
49373      color: {
49374        gradients: true,
49375        link: true
49376      },
49377      typography: {
49378        fontSize: true,
49379        lineHeight: true,
49380        __experimentalFontFamily: true,
49381        __experimentalFontWeight: true,
49382        __experimentalFontStyle: true,
49383        __experimentalTextTransform: true,
49384        __experimentalTextDecoration: true,
49385        __experimentalLetterSpacing: true,
49386        __experimentalDefaultControls: {
49387          fontSize: true
49388        }
49389      },
49390      interactivity: {
49391        clientNavigation: true
49392      }
49393    }
49394  };
49395  
49396  
49397  const {
49398    name: query_no_results_name
49399  } = query_no_results_metadata;
49400  
49401  const query_no_results_settings = {
49402    icon: library_loop,
49403    edit: QueryNoResultsEdit,
49404    save: query_no_results_save_save
49405  };
49406  const query_no_results_init = () => initBlock({
49407    name: query_no_results_name,
49408    metadata: query_no_results_metadata,
49409    settings: query_no_results_settings
49410  });
49411  
49412  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-arrow-controls.js
49413  /**
49414   * WordPress dependencies
49415   */
49416  
49417  
49418  
49419  
49420  function QueryPaginationArrowControls({
49421    value,
49422    onChange
49423  }) {
49424    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
49425      __next40pxDefaultSize: true,
49426      __nextHasNoMarginBottom: true,
49427      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
49428      value: value,
49429      onChange: onChange,
49430      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous page link.'),
49431      isBlock: true,
49432      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49433        value: "none",
49434        label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Query Pagination Next/Previous blocks')
49435      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49436        value: "arrow",
49437        label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Query Pagination Next/Previous blocks')
49438      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49439        value: "chevron",
49440        label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Query Pagination Next/Previous blocks')
49441      })]
49442    });
49443  }
49444  
49445  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-label-control.js
49446  /**
49447   * WordPress dependencies
49448   */
49449  
49450  
49451  
49452  function QueryPaginationLabelControl({
49453    value,
49454    onChange
49455  }) {
49456    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
49457      __nextHasNoMarginBottom: true,
49458      label: (0,external_wp_i18n_namespaceObject.__)('Show label text'),
49459      help: (0,external_wp_i18n_namespaceObject.__)('Toggle off to hide the label text, e.g. "Next Page".'),
49460      onChange: onChange,
49461      checked: value === true
49462    });
49463  }
49464  
49465  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/edit.js
49466  /**
49467   * WordPress dependencies
49468   */
49469  
49470  
49471  
49472  
49473  
49474  
49475  /**
49476   * Internal dependencies
49477   */
49478  
49479  
49480  
49481  
49482  
49483  const query_pagination_edit_TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']];
49484  function edit_QueryPaginationEdit({
49485    attributes: {
49486      paginationArrow,
49487      showLabel
49488    },
49489    setAttributes,
49490    clientId
49491  }) {
49492    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
49493      const {
49494        getBlocks
49495      } = select(external_wp_blockEditor_namespaceObject.store);
49496      const innerBlocks = getBlocks(clientId);
49497      /**
49498       * Show the `paginationArrow` and `showLabel` controls only if a
49499       * `QueryPaginationNext/Previous` block exists.
49500       */
49501      return innerBlocks?.find(innerBlock => {
49502        return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name);
49503      });
49504    }, [clientId]);
49505    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49506    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
49507      template: query_pagination_edit_TEMPLATE
49508    });
49509    // Always show label text if paginationArrow is set to 'none'.
49510    (0,external_wp_element_namespaceObject.useEffect)(() => {
49511      if (paginationArrow === 'none' && !showLabel) {
49512        setAttributes({
49513          showLabel: true
49514        });
49515      }
49516    }, [paginationArrow, setAttributes, showLabel]);
49517    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49518      children: [hasNextPreviousBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
49519        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
49520          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
49521          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryPaginationArrowControls, {
49522            value: paginationArrow,
49523            onChange: value => {
49524              setAttributes({
49525                paginationArrow: value
49526              });
49527            }
49528          }), paginationArrow !== 'none' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryPaginationLabelControl, {
49529            value: showLabel,
49530            onChange: value => {
49531              setAttributes({
49532                showLabel: value
49533              });
49534            }
49535          })]
49536        })
49537      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
49538        ...innerBlocksProps
49539      })]
49540    });
49541  }
49542  
49543  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/save.js
49544  /**
49545   * WordPress dependencies
49546   */
49547  
49548  
49549  function query_pagination_save_save() {
49550    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
49551  }
49552  
49553  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/deprecated.js
49554  /**
49555   * WordPress dependencies
49556   */
49557  
49558  
49559  const query_pagination_deprecated_deprecated = [
49560  // Version with wrapper `div` element.
49561  {
49562    save() {
49563      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49564        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
49565        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
49566      });
49567    }
49568  }];
49569  /* harmony default export */ const query_pagination_deprecated = (query_pagination_deprecated_deprecated);
49570  
49571  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
49572  /**
49573   * WordPress dependencies
49574   */
49575  
49576  
49577  /**
49578   * Internal dependencies
49579   */
49580  
49581  const query_pagination_metadata = {
49582    $schema: "https://schemas.wp.org/trunk/block.json",
49583    apiVersion: 3,
49584    name: "core/query-pagination",
49585    title: "Pagination",
49586    category: "theme",
49587    ancestor: ["core/query"],
49588    allowedBlocks: ["core/query-pagination-previous", "core/query-pagination-numbers", "core/query-pagination-next"],
49589    description: "Displays a paginated navigation to next/previous set of posts, when applicable.",
49590    textdomain: "default",
49591    attributes: {
49592      paginationArrow: {
49593        type: "string",
49594        "default": "none"
49595      },
49596      showLabel: {
49597        type: "boolean",
49598        "default": true
49599      }
49600    },
49601    usesContext: ["queryId", "query"],
49602    providesContext: {
49603      paginationArrow: "paginationArrow",
49604      showLabel: "showLabel"
49605    },
49606    supports: {
49607      align: true,
49608      reusable: false,
49609      html: false,
49610      color: {
49611        gradients: true,
49612        link: true,
49613        __experimentalDefaultControls: {
49614          background: true,
49615          text: true,
49616          link: true
49617        }
49618      },
49619      layout: {
49620        allowSwitching: false,
49621        allowInheriting: false,
49622        "default": {
49623          type: "flex"
49624        }
49625      },
49626      typography: {
49627        fontSize: true,
49628        lineHeight: true,
49629        __experimentalFontFamily: true,
49630        __experimentalFontWeight: true,
49631        __experimentalFontStyle: true,
49632        __experimentalTextTransform: true,
49633        __experimentalTextDecoration: true,
49634        __experimentalLetterSpacing: true,
49635        __experimentalDefaultControls: {
49636          fontSize: true
49637        }
49638      },
49639      interactivity: {
49640        clientNavigation: true
49641      }
49642    },
49643    editorStyle: "wp-block-query-pagination-editor",
49644    style: "wp-block-query-pagination"
49645  };
49646  
49647  
49648  
49649  const {
49650    name: query_pagination_name
49651  } = query_pagination_metadata;
49652  
49653  const query_pagination_settings = {
49654    icon: query_pagination,
49655    edit: edit_QueryPaginationEdit,
49656    save: query_pagination_save_save,
49657    deprecated: query_pagination_deprecated
49658  };
49659  const query_pagination_init = () => initBlock({
49660    name: query_pagination_name,
49661    metadata: query_pagination_metadata,
49662    settings: query_pagination_settings
49663  });
49664  
49665  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/edit.js
49666  /**
49667   * WordPress dependencies
49668   */
49669  
49670  
49671  
49672  
49673  const query_pagination_next_edit_arrowMap = {
49674    none: '',
49675    arrow: '→',
49676    chevron: '»'
49677  };
49678  function QueryPaginationNextEdit({
49679    attributes: {
49680      label
49681    },
49682    setAttributes,
49683    context: {
49684      paginationArrow,
49685      showLabel
49686    }
49687  }) {
49688    const displayArrow = query_pagination_next_edit_arrowMap[paginationArrow];
49689    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
49690      href: "#pagination-next-pseudo-link",
49691      onClick: event => event.preventDefault(),
49692      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
49693      children: [showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
49694        __experimentalVersion: 2,
49695        tagName: "span",
49696        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page link'),
49697        placeholder: (0,external_wp_i18n_namespaceObject.__)('Next Page'),
49698        value: label,
49699        onChange: newLabel => setAttributes({
49700          label: newLabel
49701        })
49702      }), displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
49703        className: `wp-block-query-pagination-next-arrow is-arrow-$paginationArrow}`,
49704        "aria-hidden": true,
49705        children: displayArrow
49706      })]
49707    });
49708  }
49709  
49710  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
49711  /**
49712   * WordPress dependencies
49713   */
49714  
49715  
49716  /**
49717   * Internal dependencies
49718   */
49719  
49720  const query_pagination_next_metadata = {
49721    $schema: "https://schemas.wp.org/trunk/block.json",
49722    apiVersion: 3,
49723    name: "core/query-pagination-next",
49724    title: "Next Page",
49725    category: "theme",
49726    parent: ["core/query-pagination"],
49727    description: "Displays the next posts page link.",
49728    textdomain: "default",
49729    attributes: {
49730      label: {
49731        type: "string"
49732      }
49733    },
49734    usesContext: ["queryId", "query", "paginationArrow", "showLabel", "enhancedPagination"],
49735    supports: {
49736      reusable: false,
49737      html: false,
49738      color: {
49739        gradients: true,
49740        text: false,
49741        __experimentalDefaultControls: {
49742          background: true
49743        }
49744      },
49745      typography: {
49746        fontSize: true,
49747        lineHeight: true,
49748        __experimentalFontFamily: true,
49749        __experimentalFontWeight: true,
49750        __experimentalFontStyle: true,
49751        __experimentalTextTransform: true,
49752        __experimentalTextDecoration: true,
49753        __experimentalLetterSpacing: true,
49754        __experimentalDefaultControls: {
49755          fontSize: true
49756        }
49757      },
49758      interactivity: {
49759        clientNavigation: true
49760      }
49761    }
49762  };
49763  
49764  const {
49765    name: query_pagination_next_name
49766  } = query_pagination_next_metadata;
49767  
49768  const query_pagination_next_settings = {
49769    icon: query_pagination_next,
49770    edit: QueryPaginationNextEdit
49771  };
49772  const query_pagination_next_init = () => initBlock({
49773    name: query_pagination_next_name,
49774    metadata: query_pagination_next_metadata,
49775    settings: query_pagination_next_settings
49776  });
49777  
49778  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/edit.js
49779  /**
49780   * WordPress dependencies
49781   */
49782  
49783  
49784  
49785  
49786  
49787  
49788  const createPaginationItem = (content, Tag = 'a', extraClass = '') => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
49789    className: `page-numbers $extraClass}`,
49790    children: content
49791  }, content);
49792  const previewPaginationNumbers = midSize => {
49793    const paginationItems = [];
49794  
49795    // First set of pagination items.
49796    for (let i = 1; i <= midSize; i++) {
49797      paginationItems.push(createPaginationItem(i));
49798    }
49799  
49800    // Current pagination item.
49801    paginationItems.push(createPaginationItem(midSize + 1, 'span', 'current'));
49802  
49803    // Second set of pagination items.
49804    for (let i = 1; i <= midSize; i++) {
49805      paginationItems.push(createPaginationItem(midSize + 1 + i));
49806    }
49807  
49808    // Dots.
49809    paginationItems.push(createPaginationItem('...', 'span', 'dots'));
49810  
49811    // Last pagination item.
49812    paginationItems.push(createPaginationItem(midSize * 2 + 3));
49813    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49814      children: paginationItems
49815    });
49816  };
49817  function QueryPaginationNumbersEdit({
49818    attributes,
49819    setAttributes
49820  }) {
49821    const {
49822      midSize
49823    } = attributes;
49824    const paginationNumbers = previewPaginationNumbers(parseInt(midSize, 10));
49825    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49826      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
49827        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
49828          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
49829          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
49830            __next40pxDefaultSize: true,
49831            __nextHasNoMarginBottom: true,
49832            label: (0,external_wp_i18n_namespaceObject.__)('Number of links'),
49833            help: (0,external_wp_i18n_namespaceObject.__)('Specify how many links can appear before and after the current page number. Links to the first, current and last page are always visible.'),
49834            value: midSize,
49835            onChange: value => {
49836              setAttributes({
49837                midSize: parseInt(value, 10)
49838              });
49839            },
49840            min: 0,
49841            max: 5,
49842            withInputField: false
49843          })
49844        })
49845      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49846        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
49847        children: paginationNumbers
49848      })]
49849    });
49850  }
49851  
49852  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
49853  /**
49854   * WordPress dependencies
49855   */
49856  
49857  
49858  /**
49859   * Internal dependencies
49860   */
49861  
49862  const query_pagination_numbers_metadata = {
49863    $schema: "https://schemas.wp.org/trunk/block.json",
49864    apiVersion: 3,
49865    name: "core/query-pagination-numbers",
49866    title: "Page Numbers",
49867    category: "theme",
49868    parent: ["core/query-pagination"],
49869    description: "Displays a list of page numbers for pagination.",
49870    textdomain: "default",
49871    attributes: {
49872      midSize: {
49873        type: "number",
49874        "default": 2
49875      }
49876    },
49877    usesContext: ["queryId", "query", "enhancedPagination"],
49878    supports: {
49879      reusable: false,
49880      html: false,
49881      color: {
49882        gradients: true,
49883        text: false,
49884        __experimentalDefaultControls: {
49885          background: true
49886        }
49887      },
49888      typography: {
49889        fontSize: true,
49890        lineHeight: true,
49891        __experimentalFontFamily: true,
49892        __experimentalFontWeight: true,
49893        __experimentalFontStyle: true,
49894        __experimentalTextTransform: true,
49895        __experimentalTextDecoration: true,
49896        __experimentalLetterSpacing: true,
49897        __experimentalDefaultControls: {
49898          fontSize: true
49899        }
49900      },
49901      interactivity: {
49902        clientNavigation: true
49903      }
49904    },
49905    editorStyle: "wp-block-query-pagination-numbers-editor"
49906  };
49907  
49908  const {
49909    name: query_pagination_numbers_name
49910  } = query_pagination_numbers_metadata;
49911  
49912  const query_pagination_numbers_settings = {
49913    icon: query_pagination_numbers,
49914    edit: QueryPaginationNumbersEdit
49915  };
49916  const query_pagination_numbers_init = () => initBlock({
49917    name: query_pagination_numbers_name,
49918    metadata: query_pagination_numbers_metadata,
49919    settings: query_pagination_numbers_settings
49920  });
49921  
49922  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/edit.js
49923  /**
49924   * WordPress dependencies
49925   */
49926  
49927  
49928  
49929  
49930  const query_pagination_previous_edit_arrowMap = {
49931    none: '',
49932    arrow: '←',
49933    chevron: '«'
49934  };
49935  function QueryPaginationPreviousEdit({
49936    attributes: {
49937      label
49938    },
49939    setAttributes,
49940    context: {
49941      paginationArrow,
49942      showLabel
49943    }
49944  }) {
49945    const displayArrow = query_pagination_previous_edit_arrowMap[paginationArrow];
49946    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
49947      href: "#pagination-previous-pseudo-link",
49948      onClick: event => event.preventDefault(),
49949      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
49950      children: [displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
49951        className: `wp-block-query-pagination-previous-arrow is-arrow-$paginationArrow}`,
49952        "aria-hidden": true,
49953        children: displayArrow
49954      }), showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
49955        __experimentalVersion: 2,
49956        tagName: "span",
49957        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page link'),
49958        placeholder: (0,external_wp_i18n_namespaceObject.__)('Previous Page'),
49959        value: label,
49960        onChange: newLabel => setAttributes({
49961          label: newLabel
49962        })
49963      })]
49964    });
49965  }
49966  
49967  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
49968  /**
49969   * WordPress dependencies
49970   */
49971  
49972  
49973  /**
49974   * Internal dependencies
49975   */
49976  
49977  const query_pagination_previous_metadata = {
49978    $schema: "https://schemas.wp.org/trunk/block.json",
49979    apiVersion: 3,
49980    name: "core/query-pagination-previous",
49981    title: "Previous Page",
49982    category: "theme",
49983    parent: ["core/query-pagination"],
49984    description: "Displays the previous posts page link.",
49985    textdomain: "default",
49986    attributes: {
49987      label: {
49988        type: "string"
49989      }
49990    },
49991    usesContext: ["queryId", "query", "paginationArrow", "showLabel", "enhancedPagination"],
49992    supports: {
49993      reusable: false,
49994      html: false,
49995      color: {
49996        gradients: true,
49997        text: false,
49998        __experimentalDefaultControls: {
49999          background: true
50000        }
50001      },
50002      typography: {
50003        fontSize: true,
50004        lineHeight: true,
50005        __experimentalFontFamily: true,
50006        __experimentalFontWeight: true,
50007        __experimentalFontStyle: true,
50008        __experimentalTextTransform: true,
50009        __experimentalTextDecoration: true,
50010        __experimentalLetterSpacing: true,
50011        __experimentalDefaultControls: {
50012          fontSize: true
50013        }
50014      },
50015      interactivity: {
50016        clientNavigation: true
50017      }
50018    }
50019  };
50020  
50021  const {
50022    name: query_pagination_previous_name
50023  } = query_pagination_previous_metadata;
50024  
50025  const query_pagination_previous_settings = {
50026    icon: query_pagination_previous,
50027    edit: QueryPaginationPreviousEdit
50028  };
50029  const query_pagination_previous_init = () => initBlock({
50030    name: query_pagination_previous_name,
50031    metadata: query_pagination_previous_metadata,
50032    settings: query_pagination_previous_settings
50033  });
50034  
50035  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/use-archive-label.js
50036  /**
50037   * WordPress dependencies
50038   */
50039  
50040  
50041  function useArchiveLabel() {
50042    const templateSlug = (0,external_wp_data_namespaceObject.useSelect)(select => {
50043      // @wordpress/block-library should not depend on @wordpress/editor.
50044      // Blocks can be loaded into a *non-post* block editor, so to avoid
50045      // declaring @wordpress/editor as a dependency, we must access its
50046      // store by string.
50047      // The solution here is to split WP specific blocks from generic blocks.
50048      // eslint-disable-next-line @wordpress/data-no-store-string-literals
50049      const {
50050        getCurrentPostId,
50051        getCurrentPostType,
50052        getCurrentTemplateId
50053      } = select('core/editor');
50054      const currentPostType = getCurrentPostType();
50055      const templateId = getCurrentTemplateId() || (currentPostType === 'wp_template' ? getCurrentPostId() : null);
50056      return templateId ? select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_template', templateId)?.slug : null;
50057    }, []);
50058    const taxonomyMatches = templateSlug?.match(/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/);
50059    let taxonomy;
50060    let term;
50061    let isAuthor = false;
50062    let authorSlug;
50063    if (taxonomyMatches) {
50064      // If is for a all taxonomies of a type
50065      if (taxonomyMatches[1]) {
50066        taxonomy = taxonomyMatches[2] ? taxonomyMatches[2] : taxonomyMatches[1];
50067      }
50068      // If is for a all taxonomies of a type
50069      else if (taxonomyMatches[3]) {
50070        taxonomy = taxonomyMatches[6] ? taxonomyMatches[6] : taxonomyMatches[4];
50071        term = taxonomyMatches[7];
50072      }
50073      taxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;
50074  
50075      //getTaxonomy( 'category' );
50076      //wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );
50077    } else {
50078      const authorMatches = templateSlug?.match(/^(author)$|^author-(.+)$/);
50079      if (authorMatches) {
50080        isAuthor = true;
50081        if (authorMatches[2]) {
50082          authorSlug = authorMatches[2];
50083        }
50084      }
50085    }
50086    return (0,external_wp_data_namespaceObject.useSelect)(select => {
50087      const {
50088        getEntityRecords,
50089        getTaxonomy,
50090        getAuthors
50091      } = select(external_wp_coreData_namespaceObject.store);
50092      let archiveTypeLabel;
50093      let archiveNameLabel;
50094      if (taxonomy) {
50095        archiveTypeLabel = getTaxonomy(taxonomy)?.labels?.singular_name;
50096      }
50097      if (term) {
50098        const records = getEntityRecords('taxonomy', taxonomy, {
50099          slug: term,
50100          per_page: 1
50101        });
50102        if (records && records[0]) {
50103          archiveNameLabel = records[0].name;
50104        }
50105      }
50106      if (isAuthor) {
50107        archiveTypeLabel = 'Author';
50108        if (authorSlug) {
50109          const authorRecords = getAuthors({
50110            slug: authorSlug
50111          });
50112          if (authorRecords && authorRecords[0]) {
50113            archiveNameLabel = authorRecords[0].name;
50114          }
50115        }
50116      }
50117      return {
50118        archiveTypeLabel,
50119        archiveNameLabel
50120      };
50121    }, [authorSlug, isAuthor, taxonomy, term]);
50122  }
50123  
50124  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/edit.js
50125  /**
50126   * External dependencies
50127   */
50128  
50129  
50130  /**
50131   * WordPress dependencies
50132   */
50133  
50134  
50135  
50136  
50137  /**
50138   * Internal dependencies
50139   */
50140  
50141  
50142  
50143  
50144  const SUPPORTED_TYPES = ['archive', 'search'];
50145  function QueryTitleEdit({
50146    attributes: {
50147      type,
50148      level,
50149      levelOptions,
50150      textAlign,
50151      showPrefix,
50152      showSearchTerm
50153    },
50154    setAttributes
50155  }) {
50156    const {
50157      archiveTypeLabel,
50158      archiveNameLabel
50159    } = useArchiveLabel();
50160    const TagName = `h$level}`;
50161    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
50162      className: dist_clsx('wp-block-query-title__placeholder', {
50163        [`has-text-align-$textAlign}`]: textAlign
50164      })
50165    });
50166    if (!SUPPORTED_TYPES.includes(type)) {
50167      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
50168        ...blockProps,
50169        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
50170          children: (0,external_wp_i18n_namespaceObject.__)('Provided type is not supported.')
50171        })
50172      });
50173    }
50174    let titleElement;
50175    if (type === 'archive') {
50176      let title;
50177      if (archiveTypeLabel) {
50178        if (showPrefix) {
50179          if (archiveNameLabel) {
50180            title = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Archive type title e.g: "Category", 2: Label of the archive e.g: "Shoes" */
50181            (0,external_wp_i18n_namespaceObject._x)('%1$s: %2$s', 'archive label'), archiveTypeLabel, archiveNameLabel);
50182          } else {
50183            title = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Archive type title e.g: "Category", "Tag"... */
50184            (0,external_wp_i18n_namespaceObject.__)('%s: Name'), archiveTypeLabel);
50185          }
50186        } else if (archiveNameLabel) {
50187          title = archiveNameLabel;
50188        } else {
50189          title = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Archive type title e.g: "Category", "Tag"... */
50190          (0,external_wp_i18n_namespaceObject.__)('%s name'), archiveTypeLabel);
50191        }
50192      } else {
50193        title = showPrefix ? (0,external_wp_i18n_namespaceObject.__)('Archive type: Name') : (0,external_wp_i18n_namespaceObject.__)('Archive title');
50194      }
50195      titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50196        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
50197          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
50198            title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
50199            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
50200              __nextHasNoMarginBottom: true,
50201              label: (0,external_wp_i18n_namespaceObject.__)('Show archive type in title'),
50202              onChange: () => setAttributes({
50203                showPrefix: !showPrefix
50204              }),
50205              checked: showPrefix
50206            })
50207          })
50208        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
50209          ...blockProps,
50210          children: title
50211        })]
50212      });
50213    }
50214    if (type === 'search') {
50215      titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50216        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
50217          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
50218            title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
50219            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
50220              __nextHasNoMarginBottom: true,
50221              label: (0,external_wp_i18n_namespaceObject.__)('Show search term in title'),
50222              onChange: () => setAttributes({
50223                showSearchTerm: !showSearchTerm
50224              }),
50225              checked: showSearchTerm
50226            })
50227          })
50228        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
50229          ...blockProps,
50230          children: showSearchTerm ? (0,external_wp_i18n_namespaceObject.__)('Search results for: “search term”') : (0,external_wp_i18n_namespaceObject.__)('Search results')
50231        })]
50232      });
50233    }
50234    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50235      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
50236        group: "block",
50237        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
50238          value: level,
50239          options: levelOptions,
50240          onChange: newLevel => setAttributes({
50241            level: newLevel
50242          })
50243        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
50244          value: textAlign,
50245          onChange: nextAlign => {
50246            setAttributes({
50247              textAlign: nextAlign
50248            });
50249          }
50250        })]
50251      }), titleElement]
50252    });
50253  }
50254  
50255  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/variations.js
50256  /**
50257   * WordPress dependencies
50258   */
50259  
50260  
50261  const query_title_variations_variations = [{
50262    isDefault: true,
50263    name: 'archive-title',
50264    title: (0,external_wp_i18n_namespaceObject.__)('Archive Title'),
50265    description: (0,external_wp_i18n_namespaceObject.__)('Display the archive title based on the queried object.'),
50266    icon: library_title,
50267    attributes: {
50268      type: 'archive'
50269    },
50270    scope: ['inserter']
50271  }, {
50272    isDefault: false,
50273    name: 'search-title',
50274    title: (0,external_wp_i18n_namespaceObject.__)('Search Results Title'),
50275    description: (0,external_wp_i18n_namespaceObject.__)('Display the search results title based on the queried object.'),
50276    icon: library_title,
50277    attributes: {
50278      type: 'search'
50279    },
50280    scope: ['inserter']
50281  }];
50282  
50283  /**
50284   * Add `isActive` function to all `query-title` variations, if not defined.
50285   * `isActive` function is used to find a variation match from a created
50286   *  Block by providing its attributes.
50287   */
50288  query_title_variations_variations.forEach(variation => {
50289    if (variation.isActive) {
50290      return;
50291    }
50292    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
50293  });
50294  /* harmony default export */ const query_title_variations = (query_title_variations_variations);
50295  
50296  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/deprecated.js
50297  /**
50298   * Internal dependencies
50299   */
50300  
50301  const query_title_deprecated_v1 = {
50302    attributes: {
50303      type: {
50304        type: 'string'
50305      },
50306      textAlign: {
50307        type: 'string'
50308      },
50309      level: {
50310        type: 'number',
50311        default: 1
50312      }
50313    },
50314    supports: {
50315      align: ['wide', 'full'],
50316      html: false,
50317      color: {
50318        gradients: true
50319      },
50320      spacing: {
50321        margin: true
50322      },
50323      typography: {
50324        fontSize: true,
50325        lineHeight: true,
50326        __experimentalFontFamily: true
50327      }
50328    },
50329    save() {
50330      return null;
50331    },
50332    migrate: migrate_font_family,
50333    isEligible({
50334      style
50335    }) {
50336      return style?.typography?.fontFamily;
50337    }
50338  };
50339  
50340  /**
50341   * New deprecations need to be placed first
50342   * for them to have higher priority.
50343   *
50344   * Old deprecations may need to be updated as well.
50345   *
50346   * See block-deprecation.md
50347   */
50348  /* harmony default export */ const query_title_deprecated = ([query_title_deprecated_v1]);
50349  
50350  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/index.js
50351  /**
50352   * WordPress dependencies
50353   */
50354  
50355  
50356  /**
50357   * Internal dependencies
50358   */
50359  
50360  const query_title_metadata = {
50361    $schema: "https://schemas.wp.org/trunk/block.json",
50362    apiVersion: 3,
50363    name: "core/query-title",
50364    title: "Query Title",
50365    category: "theme",
50366    description: "Display the query title.",
50367    textdomain: "default",
50368    attributes: {
50369      type: {
50370        type: "string"
50371      },
50372      textAlign: {
50373        type: "string"
50374      },
50375      level: {
50376        type: "number",
50377        "default": 1
50378      },
50379      levelOptions: {
50380        type: "array"
50381      },
50382      showPrefix: {
50383        type: "boolean",
50384        "default": true
50385      },
50386      showSearchTerm: {
50387        type: "boolean",
50388        "default": true
50389      }
50390    },
50391    supports: {
50392      align: ["wide", "full"],
50393      html: false,
50394      color: {
50395        gradients: true,
50396        __experimentalDefaultControls: {
50397          background: true,
50398          text: true
50399        }
50400      },
50401      spacing: {
50402        margin: true,
50403        padding: true
50404      },
50405      typography: {
50406        fontSize: true,
50407        lineHeight: true,
50408        __experimentalFontFamily: true,
50409        __experimentalFontStyle: true,
50410        __experimentalFontWeight: true,
50411        __experimentalLetterSpacing: true,
50412        __experimentalTextTransform: true,
50413        __experimentalTextDecoration: true,
50414        __experimentalDefaultControls: {
50415          fontSize: true
50416        }
50417      },
50418      interactivity: {
50419        clientNavigation: true
50420      },
50421      __experimentalBorder: {
50422        radius: true,
50423        color: true,
50424        width: true,
50425        style: true,
50426        __experimentalDefaultControls: {
50427          radius: true,
50428          color: true,
50429          width: true,
50430          style: true
50431        }
50432      }
50433    },
50434    style: "wp-block-query-title"
50435  };
50436  
50437  
50438  
50439  const {
50440    name: query_title_name
50441  } = query_title_metadata;
50442  
50443  const query_title_settings = {
50444    icon: library_title,
50445    edit: QueryTitleEdit,
50446    variations: query_title_variations,
50447    deprecated: query_title_deprecated
50448  };
50449  const query_title_init = () => initBlock({
50450    name: query_title_name,
50451    metadata: query_title_metadata,
50452    settings: query_title_settings
50453  });
50454  
50455  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/quote.js
50456  /**
50457   * WordPress dependencies
50458   */
50459  
50460  
50461  const quote = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
50462    viewBox: "0 0 24 24",
50463    xmlns: "http://www.w3.org/2000/svg",
50464    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
50465      d: "M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z"
50466    })
50467  });
50468  /* harmony default export */ const library_quote = (quote);
50469  
50470  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js
50471  /**
50472   * External dependencies
50473   */
50474  
50475  
50476  /**
50477   * WordPress dependencies
50478   */
50479  
50480  
50481  
50482  
50483  const migrateToQuoteV2 = attributes => {
50484    const {
50485      value,
50486      ...restAttributes
50487    } = attributes;
50488    return [{
50489      ...restAttributes
50490    }, value ? (0,external_wp_blocks_namespaceObject.parseWithAttributeSchema)(value, {
50491      type: 'array',
50492      source: 'query',
50493      selector: 'p',
50494      query: {
50495        content: {
50496          type: 'string',
50497          source: 'html'
50498        }
50499      }
50500    }).map(({
50501      content
50502    }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
50503      content
50504    })) : (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')];
50505  };
50506  const deprecated_TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
50507  
50508  // Migrate existing text alignment settings to the renamed attribute.
50509  const deprecated_migrateTextAlign = (attributes, innerBlocks) => {
50510    const {
50511      align,
50512      ...rest
50513    } = attributes;
50514    // Check if there are valid alignments stored in the old attribute
50515    // and assign them to the new attribute name.
50516    const migratedAttributes = deprecated_TEXT_ALIGN_OPTIONS.includes(align) ? {
50517      ...rest,
50518      textAlign: align
50519    } : attributes;
50520    return [migratedAttributes, innerBlocks];
50521  };
50522  
50523  // Migrate the v2 blocks with style === `2`;
50524  const migrateLargeStyle = (attributes, innerBlocks) => {
50525    return [{
50526      ...attributes,
50527      className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large'
50528    }, innerBlocks];
50529  };
50530  
50531  // Version before the 'align' attribute was replaced with 'textAlign'.
50532  const quote_deprecated_v4 = {
50533    attributes: {
50534      value: {
50535        type: 'string',
50536        source: 'html',
50537        selector: 'blockquote',
50538        multiline: 'p',
50539        default: '',
50540        role: 'content'
50541      },
50542      citation: {
50543        type: 'string',
50544        source: 'html',
50545        selector: 'cite',
50546        default: '',
50547        role: 'content'
50548      },
50549      align: {
50550        type: 'string'
50551      }
50552    },
50553    supports: {
50554      anchor: true,
50555      html: false,
50556      __experimentalOnEnter: true,
50557      __experimentalOnMerge: true,
50558      typography: {
50559        fontSize: true,
50560        lineHeight: true,
50561        __experimentalFontFamily: true,
50562        __experimentalFontWeight: true,
50563        __experimentalFontStyle: true,
50564        __experimentalTextTransform: true,
50565        __experimentalTextDecoration: true,
50566        __experimentalLetterSpacing: true,
50567        __experimentalDefaultControls: {
50568          fontSize: true,
50569          fontAppearance: true
50570        }
50571      },
50572      color: {
50573        gradients: true,
50574        heading: true,
50575        link: true,
50576        __experimentalDefaultControls: {
50577          background: true,
50578          text: true
50579        }
50580      }
50581    },
50582    isEligible: ({
50583      align
50584    }) => deprecated_TEXT_ALIGN_OPTIONS.includes(align),
50585    save({
50586      attributes
50587    }) {
50588      const {
50589        align,
50590        citation
50591      } = attributes;
50592      const className = dist_clsx({
50593        [`has-text-align-$align}`]: align
50594      });
50595      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
50596        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
50597          className
50598        }),
50599        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {}), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50600          tagName: "cite",
50601          value: citation
50602        })]
50603      });
50604    },
50605    migrate: deprecated_migrateTextAlign
50606  };
50607  const quote_deprecated_v3 = {
50608    attributes: {
50609      value: {
50610        type: 'string',
50611        source: 'html',
50612        selector: 'blockquote',
50613        multiline: 'p',
50614        default: '',
50615        role: 'content'
50616      },
50617      citation: {
50618        type: 'string',
50619        source: 'html',
50620        selector: 'cite',
50621        default: '',
50622        role: 'content'
50623      },
50624      align: {
50625        type: 'string'
50626      }
50627    },
50628    supports: {
50629      anchor: true,
50630      __experimentalSlashInserter: true,
50631      typography: {
50632        fontSize: true,
50633        lineHeight: true,
50634        __experimentalFontStyle: true,
50635        __experimentalFontWeight: true,
50636        __experimentalLetterSpacing: true,
50637        __experimentalTextTransform: true,
50638        __experimentalDefaultControls: {
50639          fontSize: true,
50640          fontAppearance: true
50641        }
50642      }
50643    },
50644    save({
50645      attributes
50646    }) {
50647      const {
50648        align,
50649        value,
50650        citation
50651      } = attributes;
50652      const className = dist_clsx({
50653        [`has-text-align-$align}`]: align
50654      });
50655      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
50656        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
50657          className
50658        }),
50659        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50660          multiline: true,
50661          value: value
50662        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50663          tagName: "cite",
50664          value: citation
50665        })]
50666      });
50667    },
50668    migrate(attributes) {
50669      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
50670    }
50671  };
50672  const quote_deprecated_v2 = {
50673    attributes: {
50674      value: {
50675        type: 'string',
50676        source: 'html',
50677        selector: 'blockquote',
50678        multiline: 'p',
50679        default: ''
50680      },
50681      citation: {
50682        type: 'string',
50683        source: 'html',
50684        selector: 'cite',
50685        default: ''
50686      },
50687      align: {
50688        type: 'string'
50689      }
50690    },
50691    migrate(attributes) {
50692      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
50693    },
50694    save({
50695      attributes
50696    }) {
50697      const {
50698        align,
50699        value,
50700        citation
50701      } = attributes;
50702      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
50703        style: {
50704          textAlign: align ? align : null
50705        },
50706        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50707          multiline: true,
50708          value: value
50709        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50710          tagName: "cite",
50711          value: citation
50712        })]
50713      });
50714    }
50715  };
50716  const quote_deprecated_v1 = {
50717    attributes: {
50718      value: {
50719        type: 'string',
50720        source: 'html',
50721        selector: 'blockquote',
50722        multiline: 'p',
50723        default: ''
50724      },
50725      citation: {
50726        type: 'string',
50727        source: 'html',
50728        selector: 'cite',
50729        default: ''
50730      },
50731      align: {
50732        type: 'string'
50733      },
50734      style: {
50735        type: 'number',
50736        default: 1
50737      }
50738    },
50739    migrate(attributes) {
50740      if (attributes.style === 2) {
50741        const {
50742          style,
50743          ...restAttributes
50744        } = attributes;
50745        return deprecated_migrateTextAlign(...migrateLargeStyle(...migrateToQuoteV2(restAttributes)));
50746      }
50747      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
50748    },
50749    save({
50750      attributes
50751    }) {
50752      const {
50753        align,
50754        value,
50755        citation,
50756        style
50757      } = attributes;
50758      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
50759        className: style === 2 ? 'is-large' : '',
50760        style: {
50761          textAlign: align ? align : null
50762        },
50763        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50764          multiline: true,
50765          value: value
50766        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50767          tagName: "cite",
50768          value: citation
50769        })]
50770      });
50771    }
50772  };
50773  const quote_deprecated_v0 = {
50774    attributes: {
50775      value: {
50776        type: 'string',
50777        source: 'html',
50778        selector: 'blockquote',
50779        multiline: 'p',
50780        default: ''
50781      },
50782      citation: {
50783        type: 'string',
50784        source: 'html',
50785        selector: 'footer',
50786        default: ''
50787      },
50788      align: {
50789        type: 'string'
50790      },
50791      style: {
50792        type: 'number',
50793        default: 1
50794      }
50795    },
50796    migrate(attributes) {
50797      if (!isNaN(parseInt(attributes.style))) {
50798        const {
50799          style,
50800          ...restAttributes
50801        } = attributes;
50802        return deprecated_migrateTextAlign(...migrateToQuoteV2(restAttributes));
50803      }
50804      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
50805    },
50806    save({
50807      attributes
50808    }) {
50809      const {
50810        align,
50811        value,
50812        citation,
50813        style
50814      } = attributes;
50815      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
50816        className: `blocks-quote-style-$style}`,
50817        style: {
50818          textAlign: align ? align : null
50819        },
50820        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50821          multiline: true,
50822          value: value
50823        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
50824          tagName: "footer",
50825          value: citation
50826        })]
50827      });
50828    }
50829  };
50830  
50831  /**
50832   * New deprecations need to be placed first
50833   * for them to have higher priority.
50834   *
50835   * Old deprecations may need to be updated as well.
50836   *
50837   * See block-deprecation.md
50838   */
50839  /* harmony default export */ const quote_deprecated = ([quote_deprecated_v4, quote_deprecated_v3, quote_deprecated_v2, quote_deprecated_v1, quote_deprecated_v0]);
50840  
50841  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/verse.js
50842  /**
50843   * WordPress dependencies
50844   */
50845  
50846  
50847  const verse = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
50848    viewBox: "0 0 24 24",
50849    xmlns: "http://www.w3.org/2000/svg",
50850    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
50851      d: "M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z"
50852    })
50853  });
50854  /* harmony default export */ const library_verse = (verse);
50855  
50856  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/edit.js
50857  /**
50858   * External dependencies
50859   */
50860  
50861  
50862  /**
50863   * WordPress dependencies
50864   */
50865  
50866  
50867  
50868  
50869  
50870  
50871  
50872  
50873  /**
50874   * Internal dependencies
50875   */
50876  
50877  
50878  
50879  
50880  
50881  const edit_isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
50882  const quote_edit_TEMPLATE = [['core/paragraph', {}]];
50883  
50884  /**
50885   * At the moment, deprecations don't handle create blocks from attributes
50886   * (like when using CPT templates). For this reason, this hook is necessary
50887   * to avoid breaking templates using the old quote block format.
50888   *
50889   * @param {Object} attributes Block attributes.
50890   * @param {string} clientId   Block client ID.
50891   */
50892  const edit_useMigrateOnLoad = (attributes, clientId) => {
50893    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
50894    const {
50895      updateBlockAttributes,
50896      replaceInnerBlocks
50897    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
50898    (0,external_wp_element_namespaceObject.useEffect)(() => {
50899      // As soon as the block is loaded, migrate it to the new version.
50900  
50901      if (!attributes.value) {
50902        // No need to migrate if it doesn't have the value attribute.
50903        return;
50904      }
50905      const [newAttributes, newInnerBlocks] = migrateToQuoteV2(attributes);
50906      external_wp_deprecated_default()('Value attribute on the quote block', {
50907        since: '6.0',
50908        version: '6.5',
50909        alternative: 'inner blocks'
50910      });
50911      registry.batch(() => {
50912        updateBlockAttributes(clientId, newAttributes);
50913        replaceInnerBlocks(clientId, newInnerBlocks);
50914      });
50915    }, [attributes.value]);
50916  };
50917  function QuoteEdit({
50918    attributes,
50919    setAttributes,
50920    insertBlocksAfter,
50921    clientId,
50922    className,
50923    style,
50924    isSelected
50925  }) {
50926    const {
50927      textAlign
50928    } = attributes;
50929    edit_useMigrateOnLoad(attributes, clientId);
50930    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
50931      className: dist_clsx(className, {
50932        [`has-text-align-$textAlign}`]: textAlign
50933      }),
50934      ...(!edit_isWebPlatform && {
50935        style
50936      })
50937    });
50938    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
50939      template: quote_edit_TEMPLATE,
50940      templateInsertUpdatesSelection: true,
50941      __experimentalCaptureToolbars: true,
50942      renderAppender: false
50943    });
50944    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50945      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
50946        group: "block",
50947        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
50948          value: textAlign,
50949          onChange: nextAlign => {
50950            setAttributes({
50951              textAlign: nextAlign
50952            });
50953          }
50954        })
50955      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.BlockQuotation, {
50956        ...innerBlocksProps,
50957        children: [innerBlocksProps.children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
50958          attributeKey: "citation",
50959          tagName: edit_isWebPlatform ? 'cite' : 'p',
50960          style: edit_isWebPlatform && {
50961            display: 'block'
50962          },
50963          isSelected: isSelected,
50964          attributes: attributes,
50965          setAttributes: setAttributes,
50966          __unstableMobileNoFocusOnMount: true,
50967          icon: library_verse,
50968          label: (0,external_wp_i18n_namespaceObject.__)('Quote citation'),
50969          placeholder:
50970          // translators: placeholder text used for the
50971          // citation
50972          (0,external_wp_i18n_namespaceObject.__)('Add citation'),
50973          addLabel: (0,external_wp_i18n_namespaceObject.__)('Add citation'),
50974          removeLabel: (0,external_wp_i18n_namespaceObject.__)('Remove citation'),
50975          excludeElementClassName: true,
50976          className: "wp-block-quote__citation",
50977          insertBlocksAfter: insertBlocksAfter,
50978          ...(!edit_isWebPlatform ? {
50979            textAlign
50980          } : {})
50981        })]
50982      })]
50983    });
50984  }
50985  
50986  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/save.js
50987  /**
50988   * External dependencies
50989   */
50990  
50991  
50992  /**
50993   * WordPress dependencies
50994   */
50995  
50996  
50997  
50998  function quote_save_save({
50999    attributes
51000  }) {
51001    const {
51002      textAlign,
51003      citation
51004    } = attributes;
51005    const className = dist_clsx({
51006      [`has-text-align-$textAlign}`]: textAlign
51007    });
51008    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
51009      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
51010        className
51011      }),
51012      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {}), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
51013        tagName: "cite",
51014        value: citation
51015      })]
51016    });
51017  }
51018  
51019  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/transforms.js
51020  /**
51021   * WordPress dependencies
51022   */
51023  
51024  
51025  const quote_transforms_transforms = {
51026    from: [{
51027      type: 'block',
51028      blocks: ['core/pullquote'],
51029      transform: ({
51030        value,
51031        align,
51032        citation,
51033        anchor,
51034        fontSize,
51035        style
51036      }) => {
51037        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
51038          align,
51039          citation,
51040          anchor,
51041          fontSize,
51042          style
51043        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
51044          content: value
51045        })]);
51046      }
51047    }, {
51048      type: 'prefix',
51049      prefix: '>',
51050      transform: content => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
51051        content
51052      })])
51053    }, {
51054      type: 'raw',
51055      schema: () => ({
51056        blockquote: {
51057          children: '*'
51058        }
51059      }),
51060      selector: 'blockquote',
51061      transform: (node, handler) => {
51062        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote',
51063        // Don't try to parse any `cite` out of this content.
51064        // * There may be more than one cite.
51065        // * There may be more attribution text than just the cite.
51066        // * If the cite is nested in the quoted text, it's wrong to
51067        //   remove it.
51068        {}, handler({
51069          HTML: node.innerHTML,
51070          mode: 'BLOCKS'
51071        }));
51072      }
51073    }, {
51074      type: 'block',
51075      isMultiBlock: true,
51076      blocks: ['*'],
51077      isMatch: ({}, blocks) => {
51078        // When a single block is selected make the tranformation
51079        // available only to specific blocks that make sense.
51080        if (blocks.length === 1) {
51081          return ['core/paragraph', 'core/heading', 'core/list', 'core/pullquote'].includes(blocks[0].name);
51082        }
51083        return !blocks.some(({
51084          name
51085        }) => name === 'core/quote');
51086      },
51087      __experimentalConvert: blocks => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {}, blocks.map(block => (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks)))
51088    }],
51089    to: [{
51090      type: 'block',
51091      blocks: ['core/pullquote'],
51092      isMatch: ({}, block) => {
51093        return block.innerBlocks.every(({
51094          name
51095        }) => name === 'core/paragraph');
51096      },
51097      transform: ({
51098        align,
51099        citation,
51100        anchor,
51101        fontSize,
51102        style
51103      }, innerBlocks) => {
51104        const value = innerBlocks.map(({
51105          attributes
51106        }) => `$attributes.content}`).join('<br>');
51107        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
51108          value,
51109          align,
51110          citation,
51111          anchor,
51112          fontSize,
51113          style
51114        });
51115      }
51116    }, {
51117      type: 'block',
51118      blocks: ['core/paragraph'],
51119      transform: ({
51120        citation
51121      }, innerBlocks) => external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
51122        content: citation
51123      })]
51124    }, {
51125      type: 'block',
51126      blocks: ['core/group'],
51127      transform: ({
51128        citation,
51129        anchor
51130      }, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
51131        anchor
51132      }, external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
51133        content: citation
51134      })])
51135    }],
51136    ungroup: ({
51137      citation
51138    }, innerBlocks) => external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
51139      content: citation
51140    })]
51141  };
51142  /* harmony default export */ const quote_transforms = (quote_transforms_transforms);
51143  
51144  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/index.js
51145  /**
51146   * WordPress dependencies
51147   */
51148  
51149  
51150  
51151  /**
51152   * Internal dependencies
51153   */
51154  
51155  
51156  
51157  const quote_metadata = {
51158    $schema: "https://schemas.wp.org/trunk/block.json",
51159    apiVersion: 3,
51160    name: "core/quote",
51161    title: "Quote",
51162    category: "text",
51163    description: "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" \u2014 Julio Cort\xE1zar",
51164    keywords: ["blockquote", "cite"],
51165    textdomain: "default",
51166    attributes: {
51167      value: {
51168        type: "string",
51169        source: "html",
51170        selector: "blockquote",
51171        multiline: "p",
51172        "default": "",
51173        role: "content"
51174      },
51175      citation: {
51176        type: "rich-text",
51177        source: "rich-text",
51178        selector: "cite",
51179        role: "content"
51180      },
51181      textAlign: {
51182        type: "string"
51183      }
51184    },
51185    supports: {
51186      anchor: true,
51187      align: ["left", "right", "wide", "full"],
51188      html: false,
51189      background: {
51190        backgroundImage: true,
51191        backgroundSize: true,
51192        __experimentalDefaultControls: {
51193          backgroundImage: true
51194        }
51195      },
51196      __experimentalBorder: {
51197        color: true,
51198        radius: true,
51199        style: true,
51200        width: true,
51201        __experimentalDefaultControls: {
51202          color: true,
51203          radius: true,
51204          style: true,
51205          width: true
51206        }
51207      },
51208      dimensions: {
51209        minHeight: true,
51210        __experimentalDefaultControls: {
51211          minHeight: false
51212        }
51213      },
51214      __experimentalOnEnter: true,
51215      __experimentalOnMerge: true,
51216      typography: {
51217        fontSize: true,
51218        lineHeight: true,
51219        __experimentalFontFamily: true,
51220        __experimentalFontWeight: true,
51221        __experimentalFontStyle: true,
51222        __experimentalTextTransform: true,
51223        __experimentalTextDecoration: true,
51224        __experimentalLetterSpacing: true,
51225        __experimentalDefaultControls: {
51226          fontSize: true
51227        }
51228      },
51229      color: {
51230        gradients: true,
51231        heading: true,
51232        link: true,
51233        __experimentalDefaultControls: {
51234          background: true,
51235          text: true
51236        }
51237      },
51238      layout: {
51239        allowEditing: false
51240      },
51241      spacing: {
51242        blockGap: true,
51243        padding: true,
51244        margin: true
51245      },
51246      interactivity: {
51247        clientNavigation: true
51248      }
51249    },
51250    styles: [{
51251      name: "default",
51252      label: "Default",
51253      isDefault: true
51254    }, {
51255      name: "plain",
51256      label: "Plain"
51257    }],
51258    editorStyle: "wp-block-quote-editor",
51259    style: "wp-block-quote"
51260  };
51261  
51262  
51263  const {
51264    name: quote_name
51265  } = quote_metadata;
51266  
51267  const quote_settings = {
51268    icon: library_quote,
51269    example: {
51270      attributes: {
51271        citation: 'Julio Cortázar'
51272      },
51273      innerBlocks: [{
51274        name: 'core/paragraph',
51275        attributes: {
51276          content: (0,external_wp_i18n_namespaceObject.__)('In quoting others, we cite ourselves.')
51277        }
51278      }]
51279    },
51280    transforms: quote_transforms,
51281    edit: QuoteEdit,
51282    save: quote_save_save,
51283    deprecated: quote_deprecated
51284  };
51285  const quote_init = () => initBlock({
51286    name: quote_name,
51287    metadata: quote_metadata,
51288    settings: quote_settings
51289  });
51290  
51291  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js
51292  /**
51293   * WordPress dependencies
51294   */
51295  
51296  
51297  const symbol = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
51298    xmlns: "http://www.w3.org/2000/svg",
51299    viewBox: "0 0 24 24",
51300    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
51301      d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
51302    })
51303  });
51304  /* harmony default export */ const library_symbol = (symbol);
51305  
51306  ;// CONCATENATED MODULE: external ["wp","patterns"]
51307  const external_wp_patterns_namespaceObject = window["wp"]["patterns"];
51308  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/edit.js
51309  /**
51310   * External dependencies
51311   */
51312  
51313  
51314  /**
51315   * WordPress dependencies
51316   */
51317  
51318  
51319  
51320  
51321  
51322  
51323  
51324  
51325  
51326  /**
51327   * Internal dependencies
51328   */
51329  
51330  
51331  
51332  
51333  
51334  const {
51335    useLayoutClasses
51336  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
51337  const {
51338    isOverridableBlock,
51339    hasOverridableBlocks
51340  } = unlock(external_wp_patterns_namespaceObject.privateApis);
51341  const fullAlignments = ['full', 'wide', 'left', 'right'];
51342  const useInferredLayout = (blocks, parentLayout) => {
51343    const initialInferredAlignmentRef = (0,external_wp_element_namespaceObject.useRef)();
51344    return (0,external_wp_element_namespaceObject.useMemo)(() => {
51345      // Exit early if the pattern's blocks haven't loaded yet.
51346      if (!blocks?.length) {
51347        return {};
51348      }
51349      let alignment = initialInferredAlignmentRef.current;
51350  
51351      // Only track the initial alignment so that temporarily removed
51352      // alignments can be reapplied.
51353      if (alignment === undefined) {
51354        const isConstrained = parentLayout?.type === 'constrained';
51355        const hasFullAlignment = blocks.some(block => fullAlignments.includes(block.attributes.align));
51356        alignment = isConstrained && hasFullAlignment ? 'full' : null;
51357        initialInferredAlignmentRef.current = alignment;
51358      }
51359      const layout = alignment ? parentLayout : undefined;
51360      return {
51361        alignment,
51362        layout
51363      };
51364    }, [blocks, parentLayout]);
51365  };
51366  function setBlockEditMode(setEditMode, blocks, mode) {
51367    blocks.forEach(block => {
51368      const editMode = mode || (isOverridableBlock(block) ? 'contentOnly' : 'disabled');
51369      setEditMode(block.clientId, editMode);
51370      setBlockEditMode(setEditMode, block.innerBlocks,
51371      // Disable editing for nested patterns.
51372      block.name === block_name ? 'disabled' : mode);
51373    });
51374  }
51375  function RecursionWarning() {
51376    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
51377    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51378      ...blockProps,
51379      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
51380        children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
51381      })
51382    });
51383  }
51384  const edit_NOOP = () => {};
51385  
51386  // Wrap the main Edit function for the pattern block with a recursion wrapper
51387  // that allows short-circuiting rendering as early as possible, before any
51388  // of the other effects in the block edit have run.
51389  function ReusableBlockEditRecursionWrapper(props) {
51390    const {
51391      ref
51392    } = props.attributes;
51393    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(ref);
51394    if (hasAlreadyRendered) {
51395      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionWarning, {});
51396    }
51397    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
51398      uniqueId: ref,
51399      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReusableBlockEdit, {
51400        ...props
51401      })
51402    });
51403  }
51404  function ReusableBlockControl({
51405    recordId,
51406    canOverrideBlocks,
51407    hasContent,
51408    handleEditOriginal,
51409    resetContent
51410  }) {
51411    const canUserEdit = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_coreData_namespaceObject.store).canUser('update', {
51412      kind: 'postType',
51413      name: 'wp_block',
51414      id: recordId
51415    }), [recordId]);
51416    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51417      children: [canUserEdit && !!handleEditOriginal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
51418        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
51419          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
51420            onClick: handleEditOriginal,
51421            children: (0,external_wp_i18n_namespaceObject.__)('Edit original')
51422          })
51423        })
51424      }), canOverrideBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
51425        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
51426          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
51427            onClick: resetContent,
51428            disabled: !hasContent,
51429            children: (0,external_wp_i18n_namespaceObject.__)('Reset')
51430          })
51431        })
51432      })]
51433    });
51434  }
51435  function ReusableBlockEdit({
51436    name,
51437    attributes: {
51438      ref,
51439      content
51440    },
51441    __unstableParentLayout: parentLayout,
51442    clientId: patternClientId,
51443    setAttributes
51444  }) {
51445    const {
51446      record,
51447      hasResolved
51448    } = (0,external_wp_coreData_namespaceObject.useEntityRecord)('postType', 'wp_block', ref);
51449    const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_block', {
51450      id: ref
51451    });
51452    const isMissing = hasResolved && !record;
51453    const {
51454      setBlockEditingMode,
51455      __unstableMarkLastChangeAsPersistent
51456    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
51457    const {
51458      innerBlocks,
51459      onNavigateToEntityRecord,
51460      editingMode,
51461      hasPatternOverridesSource
51462    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
51463      const {
51464        getBlocks,
51465        getSettings,
51466        getBlockEditingMode
51467      } = select(external_wp_blockEditor_namespaceObject.store);
51468      // For editing link to the site editor if the theme and user permissions support it.
51469      return {
51470        innerBlocks: getBlocks(patternClientId),
51471        onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
51472        editingMode: getBlockEditingMode(patternClientId),
51473        hasPatternOverridesSource: !!(0,external_wp_blocks_namespaceObject.getBlockBindingsSource)('core/pattern-overrides')
51474      };
51475    }, [patternClientId]);
51476  
51477    // Sync the editing mode of the pattern block with the inner blocks.
51478    (0,external_wp_element_namespaceObject.useEffect)(() => {
51479      setBlockEditMode(setBlockEditingMode, innerBlocks,
51480      // Disable editing if the pattern itself is disabled.
51481      editingMode === 'disabled' || !hasPatternOverridesSource ? 'disabled' : undefined);
51482    }, [editingMode, innerBlocks, setBlockEditingMode, hasPatternOverridesSource]);
51483    const canOverrideBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => hasPatternOverridesSource && hasOverridableBlocks(blocks), [hasPatternOverridesSource, blocks]);
51484    const {
51485      alignment,
51486      layout
51487    } = useInferredLayout(blocks, parentLayout);
51488    const layoutClasses = useLayoutClasses({
51489      layout
51490    }, name);
51491    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
51492      className: dist_clsx('block-library-block__reusable-block-container', layout && layoutClasses, {
51493        [`align$alignment}`]: alignment
51494      })
51495    });
51496    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
51497      templateLock: 'all',
51498      layout,
51499      value: blocks,
51500      onInput: edit_NOOP,
51501      onChange: edit_NOOP,
51502      renderAppender: blocks?.length ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
51503    });
51504    const handleEditOriginal = () => {
51505      onNavigateToEntityRecord({
51506        postId: ref,
51507        postType: 'wp_block'
51508      });
51509    };
51510    const resetContent = () => {
51511      if (content) {
51512        // Make sure any previous changes are persisted before resetting.
51513        __unstableMarkLastChangeAsPersistent();
51514        setAttributes({
51515          content: undefined
51516        });
51517      }
51518    };
51519    let children = null;
51520    if (isMissing) {
51521      children = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
51522        children: (0,external_wp_i18n_namespaceObject.__)('Block has been deleted or is unavailable.')
51523      });
51524    }
51525    if (!hasResolved) {
51526      children = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
51527        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
51528      });
51529    }
51530    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51531      children: [hasResolved && !isMissing && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReusableBlockControl, {
51532        recordId: ref,
51533        canOverrideBlocks: canOverrideBlocks,
51534        hasContent: !!content,
51535        handleEditOriginal: onNavigateToEntityRecord ? handleEditOriginal : undefined,
51536        resetContent: resetContent
51537      }), children === null ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51538        ...innerBlocksProps
51539      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51540        ...blockProps,
51541        children: children
51542      })]
51543    });
51544  }
51545  
51546  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/deprecated.js
51547  const isObject = obj => typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
51548  
51549  // v2: Migrate to a more condensed version of the 'content' attribute attribute.
51550  const block_deprecated_v2 = {
51551    attributes: {
51552      ref: {
51553        type: 'number'
51554      },
51555      content: {
51556        type: 'object'
51557      }
51558    },
51559    supports: {
51560      customClassName: false,
51561      html: false,
51562      inserter: false,
51563      renaming: false
51564    },
51565    // Force this deprecation to run whenever there's a values sub-property that's an object.
51566    //
51567    // This could fail in the future if a block ever has binding to a `values` attribute.
51568    // Some extra protection is added to ensure `values` is an object, but this only reduces
51569    // the likelihood, it doesn't solve it completely.
51570    isEligible({
51571      content
51572    }) {
51573      return !!content && Object.keys(content).every(contentKey => content[contentKey].values && isObject(content[contentKey].values));
51574    },
51575    /*
51576     * Old attribute format:
51577     * content: {
51578     *     "V98q_x": {
51579     *                // The attribute values are now stored as a 'values' sub-property.
51580     *         values: { content: 'My content value' },
51581     *            // ... additional metadata, like the block name can be stored here.
51582     *     }
51583     * }
51584     *
51585     * New attribute format:
51586     * content: {
51587     *     "V98q_x": {
51588     *         content: 'My content value',
51589     *     }
51590     * }
51591     */
51592    migrate(attributes) {
51593      const {
51594        content,
51595        ...retainedAttributes
51596      } = attributes;
51597      if (content && Object.keys(content).length) {
51598        const updatedContent = {
51599          ...content
51600        };
51601        for (const contentKey in content) {
51602          updatedContent[contentKey] = content[contentKey].values;
51603        }
51604        return {
51605          ...retainedAttributes,
51606          content: updatedContent
51607        };
51608      }
51609      return attributes;
51610    }
51611  };
51612  
51613  // v1: Rename the `overrides` attribute to the `content` attribute.
51614  const block_deprecated_v1 = {
51615    attributes: {
51616      ref: {
51617        type: 'number'
51618      },
51619      overrides: {
51620        type: 'object'
51621      }
51622    },
51623    supports: {
51624      customClassName: false,
51625      html: false,
51626      inserter: false,
51627      renaming: false
51628    },
51629    // Force this deprecation to run whenever there's an `overrides` object.
51630    isEligible({
51631      overrides
51632    }) {
51633      return !!overrides;
51634    },
51635    /*
51636     * Old attribute format:
51637     * overrides: {
51638     *     // An key is an id that represents a block.
51639     *     // The values are the attribute values of the block.
51640     *     "V98q_x": { content: 'My content value' }
51641     * }
51642     *
51643     * New attribute format:
51644     * content: {
51645     *     "V98q_x": { content: 'My content value' }
51646     * }
51647     *
51648     */
51649    migrate(attributes) {
51650      const {
51651        overrides,
51652        ...retainedAttributes
51653      } = attributes;
51654      const content = {};
51655      Object.keys(overrides).forEach(id => {
51656        content[id] = overrides[id];
51657      });
51658      return {
51659        ...retainedAttributes,
51660        content
51661      };
51662    }
51663  };
51664  /* harmony default export */ const block_deprecated = ([block_deprecated_v2, block_deprecated_v1]);
51665  
51666  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/index.js
51667  /**
51668   * WordPress dependencies
51669   */
51670  
51671  
51672  
51673  
51674  
51675  /**
51676   * Internal dependencies
51677   */
51678  
51679  const block_metadata = {
51680    $schema: "https://schemas.wp.org/trunk/block.json",
51681    apiVersion: 3,
51682    name: "core/block",
51683    title: "Pattern",
51684    category: "reusable",
51685    description: "Reuse this design across your site.",
51686    keywords: ["reusable"],
51687    textdomain: "default",
51688    attributes: {
51689      ref: {
51690        type: "number"
51691      },
51692      content: {
51693        type: "object",
51694        "default": {}
51695      }
51696    },
51697    providesContext: {
51698      "pattern/overrides": "content"
51699    },
51700    supports: {
51701      customClassName: false,
51702      html: false,
51703      inserter: false,
51704      renaming: false,
51705      interactivity: {
51706        clientNavigation: true
51707      }
51708    }
51709  };
51710  
51711  
51712  const {
51713    name: block_name
51714  } = block_metadata;
51715  
51716  const block_settings = {
51717    deprecated: block_deprecated,
51718    edit: ReusableBlockEditRecursionWrapper,
51719    icon: library_symbol,
51720    __experimentalLabel: ({
51721      ref
51722    }) => {
51723      if (!ref) {
51724        return;
51725      }
51726      const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_block', ref);
51727      if (!entity?.title) {
51728        return;
51729      }
51730      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entity.title);
51731    }
51732  };
51733  const block_init = () => initBlock({
51734    name: block_name,
51735    metadata: block_metadata,
51736    settings: block_settings
51737  });
51738  
51739  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/edit.js
51740  /**
51741   * WordPress dependencies
51742   */
51743  
51744  
51745  
51746  
51747  
51748  
51749  
51750  function ReadMore({
51751    attributes: {
51752      content,
51753      linkTarget
51754    },
51755    setAttributes,
51756    insertBlocksAfter
51757  }) {
51758    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
51759    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51760      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51761        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
51762          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51763          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
51764            __nextHasNoMarginBottom: true,
51765            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
51766            onChange: value => setAttributes({
51767              linkTarget: value ? '_blank' : '_self'
51768            }),
51769            checked: linkTarget === '_blank'
51770          })
51771        })
51772      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
51773        identifier: "content",
51774        tagName: "a",
51775        "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
51776        placeholder: (0,external_wp_i18n_namespaceObject.__)('Read more'),
51777        value: content,
51778        onChange: newValue => setAttributes({
51779          content: newValue
51780        }),
51781        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
51782        withoutInteractiveFormatting: true,
51783        ...blockProps
51784      })]
51785    });
51786  }
51787  
51788  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
51789  /**
51790   * WordPress dependencies
51791   */
51792  
51793  
51794  /**
51795   * Internal dependencies
51796   */
51797  
51798  const read_more_metadata = {
51799    $schema: "https://schemas.wp.org/trunk/block.json",
51800    apiVersion: 3,
51801    name: "core/read-more",
51802    title: "Read More",
51803    category: "theme",
51804    description: "Displays the link of a post, page, or any other content-type.",
51805    textdomain: "default",
51806    attributes: {
51807      content: {
51808        type: "string"
51809      },
51810      linkTarget: {
51811        type: "string",
51812        "default": "_self"
51813      }
51814    },
51815    usesContext: ["postId"],
51816    supports: {
51817      html: false,
51818      color: {
51819        gradients: true,
51820        text: true
51821      },
51822      typography: {
51823        fontSize: true,
51824        lineHeight: true,
51825        __experimentalFontFamily: true,
51826        __experimentalFontWeight: true,
51827        __experimentalFontStyle: true,
51828        __experimentalTextTransform: true,
51829        __experimentalLetterSpacing: true,
51830        __experimentalTextDecoration: true,
51831        __experimentalDefaultControls: {
51832          fontSize: true,
51833          textDecoration: true
51834        }
51835      },
51836      spacing: {
51837        margin: ["top", "bottom"],
51838        padding: true,
51839        __experimentalDefaultControls: {
51840          padding: true
51841        }
51842      },
51843      __experimentalBorder: {
51844        color: true,
51845        radius: true,
51846        width: true,
51847        __experimentalDefaultControls: {
51848          width: true
51849        }
51850      },
51851      interactivity: {
51852        clientNavigation: true
51853      }
51854    },
51855    style: "wp-block-read-more"
51856  };
51857  
51858  const {
51859    name: read_more_name
51860  } = read_more_metadata;
51861  
51862  const read_more_settings = {
51863    icon: library_link,
51864    edit: ReadMore
51865  };
51866  const read_more_init = () => initBlock({
51867    name: read_more_name,
51868    metadata: read_more_metadata,
51869    settings: read_more_settings
51870  });
51871  
51872  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rss.js
51873  /**
51874   * WordPress dependencies
51875   */
51876  
51877  
51878  const rss = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
51879    xmlns: "http://www.w3.org/2000/svg",
51880    viewBox: "0 0 24 24",
51881    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
51882      d: "M5 10.2h-.8v1.5H5c1.9 0 3.8.8 5.1 2.1 1.4 1.4 2.1 3.2 2.1 5.1v.8h1.5V19c0-2.3-.9-4.5-2.6-6.2-1.6-1.6-3.8-2.6-6.1-2.6zm10.4-1.6C12.6 5.8 8.9 4.2 5 4.2h-.8v1.5H5c3.5 0 6.9 1.4 9.4 3.9s3.9 5.8 3.9 9.4v.8h1.5V19c0-3.9-1.6-7.6-4.4-10.4zM4 20h3v-3H4v3z"
51883    })
51884  });
51885  /* harmony default export */ const library_rss = (rss);
51886  
51887  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/edit.js
51888  /**
51889   * WordPress dependencies
51890   */
51891  
51892  
51893  
51894  
51895  
51896  
51897  
51898  
51899  
51900  
51901  const DEFAULT_MIN_ITEMS = 1;
51902  const DEFAULT_MAX_ITEMS = 20;
51903  function RSSEdit({
51904    attributes,
51905    setAttributes
51906  }) {
51907    const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(!attributes.feedURL);
51908    const {
51909      blockLayout,
51910      columns,
51911      displayAuthor,
51912      displayDate,
51913      displayExcerpt,
51914      excerptLength,
51915      feedURL,
51916      itemsToShow
51917    } = attributes;
51918    function toggleAttribute(propName) {
51919      return () => {
51920        const value = attributes[propName];
51921        setAttributes({
51922          [propName]: !value
51923        });
51924      };
51925    }
51926    function onSubmitURL(event) {
51927      event.preventDefault();
51928      if (feedURL) {
51929        setAttributes({
51930          feedURL: (0,external_wp_url_namespaceObject.prependHTTP)(feedURL)
51931        });
51932        setIsEditing(false);
51933      }
51934    }
51935    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
51936    const label = (0,external_wp_i18n_namespaceObject.__)('RSS URL');
51937    if (isEditing) {
51938      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51939        ...blockProps,
51940        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
51941          icon: library_rss,
51942          label: label,
51943          instructions: (0,external_wp_i18n_namespaceObject.__)('Display entries from any RSS or Atom feed.'),
51944          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
51945            onSubmit: onSubmitURL,
51946            className: "wp-block-rss__placeholder-form",
51947            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
51948              __next40pxDefaultSize: true,
51949              label: label,
51950              hideLabelFromVision: true,
51951              placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL here…'),
51952              value: feedURL,
51953              onChange: value => setAttributes({
51954                feedURL: value
51955              }),
51956              className: "wp-block-rss__placeholder-input"
51957            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
51958              __next40pxDefaultSize: true,
51959              variant: "primary",
51960              type: "submit",
51961              children: (0,external_wp_i18n_namespaceObject.__)('Apply')
51962            })]
51963          })
51964        })
51965      });
51966    }
51967    const toolbarControls = [{
51968      icon: library_edit,
51969      title: (0,external_wp_i18n_namespaceObject.__)('Edit RSS URL'),
51970      onClick: () => setIsEditing(true)
51971    }, {
51972      icon: library_list,
51973      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'RSS block display setting'),
51974      onClick: () => setAttributes({
51975        blockLayout: 'list'
51976      }),
51977      isActive: blockLayout === 'list'
51978    }, {
51979      icon: library_grid,
51980      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'RSS block display setting'),
51981      onClick: () => setAttributes({
51982        blockLayout: 'grid'
51983      }),
51984      isActive: blockLayout === 'grid'
51985    }];
51986    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51987      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
51988        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
51989          controls: toolbarControls
51990        })
51991      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51992        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
51993          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51994          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
51995            __nextHasNoMarginBottom: true,
51996            __next40pxDefaultSize: true,
51997            label: (0,external_wp_i18n_namespaceObject.__)('Number of items'),
51998            value: itemsToShow,
51999            onChange: value => setAttributes({
52000              itemsToShow: value
52001            }),
52002            min: DEFAULT_MIN_ITEMS,
52003            max: DEFAULT_MAX_ITEMS,
52004            required: true
52005          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
52006            __nextHasNoMarginBottom: true,
52007            label: (0,external_wp_i18n_namespaceObject.__)('Display author'),
52008            checked: displayAuthor,
52009            onChange: toggleAttribute('displayAuthor')
52010          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
52011            __nextHasNoMarginBottom: true,
52012            label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
52013            checked: displayDate,
52014            onChange: toggleAttribute('displayDate')
52015          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
52016            __nextHasNoMarginBottom: true,
52017            label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
52018            checked: displayExcerpt,
52019            onChange: toggleAttribute('displayExcerpt')
52020          }), displayExcerpt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
52021            __nextHasNoMarginBottom: true,
52022            __next40pxDefaultSize: true,
52023            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
52024            value: excerptLength,
52025            onChange: value => setAttributes({
52026              excerptLength: value
52027            }),
52028            min: 10,
52029            max: 100,
52030            required: true
52031          }), blockLayout === 'grid' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
52032            __nextHasNoMarginBottom: true,
52033            __next40pxDefaultSize: true,
52034            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
52035            value: columns,
52036            onChange: value => setAttributes({
52037              columns: value
52038            }),
52039            min: 2,
52040            max: 6,
52041            required: true
52042          })]
52043        })
52044      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
52045        ...blockProps,
52046        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
52047          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
52048            block: "core/rss",
52049            attributes: attributes
52050          })
52051        })
52052      })]
52053    });
52054  }
52055  
52056  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/index.js
52057  /**
52058   * WordPress dependencies
52059   */
52060  
52061  
52062  /**
52063   * Internal dependencies
52064   */
52065  
52066  const rss_metadata = {
52067    $schema: "https://schemas.wp.org/trunk/block.json",
52068    apiVersion: 3,
52069    name: "core/rss",
52070    title: "RSS",
52071    category: "widgets",
52072    description: "Display entries from any RSS or Atom feed.",
52073    keywords: ["atom", "feed"],
52074    textdomain: "default",
52075    attributes: {
52076      columns: {
52077        type: "number",
52078        "default": 2
52079      },
52080      blockLayout: {
52081        type: "string",
52082        "default": "list"
52083      },
52084      feedURL: {
52085        type: "string",
52086        "default": ""
52087      },
52088      itemsToShow: {
52089        type: "number",
52090        "default": 5
52091      },
52092      displayExcerpt: {
52093        type: "boolean",
52094        "default": false
52095      },
52096      displayAuthor: {
52097        type: "boolean",
52098        "default": false
52099      },
52100      displayDate: {
52101        type: "boolean",
52102        "default": false
52103      },
52104      excerptLength: {
52105        type: "number",
52106        "default": 55
52107      }
52108    },
52109    supports: {
52110      align: true,
52111      html: false,
52112      interactivity: {
52113        clientNavigation: true
52114      }
52115    },
52116    editorStyle: "wp-block-rss-editor",
52117    style: "wp-block-rss"
52118  };
52119  
52120  const {
52121    name: rss_name
52122  } = rss_metadata;
52123  
52124  const rss_settings = {
52125    icon: library_rss,
52126    example: {
52127      attributes: {
52128        feedURL: 'https://wordpress.org'
52129      }
52130    },
52131    edit: RSSEdit
52132  };
52133  const rss_init = () => initBlock({
52134    name: rss_name,
52135    metadata: rss_metadata,
52136    settings: rss_settings
52137  });
52138  
52139  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js
52140  /**
52141   * WordPress dependencies
52142   */
52143  
52144  
52145  const search = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
52146    xmlns: "http://www.w3.org/2000/svg",
52147    viewBox: "0 0 24 24",
52148    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
52149      d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"
52150    })
52151  });
52152  /* harmony default export */ const library_search = (search);
52153  
52154  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/icons.js
52155  /**
52156   * WordPress dependencies
52157   */
52158  
52159  
52160  
52161  const buttonOnly = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
52162    xmlns: "http://www.w3.org/2000/svg",
52163    viewBox: "0 0 24 24",
52164    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52165      x: "7",
52166      y: "10",
52167      width: "10",
52168      height: "4",
52169      rx: "1",
52170      fill: "currentColor"
52171    })
52172  });
52173  const buttonOutside = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
52174    xmlns: "http://www.w3.org/2000/svg",
52175    viewBox: "0 0 24 24",
52176    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52177      x: "4.75",
52178      y: "15.25",
52179      width: "6.5",
52180      height: "9.5",
52181      transform: "rotate(-90 4.75 15.25)",
52182      stroke: "currentColor",
52183      strokeWidth: "1.5",
52184      fill: "none"
52185    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52186      x: "16",
52187      y: "10",
52188      width: "4",
52189      height: "4",
52190      rx: "1",
52191      fill: "currentColor"
52192    })]
52193  });
52194  const buttonInside = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
52195    xmlns: "http://www.w3.org/2000/svg",
52196    viewBox: "0 0 24 24",
52197    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52198      x: "4.75",
52199      y: "15.25",
52200      width: "6.5",
52201      height: "14.5",
52202      transform: "rotate(-90 4.75 15.25)",
52203      stroke: "currentColor",
52204      strokeWidth: "1.5",
52205      fill: "none"
52206    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52207      x: "14",
52208      y: "10",
52209      width: "4",
52210      height: "4",
52211      rx: "1",
52212      fill: "currentColor"
52213    })]
52214  });
52215  const noButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
52216    xmlns: "http://www.w3.org/2000/svg",
52217    viewBox: "0 0 24 24",
52218    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52219      x: "4.75",
52220      y: "15.25",
52221      width: "6.5",
52222      height: "14.5",
52223      transform: "rotate(-90 4.75 15.25)",
52224      stroke: "currentColor",
52225      fill: "none",
52226      strokeWidth: "1.5"
52227    })
52228  });
52229  const buttonWithIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
52230    xmlns: "http://www.w3.org/2000/svg",
52231    viewBox: "0 0 24 24",
52232    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52233      x: "4.75",
52234      y: "7.75",
52235      width: "14.5",
52236      height: "8.5",
52237      rx: "1.25",
52238      stroke: "currentColor",
52239      fill: "none",
52240      strokeWidth: "1.5"
52241    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52242      x: "8",
52243      y: "11",
52244      width: "8",
52245      height: "2",
52246      fill: "currentColor"
52247    })]
52248  });
52249  const toggleLabel = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
52250    xmlns: "http://www.w3.org/2000/svg",
52251    viewBox: "0 0 24 24",
52252    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52253      x: "4.75",
52254      y: "17.25",
52255      width: "5.5",
52256      height: "14.5",
52257      transform: "rotate(-90 4.75 17.25)",
52258      stroke: "currentColor",
52259      fill: "none",
52260      strokeWidth: "1.5"
52261    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
52262      x: "4",
52263      y: "7",
52264      width: "10",
52265      height: "2",
52266      fill: "currentColor"
52267    })]
52268  });
52269  
52270  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/utils.js
52271  /**
52272   * Constants
52273   */
52274  const PC_WIDTH_DEFAULT = 50;
52275  const PX_WIDTH_DEFAULT = 350;
52276  const MIN_WIDTH = 220;
52277  
52278  /**
52279   * Returns a boolean whether passed unit is percentage
52280   *
52281   * @param {string} unit Block width unit.
52282   *
52283   * @return {boolean}     Whether unit is '%'.
52284   */
52285  function utils_isPercentageUnit(unit) {
52286    return unit === '%';
52287  }
52288  
52289  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/edit.js
52290  /**
52291   * External dependencies
52292   */
52293  
52294  
52295  /**
52296   * WordPress dependencies
52297   */
52298  
52299  
52300  
52301  
52302  
52303  
52304  
52305  
52306  
52307  /**
52308   * Internal dependencies
52309   */
52310  
52311  
52312  
52313  // Used to calculate border radius adjustment to avoid "fat" corners when
52314  // button is placed inside wrapper.
52315  
52316  
52317  
52318  const DEFAULT_INNER_PADDING = '4px';
52319  const PERCENTAGE_WIDTHS = [25, 50, 75, 100];
52320  function SearchEdit({
52321    className,
52322    attributes,
52323    setAttributes,
52324    toggleSelection,
52325    isSelected,
52326    clientId
52327  }) {
52328    const {
52329      label,
52330      showLabel,
52331      placeholder,
52332      width,
52333      widthUnit,
52334      align,
52335      buttonText,
52336      buttonPosition,
52337      buttonUseIcon,
52338      isSearchFieldHidden,
52339      style
52340    } = attributes;
52341    const wasJustInsertedIntoNavigationBlock = (0,external_wp_data_namespaceObject.useSelect)(select => {
52342      const {
52343        getBlockParentsByBlockName,
52344        wasBlockJustInserted
52345      } = select(external_wp_blockEditor_namespaceObject.store);
52346      return !!getBlockParentsByBlockName(clientId, 'core/navigation')?.length && wasBlockJustInserted(clientId);
52347    }, [clientId]);
52348    const {
52349      __unstableMarkNextChangeAsNotPersistent
52350    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
52351    (0,external_wp_element_namespaceObject.useEffect)(() => {
52352      if (wasJustInsertedIntoNavigationBlock) {
52353        // This side-effect should not create an undo level.
52354        __unstableMarkNextChangeAsNotPersistent();
52355        setAttributes({
52356          showLabel: false,
52357          buttonUseIcon: true,
52358          buttonPosition: 'button-inside'
52359        });
52360      }
52361    }, [__unstableMarkNextChangeAsNotPersistent, wasJustInsertedIntoNavigationBlock, setAttributes]);
52362    const borderRadius = style?.border?.radius;
52363    let borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
52364  
52365    // Check for old deprecated numerical border radius. Done as a separate
52366    // check so that a borderRadius style won't overwrite the longhand
52367    // per-corner styles.
52368    if (typeof borderRadius === 'number') {
52369      borderProps = {
52370        ...borderProps,
52371        style: {
52372          ...borderProps.style,
52373          borderRadius: `$borderRadius}px`
52374        }
52375      };
52376    }
52377    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
52378    const [fluidTypographySettings, layout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.fluid', 'layout');
52379    const typographyProps = (0,external_wp_blockEditor_namespaceObject.getTypographyClassesAndStyles)(attributes, {
52380      typography: {
52381        fluid: fluidTypographySettings
52382      },
52383      layout: {
52384        wideSize: layout?.wideSize
52385      }
52386    });
52387    const unitControlInstanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
52388    const unitControlInputId = `wp-block-search__width-$unitControlInstanceId}`;
52389    const isButtonPositionInside = 'button-inside' === buttonPosition;
52390    const isButtonPositionOutside = 'button-outside' === buttonPosition;
52391    const hasNoButton = 'no-button' === buttonPosition;
52392    const hasOnlyButton = 'button-only' === buttonPosition;
52393    const searchFieldRef = (0,external_wp_element_namespaceObject.useRef)();
52394    const buttonRef = (0,external_wp_element_namespaceObject.useRef)();
52395    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
52396      availableUnits: ['%', 'px'],
52397      defaultValues: {
52398        '%': PC_WIDTH_DEFAULT,
52399        px: PX_WIDTH_DEFAULT
52400      }
52401    });
52402    (0,external_wp_element_namespaceObject.useEffect)(() => {
52403      if (hasOnlyButton && !isSelected) {
52404        setAttributes({
52405          isSearchFieldHidden: true
52406        });
52407      }
52408    }, [hasOnlyButton, isSelected, setAttributes]);
52409  
52410    // Show the search field when width changes.
52411    (0,external_wp_element_namespaceObject.useEffect)(() => {
52412      if (!hasOnlyButton || !isSelected) {
52413        return;
52414      }
52415      setAttributes({
52416        isSearchFieldHidden: false
52417      });
52418    }, [hasOnlyButton, isSelected, setAttributes, width]);
52419    const getBlockClassNames = () => {
52420      return dist_clsx(className, isButtonPositionInside ? 'wp-block-search__button-inside' : undefined, isButtonPositionOutside ? 'wp-block-search__button-outside' : undefined, hasNoButton ? 'wp-block-search__no-button' : undefined, hasOnlyButton ? 'wp-block-search__button-only' : undefined, !buttonUseIcon && !hasNoButton ? 'wp-block-search__text-button' : undefined, buttonUseIcon && !hasNoButton ? 'wp-block-search__icon-button' : undefined, hasOnlyButton && isSearchFieldHidden ? 'wp-block-search__searchfield-hidden' : undefined);
52421    };
52422    const buttonPositionControls = [{
52423      role: 'menuitemradio',
52424      title: (0,external_wp_i18n_namespaceObject.__)('Button outside'),
52425      isActive: buttonPosition === 'button-outside',
52426      icon: buttonOutside,
52427      onClick: () => {
52428        setAttributes({
52429          buttonPosition: 'button-outside',
52430          isSearchFieldHidden: false
52431        });
52432      }
52433    }, {
52434      role: 'menuitemradio',
52435      title: (0,external_wp_i18n_namespaceObject.__)('Button inside'),
52436      isActive: buttonPosition === 'button-inside',
52437      icon: buttonInside,
52438      onClick: () => {
52439        setAttributes({
52440          buttonPosition: 'button-inside',
52441          isSearchFieldHidden: false
52442        });
52443      }
52444    }, {
52445      role: 'menuitemradio',
52446      title: (0,external_wp_i18n_namespaceObject.__)('No button'),
52447      isActive: buttonPosition === 'no-button',
52448      icon: noButton,
52449      onClick: () => {
52450        setAttributes({
52451          buttonPosition: 'no-button',
52452          isSearchFieldHidden: false
52453        });
52454      }
52455    }, {
52456      role: 'menuitemradio',
52457      title: (0,external_wp_i18n_namespaceObject.__)('Button only'),
52458      isActive: buttonPosition === 'button-only',
52459      icon: buttonOnly,
52460      onClick: () => {
52461        setAttributes({
52462          buttonPosition: 'button-only',
52463          isSearchFieldHidden: true
52464        });
52465      }
52466    }];
52467    const getButtonPositionIcon = () => {
52468      switch (buttonPosition) {
52469        case 'button-inside':
52470          return buttonInside;
52471        case 'button-outside':
52472          return buttonOutside;
52473        case 'no-button':
52474          return noButton;
52475        case 'button-only':
52476          return buttonOnly;
52477      }
52478    };
52479    const getResizableSides = () => {
52480      if (hasOnlyButton) {
52481        return {};
52482      }
52483      return {
52484        right: align !== 'right',
52485        left: align === 'right'
52486      };
52487    };
52488    const renderTextField = () => {
52489      // If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.
52490      const textFieldClasses = dist_clsx('wp-block-search__input', isButtonPositionInside ? undefined : borderProps.className, typographyProps.className);
52491      const textFieldStyles = {
52492        ...(isButtonPositionInside ? {
52493          borderRadius
52494        } : borderProps.style),
52495        ...typographyProps.style,
52496        textDecoration: undefined
52497      };
52498      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
52499        type: "search",
52500        className: textFieldClasses,
52501        style: textFieldStyles,
52502        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text')
52503        // We hide the placeholder field's placeholder when there is a value. This
52504        // stops screen readers from reading the placeholder field's placeholder
52505        // which is confusing.
52506        ,
52507        placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
52508        value: placeholder,
52509        onChange: event => setAttributes({
52510          placeholder: event.target.value
52511        }),
52512        ref: searchFieldRef
52513      });
52514    };
52515    const renderButton = () => {
52516      // If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.
52517      const buttonClasses = dist_clsx('wp-block-search__button', colorProps.className, typographyProps.className, isButtonPositionInside ? undefined : borderProps.className, buttonUseIcon ? 'has-icon' : undefined, (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button'));
52518      const buttonStyles = {
52519        ...colorProps.style,
52520        ...typographyProps.style,
52521        ...(isButtonPositionInside ? {
52522          borderRadius
52523        } : borderProps.style)
52524      };
52525      const handleButtonClick = () => {
52526        if (hasOnlyButton) {
52527          setAttributes({
52528            isSearchFieldHidden: !isSearchFieldHidden
52529          });
52530        }
52531      };
52532      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52533        children: [buttonUseIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
52534          type: "button",
52535          className: buttonClasses,
52536          style: buttonStyles,
52537          "aria-label": buttonText ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(buttonText) : (0,external_wp_i18n_namespaceObject.__)('Search'),
52538          onClick: handleButtonClick,
52539          ref: buttonRef,
52540          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
52541            icon: library_search
52542          })
52543        }), !buttonUseIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
52544          identifier: "buttonText",
52545          className: buttonClasses,
52546          style: buttonStyles,
52547          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
52548          placeholder: (0,external_wp_i18n_namespaceObject.__)('Add button text…'),
52549          withoutInteractiveFormatting: true,
52550          value: buttonText,
52551          onChange: html => setAttributes({
52552            buttonText: html
52553          }),
52554          onClick: handleButtonClick
52555        })]
52556      });
52557    };
52558    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52559      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
52560        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
52561          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
52562            title: (0,external_wp_i18n_namespaceObject.__)('Toggle search label'),
52563            icon: toggleLabel,
52564            onClick: () => {
52565              setAttributes({
52566                showLabel: !showLabel
52567              });
52568            },
52569            className: showLabel ? 'is-pressed' : undefined
52570          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
52571            icon: getButtonPositionIcon(),
52572            label: (0,external_wp_i18n_namespaceObject.__)('Change button position'),
52573            controls: buttonPositionControls
52574          }), !hasNoButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
52575            title: (0,external_wp_i18n_namespaceObject.__)('Use button with icon'),
52576            icon: buttonWithIcon,
52577            onClick: () => {
52578              setAttributes({
52579                buttonUseIcon: !buttonUseIcon
52580              });
52581            },
52582            className: buttonUseIcon ? 'is-pressed' : undefined
52583          })]
52584        })
52585      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
52586        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
52587          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
52588          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
52589            className: "wp-block-search__inspector-controls",
52590            spacing: 4,
52591            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
52592              __next40pxDefaultSize: true,
52593              label: (0,external_wp_i18n_namespaceObject.__)('Width'),
52594              id: unitControlInputId // unused, kept for backwards compatibility
52595              ,
52596              min: utils_isPercentageUnit(widthUnit) ? 0 : MIN_WIDTH,
52597              max: utils_isPercentageUnit(widthUnit) ? 100 : undefined,
52598              step: 1,
52599              onChange: newWidth => {
52600                const parsedNewWidth = newWidth === '' ? undefined : parseInt(newWidth, 10);
52601                setAttributes({
52602                  width: parsedNewWidth
52603                });
52604              },
52605              onUnitChange: newUnit => {
52606                setAttributes({
52607                  width: '%' === newUnit ? PC_WIDTH_DEFAULT : PX_WIDTH_DEFAULT,
52608                  widthUnit: newUnit
52609                });
52610              },
52611              __unstableInputWidth: "80px",
52612              value: `$width}$widthUnit}`,
52613              units: units
52614            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
52615              label: (0,external_wp_i18n_namespaceObject.__)('Percentage Width'),
52616              value: PERCENTAGE_WIDTHS.includes(width) && widthUnit === '%' ? width : undefined,
52617              hideLabelFromVision: true,
52618              onChange: newWidth => {
52619                setAttributes({
52620                  width: newWidth,
52621                  widthUnit: '%'
52622                });
52623              },
52624              isBlock: true,
52625              __next40pxDefaultSize: true,
52626              __nextHasNoMarginBottom: true,
52627              children: PERCENTAGE_WIDTHS.map(widthValue => {
52628                return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
52629                  value: widthValue,
52630                  label: `$widthValue}%`
52631                }, widthValue);
52632              })
52633            })]
52634          })
52635        })
52636      })]
52637    });
52638    const padBorderRadius = radius => radius ? `calc($radius} + $DEFAULT_INNER_PADDING})` : undefined;
52639    const getWrapperStyles = () => {
52640      const styles = isButtonPositionInside ? borderProps.style : {
52641        borderRadius: borderProps.style?.borderRadius,
52642        borderTopLeftRadius: borderProps.style?.borderTopLeftRadius,
52643        borderTopRightRadius: borderProps.style?.borderTopRightRadius,
52644        borderBottomLeftRadius: borderProps.style?.borderBottomLeftRadius,
52645        borderBottomRightRadius: borderProps.style?.borderBottomRightRadius
52646      };
52647      const isNonZeroBorderRadius = borderRadius !== undefined && parseInt(borderRadius, 10) !== 0;
52648      if (isButtonPositionInside && isNonZeroBorderRadius) {
52649        // We have button inside wrapper and a border radius value to apply.
52650        // Add default padding so we don't get "fat" corners.
52651        //
52652        // CSS calc() is used here to support non-pixel units. The inline
52653        // style using calc() will only apply if both values have units.
52654  
52655        if (typeof borderRadius === 'object') {
52656          // Individual corner border radii present.
52657          const {
52658            topLeft,
52659            topRight,
52660            bottomLeft,
52661            bottomRight
52662          } = borderRadius;
52663          return {
52664            ...styles,
52665            borderTopLeftRadius: padBorderRadius(topLeft),
52666            borderTopRightRadius: padBorderRadius(topRight),
52667            borderBottomLeftRadius: padBorderRadius(bottomLeft),
52668            borderBottomRightRadius: padBorderRadius(bottomRight)
52669          };
52670        }
52671  
52672        // The inline style using calc() will only apply if both values
52673        // supplied to calc() have units. Deprecated block's may have
52674        // unitless integer.
52675        const radius = Number.isInteger(borderRadius) ? `$borderRadius}px` : borderRadius;
52676        styles.borderRadius = `calc($radius} + $DEFAULT_INNER_PADDING})`;
52677      }
52678      return styles;
52679    };
52680    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
52681      className: getBlockClassNames(),
52682      style: {
52683        ...typographyProps.style,
52684        // Input opts out of text decoration.
52685        textDecoration: undefined
52686      }
52687    });
52688    const labelClassnames = dist_clsx('wp-block-search__label', typographyProps.className);
52689    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
52690      ...blockProps,
52691      children: [controls, showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
52692        identifier: "label",
52693        className: labelClassnames,
52694        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
52695        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add label…'),
52696        withoutInteractiveFormatting: true,
52697        value: label,
52698        onChange: html => setAttributes({
52699          label: html
52700        }),
52701        style: typographyProps.style
52702      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ResizableBox, {
52703        size: {
52704          width: width === undefined ? 'auto' : `$width}$widthUnit}`,
52705          height: 'auto'
52706        },
52707        className: dist_clsx('wp-block-search__inside-wrapper', isButtonPositionInside ? borderProps.className : undefined),
52708        style: getWrapperStyles(),
52709        minWidth: MIN_WIDTH,
52710        enable: getResizableSides(),
52711        onResizeStart: (event, direction, elt) => {
52712          setAttributes({
52713            width: parseInt(elt.offsetWidth, 10),
52714            widthUnit: 'px'
52715          });
52716          toggleSelection(false);
52717        },
52718        onResizeStop: (event, direction, elt, delta) => {
52719          setAttributes({
52720            width: parseInt(width + delta.width, 10)
52721          });
52722          toggleSelection(true);
52723        },
52724        showHandle: isSelected,
52725        children: [(isButtonPositionInside || isButtonPositionOutside || hasOnlyButton) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52726          children: [renderTextField(), renderButton()]
52727        }), hasNoButton && renderTextField()]
52728      })]
52729    });
52730  }
52731  
52732  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/variations.js
52733  /**
52734   * WordPress dependencies
52735   */
52736  
52737  const search_variations_variations = [{
52738    name: 'default',
52739    isDefault: true,
52740    attributes: {
52741      buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
52742      label: (0,external_wp_i18n_namespaceObject.__)('Search')
52743    }
52744  }];
52745  /* harmony default export */ const search_variations = (search_variations_variations);
52746  
52747  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/index.js
52748  /**
52749   * WordPress dependencies
52750   */
52751  
52752  
52753  
52754  /**
52755   * Internal dependencies
52756   */
52757  
52758  const search_metadata = {
52759    $schema: "https://schemas.wp.org/trunk/block.json",
52760    apiVersion: 3,
52761    name: "core/search",
52762    title: "Search",
52763    category: "widgets",
52764    description: "Help visitors find your content.",
52765    keywords: ["find"],
52766    textdomain: "default",
52767    attributes: {
52768      label: {
52769        type: "string",
52770        role: "content"
52771      },
52772      showLabel: {
52773        type: "boolean",
52774        "default": true
52775      },
52776      placeholder: {
52777        type: "string",
52778        "default": "",
52779        role: "content"
52780      },
52781      width: {
52782        type: "number"
52783      },
52784      widthUnit: {
52785        type: "string"
52786      },
52787      buttonText: {
52788        type: "string",
52789        role: "content"
52790      },
52791      buttonPosition: {
52792        type: "string",
52793        "default": "button-outside"
52794      },
52795      buttonUseIcon: {
52796        type: "boolean",
52797        "default": false
52798      },
52799      query: {
52800        type: "object",
52801        "default": {}
52802      },
52803      isSearchFieldHidden: {
52804        type: "boolean",
52805        "default": false
52806      }
52807    },
52808    supports: {
52809      align: ["left", "center", "right"],
52810      color: {
52811        gradients: true,
52812        __experimentalSkipSerialization: true,
52813        __experimentalDefaultControls: {
52814          background: true,
52815          text: true
52816        }
52817      },
52818      interactivity: true,
52819      typography: {
52820        __experimentalSkipSerialization: true,
52821        __experimentalSelector: ".wp-block-search__label, .wp-block-search__input, .wp-block-search__button",
52822        fontSize: true,
52823        lineHeight: true,
52824        __experimentalFontFamily: true,
52825        __experimentalFontWeight: true,
52826        __experimentalFontStyle: true,
52827        __experimentalTextTransform: true,
52828        __experimentalTextDecoration: true,
52829        __experimentalLetterSpacing: true,
52830        __experimentalDefaultControls: {
52831          fontSize: true
52832        }
52833      },
52834      __experimentalBorder: {
52835        color: true,
52836        radius: true,
52837        width: true,
52838        __experimentalSkipSerialization: true,
52839        __experimentalDefaultControls: {
52840          color: true,
52841          radius: true,
52842          width: true
52843        }
52844      },
52845      spacing: {
52846        margin: true
52847      },
52848      html: false
52849    },
52850    editorStyle: "wp-block-search-editor",
52851    style: "wp-block-search"
52852  };
52853  
52854  
52855  const {
52856    name: search_name
52857  } = search_metadata;
52858  
52859  const search_settings = {
52860    icon: library_search,
52861    example: {
52862      attributes: {
52863        buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
52864        label: (0,external_wp_i18n_namespaceObject.__)('Search')
52865      },
52866      viewportWidth: 400
52867    },
52868    variations: search_variations,
52869    edit: SearchEdit
52870  };
52871  const search_init = () => initBlock({
52872    name: search_name,
52873    metadata: search_metadata,
52874    settings: search_settings
52875  });
52876  
52877  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/separator.js
52878  /**
52879   * WordPress dependencies
52880   */
52881  
52882  
52883  const separator = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
52884    viewBox: "0 0 24 24",
52885    xmlns: "http://www.w3.org/2000/svg",
52886    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
52887      d: "M4.5 12.5v4H3V7h1.5v3.987h15V7H21v9.5h-1.5v-4h-15Z"
52888    })
52889  });
52890  /* harmony default export */ const library_separator = (separator);
52891  
52892  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/use-deprecated-opacity.js
52893  /**
52894   * WordPress dependencies
52895   */
52896  
52897  
52898  function useDeprecatedOpacity(opacity, currentColor, setAttributes) {
52899    const [deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor] = (0,external_wp_element_namespaceObject.useState)(false);
52900    const previousColor = (0,external_wp_compose_namespaceObject.usePrevious)(currentColor);
52901  
52902    // A separator with no color set will always have previousColor set to undefined,
52903    // and we need to differentiate these from those with color set that will return
52904    // previousColor as undefined on the first render.
52905    (0,external_wp_element_namespaceObject.useEffect)(() => {
52906      if (opacity === 'css' && !currentColor && !previousColor) {
52907        setDeprecatedOpacityWithNoColor(true);
52908      }
52909    }, [currentColor, previousColor, opacity]);
52910  
52911    // For deprecated blocks, that have a default 0.4 css opacity set, we
52912    // need to remove this if the current color is changed, or a color is added.
52913    // In these instances the opacity attribute is set back to the default of
52914    // alpha-channel which allows a new custom opacity to be set via the color picker.
52915    (0,external_wp_element_namespaceObject.useEffect)(() => {
52916      if (opacity === 'css' && (deprecatedOpacityWithNoColor && currentColor || previousColor && currentColor !== previousColor)) {
52917        setAttributes({
52918          opacity: 'alpha-channel'
52919        });
52920        setDeprecatedOpacityWithNoColor(false);
52921      }
52922    }, [deprecatedOpacityWithNoColor, currentColor, previousColor]);
52923  }
52924  
52925  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/edit.js
52926  /**
52927   * External dependencies
52928   */
52929  
52930  
52931  /**
52932   * WordPress dependencies
52933   */
52934  
52935  
52936  
52937  /**
52938   * Internal dependencies
52939   */
52940  
52941  
52942  
52943  function SeparatorEdit({
52944    attributes,
52945    setAttributes
52946  }) {
52947    const {
52948      backgroundColor,
52949      opacity,
52950      style
52951    } = attributes;
52952    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
52953    const currentColor = colorProps?.style?.backgroundColor;
52954    const hasCustomColor = !!style?.color?.background;
52955    useDeprecatedOpacity(opacity, currentColor, setAttributes);
52956  
52957    // The dots styles uses text for the dots, to change those dots color is
52958    // using color, not backgroundColor.
52959    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
52960    const className = dist_clsx({
52961      'has-text-color': backgroundColor || currentColor,
52962      [colorClass]: colorClass,
52963      'has-css-opacity': opacity === 'css',
52964      'has-alpha-channel-opacity': opacity === 'alpha-channel'
52965    }, colorProps.className);
52966    const styles = {
52967      color: currentColor,
52968      backgroundColor: currentColor
52969    };
52970    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52971      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.HorizontalRule, {
52972        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
52973          className,
52974          style: hasCustomColor ? styles : undefined
52975        })
52976      })
52977    });
52978  }
52979  
52980  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/save.js
52981  /**
52982   * External dependencies
52983   */
52984  
52985  
52986  /**
52987   * WordPress dependencies
52988   */
52989  
52990  
52991  function separatorSave({
52992    attributes
52993  }) {
52994    const {
52995      backgroundColor,
52996      style,
52997      opacity
52998    } = attributes;
52999    const customColor = style?.color?.background;
53000    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
53001    // The hr support changing color using border-color, since border-color
53002    // is not yet supported in the color palette, we use background-color.
53003  
53004    // The dots styles uses text for the dots, to change those dots color is
53005    // using color, not backgroundColor.
53006    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
53007    const className = dist_clsx({
53008      'has-text-color': backgroundColor || customColor,
53009      [colorClass]: colorClass,
53010      'has-css-opacity': opacity === 'css',
53011      'has-alpha-channel-opacity': opacity === 'alpha-channel'
53012    }, colorProps.className);
53013    const styles = {
53014      backgroundColor: colorProps?.style?.backgroundColor,
53015      color: colorClass ? undefined : customColor
53016    };
53017    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {
53018      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
53019        className,
53020        style: styles
53021      })
53022    });
53023  }
53024  
53025  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/transforms.js
53026  /**
53027   * WordPress dependencies
53028   */
53029  
53030  const separator_transforms_transforms = {
53031    from: [{
53032      type: 'enter',
53033      regExp: /^-{3,}$/,
53034      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/separator')
53035    }, {
53036      type: 'raw',
53037      selector: 'hr',
53038      schema: {
53039        hr: {}
53040      }
53041    }]
53042  };
53043  /* harmony default export */ const separator_transforms = (separator_transforms_transforms);
53044  
53045  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/deprecated.js
53046  /**
53047   * External dependencies
53048   */
53049  
53050  
53051  /**
53052   * WordPress dependencies
53053   */
53054  
53055  
53056  const separator_deprecated_v1 = {
53057    attributes: {
53058      color: {
53059        type: 'string'
53060      },
53061      customColor: {
53062        type: 'string'
53063      }
53064    },
53065    save({
53066      attributes
53067    }) {
53068      const {
53069        color,
53070        customColor
53071      } = attributes;
53072  
53073      // the hr support changing color using border-color, since border-color
53074      // is not yet supported in the color palette, we use background-color
53075      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', color);
53076      // the dots styles uses text for the dots, to change those dots color is
53077      // using color, not backgroundColor
53078      const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', color);
53079      const className = dist_clsx({
53080        'has-text-color has-background': color || customColor,
53081        [backgroundClass]: backgroundClass,
53082        [colorClass]: colorClass
53083      });
53084      const style = {
53085        backgroundColor: backgroundClass ? undefined : customColor,
53086        color: colorClass ? undefined : customColor
53087      };
53088      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {
53089        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
53090          className,
53091          style
53092        })
53093      });
53094    },
53095    migrate(attributes) {
53096      const {
53097        color,
53098        customColor,
53099        ...restAttributes
53100      } = attributes;
53101      return {
53102        ...restAttributes,
53103        backgroundColor: color ? color : undefined,
53104        opacity: 'css',
53105        style: customColor ? {
53106          color: {
53107            background: customColor
53108          }
53109        } : undefined
53110      };
53111    }
53112  };
53113  /* harmony default export */ const separator_deprecated = ([separator_deprecated_v1]);
53114  
53115  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/index.js
53116  /**
53117   * WordPress dependencies
53118   */
53119  
53120  
53121  /**
53122   * Internal dependencies
53123   */
53124  
53125  
53126  const separator_metadata = {
53127    $schema: "https://schemas.wp.org/trunk/block.json",
53128    apiVersion: 3,
53129    name: "core/separator",
53130    title: "Separator",
53131    category: "design",
53132    description: "Create a break between ideas or sections with a horizontal separator.",
53133    keywords: ["horizontal-line", "hr", "divider"],
53134    textdomain: "default",
53135    attributes: {
53136      opacity: {
53137        type: "string",
53138        "default": "alpha-channel"
53139      }
53140    },
53141    supports: {
53142      anchor: true,
53143      align: ["center", "wide", "full"],
53144      color: {
53145        enableContrastChecker: false,
53146        __experimentalSkipSerialization: true,
53147        gradients: true,
53148        background: true,
53149        text: false,
53150        __experimentalDefaultControls: {
53151          background: true
53152        }
53153      },
53154      spacing: {
53155        margin: ["top", "bottom"]
53156      },
53157      interactivity: {
53158        clientNavigation: true
53159      }
53160    },
53161    styles: [{
53162      name: "default",
53163      label: "Default",
53164      isDefault: true
53165    }, {
53166      name: "wide",
53167      label: "Wide Line"
53168    }, {
53169      name: "dots",
53170      label: "Dots"
53171    }],
53172    editorStyle: "wp-block-separator-editor",
53173    style: "wp-block-separator"
53174  };
53175  
53176  
53177  
53178  const {
53179    name: separator_name
53180  } = separator_metadata;
53181  
53182  const separator_settings = {
53183    icon: library_separator,
53184    example: {
53185      attributes: {
53186        customColor: '#065174',
53187        className: 'is-style-wide'
53188      }
53189    },
53190    transforms: separator_transforms,
53191    edit: SeparatorEdit,
53192    save: separatorSave,
53193    deprecated: separator_deprecated
53194  };
53195  const separator_init = () => initBlock({
53196    name: separator_name,
53197    metadata: separator_metadata,
53198    settings: separator_settings
53199  });
53200  
53201  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shortcode.js
53202  /**
53203   * WordPress dependencies
53204   */
53205  
53206  
53207  const shortcode = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53208    viewBox: "0 0 24 24",
53209    xmlns: "http://www.w3.org/2000/svg",
53210    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53211      d: "M16 4.2v1.5h2.5v12.5H16v1.5h4V4.2h-4zM4.2 19.8h4v-1.5H5.8V5.8h2.5V4.2h-4l-.1 15.6zm5.1-3.1l1.4.6 4-10-1.4-.6-4 10z"
53212    })
53213  });
53214  /* harmony default export */ const library_shortcode = (shortcode);
53215  
53216  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js
53217  /**
53218   * WordPress dependencies
53219   */
53220  
53221  
53222  
53223  
53224  
53225  
53226  function ShortcodeEdit({
53227    attributes,
53228    setAttributes
53229  }) {
53230    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ShortcodeEdit);
53231    const inputId = `blocks-shortcode-input-$instanceId}`;
53232    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53233      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
53234      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53235        icon: library_shortcode,
53236        label: (0,external_wp_i18n_namespaceObject.__)('Shortcode'),
53237        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
53238          className: "blocks-shortcode__textarea",
53239          id: inputId,
53240          value: attributes.text,
53241          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Shortcode text'),
53242          placeholder: (0,external_wp_i18n_namespaceObject.__)('Write shortcode here…'),
53243          onChange: text => setAttributes({
53244            text
53245          })
53246        })
53247      })
53248    });
53249  }
53250  
53251  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/save.js
53252  /**
53253   * WordPress dependencies
53254   */
53255  
53256  
53257  function shortcode_save_save({
53258    attributes
53259  }) {
53260    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
53261      children: attributes.text
53262    });
53263  }
53264  
53265  ;// CONCATENATED MODULE: external ["wp","autop"]
53266  const external_wp_autop_namespaceObject = window["wp"]["autop"];
53267  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js
53268  /**
53269   * WordPress dependencies
53270   */
53271  
53272  const shortcode_transforms_transforms = {
53273    from: [{
53274      type: 'shortcode',
53275      // Per "Shortcode names should be all lowercase and use all
53276      // letters, but numbers and underscores should work fine too.
53277      // Be wary of using hyphens (dashes), you'll be better off not
53278      // using them." in https://codex.wordpress.org/Shortcode_API
53279      // Require that the first character be a letter. This notably
53280      // prevents footnote markings ([1]) from being caught as
53281      // shortcodes.
53282      tag: '[a-z][a-z0-9_-]*',
53283      attributes: {
53284        text: {
53285          type: 'string',
53286          shortcode: (attrs, {
53287            content
53288          }) => {
53289            return (0,external_wp_autop_namespaceObject.removep)((0,external_wp_autop_namespaceObject.autop)(content));
53290          }
53291        }
53292      },
53293      priority: 20
53294    }]
53295  };
53296  /* harmony default export */ const shortcode_transforms = (shortcode_transforms_transforms);
53297  
53298  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
53299  /**
53300   * WordPress dependencies
53301   */
53302  
53303  
53304  /**
53305   * Internal dependencies
53306   */
53307  
53308  
53309  
53310  
53311  const shortcode_metadata = {
53312    $schema: "https://schemas.wp.org/trunk/block.json",
53313    apiVersion: 3,
53314    name: "core/shortcode",
53315    title: "Shortcode",
53316    category: "widgets",
53317    description: "Insert additional custom elements with a WordPress shortcode.",
53318    textdomain: "default",
53319    attributes: {
53320      text: {
53321        type: "string",
53322        source: "raw"
53323      }
53324    },
53325    supports: {
53326      className: false,
53327      customClassName: false,
53328      html: false
53329    },
53330    editorStyle: "wp-block-shortcode-editor"
53331  };
53332  const {
53333    name: shortcode_name
53334  } = shortcode_metadata;
53335  
53336  const shortcode_settings = {
53337    icon: library_shortcode,
53338    transforms: shortcode_transforms,
53339    edit: ShortcodeEdit,
53340    save: shortcode_save_save
53341  };
53342  const shortcode_init = () => initBlock({
53343    name: shortcode_name,
53344    metadata: shortcode_metadata,
53345    settings: shortcode_settings
53346  });
53347  
53348  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/site-logo.js
53349  /**
53350   * WordPress dependencies
53351   */
53352  
53353  
53354  const siteLogo = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53355    xmlns: "http://www.w3.org/2000/svg",
53356    viewBox: "0 0 24 24",
53357    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53358      d: "M12 3c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 1.5c4.1 0 7.5 3.4 7.5 7.5v.1c-1.4-.8-3.3-1.7-3.4-1.8-.2-.1-.5-.1-.8.1l-2.9 2.1L9 11.3c-.2-.1-.4 0-.6.1l-3.7 2.2c-.1-.5-.2-1-.2-1.5 0-4.2 3.4-7.6 7.5-7.6zm0 15c-3.1 0-5.7-1.9-6.9-4.5l3.7-2.2 3.5 1.2c.2.1.5 0 .7-.1l2.9-2.1c.8.4 2.5 1.2 3.5 1.9-.9 3.3-3.9 5.8-7.4 5.8z"
53359    })
53360  });
53361  /* harmony default export */ const site_logo = (siteLogo);
53362  
53363  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/edit.js
53364  /**
53365   * External dependencies
53366   */
53367  
53368  
53369  /**
53370   * WordPress dependencies
53371   */
53372  
53373  
53374  
53375  
53376  
53377  
53378  
53379  
53380  
53381  
53382  
53383  /**
53384   * Internal dependencies
53385   */
53386  
53387  
53388  
53389  
53390  const site_logo_edit_ALLOWED_MEDIA_TYPES = ['image'];
53391  const ACCEPT_MEDIA_STRING = 'image/*';
53392  const SiteLogo = ({
53393    alt,
53394    attributes: {
53395      align,
53396      width,
53397      height,
53398      isLink,
53399      linkTarget,
53400      shouldSyncIcon
53401    },
53402    isSelected,
53403    setAttributes,
53404    setLogo,
53405    logoUrl,
53406    siteUrl,
53407    logoId,
53408    iconId,
53409    setIcon,
53410    canUserEdit
53411  }) => {
53412    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
53413    const isWideAligned = ['wide', 'full'].includes(align);
53414    const isResizable = !isWideAligned && isLargeViewport;
53415    const [{
53416      naturalWidth,
53417      naturalHeight
53418    }, setNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
53419    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
53420    const {
53421      toggleSelection
53422    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
53423    const {
53424      imageEditing,
53425      maxWidth,
53426      title
53427    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
53428      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
53429      const siteEntities = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase');
53430      return {
53431        title: siteEntities?.name,
53432        imageEditing: settings.imageEditing,
53433        maxWidth: settings.maxWidth
53434      };
53435    }, []);
53436    (0,external_wp_element_namespaceObject.useEffect)(() => {
53437      // Turn the `Use as site icon` toggle off if it is on but the logo and icon have
53438      // fallen out of sync. This can happen if the toggle is saved in the `on` position,
53439      // but changes are later made to the site icon in the Customizer.
53440      if (shouldSyncIcon && logoId !== iconId) {
53441        setAttributes({
53442          shouldSyncIcon: false
53443        });
53444      }
53445    }, []);
53446    (0,external_wp_element_namespaceObject.useEffect)(() => {
53447      if (!isSelected) {
53448        setIsEditingImage(false);
53449      }
53450    }, [isSelected]);
53451    function onResizeStart() {
53452      toggleSelection(false);
53453    }
53454    function onResizeStop() {
53455      toggleSelection(true);
53456    }
53457    const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53458      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
53459        className: "custom-logo",
53460        src: logoUrl,
53461        alt: alt,
53462        onLoad: event => {
53463          setNaturalSize({
53464            naturalWidth: event.target.naturalWidth,
53465            naturalHeight: event.target.naturalHeight
53466          });
53467        }
53468      }), (0,external_wp_blob_namespaceObject.isBlobURL)(logoUrl) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
53469    });
53470    let imgWrapper = img;
53471  
53472    // Disable reason: Image itself is not meant to be interactive, but
53473    // should direct focus to block.
53474    if (isLink) {
53475      imgWrapper =
53476      /*#__PURE__*/
53477      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
53478      (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
53479        href: siteUrl,
53480        className: "custom-logo-link",
53481        rel: "home",
53482        title: title,
53483        onClick: event => event.preventDefault(),
53484        children: img
53485      })
53486      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
53487    }
53488    if (!isResizable || !naturalWidth || !naturalHeight) {
53489      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53490        style: {
53491          width,
53492          height
53493        },
53494        children: imgWrapper
53495      });
53496    }
53497  
53498    // Set the default width to a responsible size.
53499    // Note that this width is also set in the attached frontend CSS file.
53500    const defaultWidth = 120;
53501    const currentWidth = width || defaultWidth;
53502    const ratio = naturalWidth / naturalHeight;
53503    const currentHeight = currentWidth / ratio;
53504    const minWidth = naturalWidth < naturalHeight ? constants_MIN_SIZE : Math.ceil(constants_MIN_SIZE * ratio);
53505    const minHeight = naturalHeight < naturalWidth ? constants_MIN_SIZE : Math.ceil(constants_MIN_SIZE / ratio);
53506  
53507    // With the current implementation of ResizableBox, an image needs an
53508    // explicit pixel value for the max-width. In absence of being able to
53509    // set the content-width, this max-width is currently dictated by the
53510    // vanilla editor style. The following variable adds a buffer to this
53511    // vanilla style, so 3rd party themes have some wiggleroom. This does,
53512    // in most cases, allow you to scale the image beyond the width of the
53513    // main column, though not infinitely.
53514    // @todo It would be good to revisit this once a content-width variable
53515    // becomes available.
53516    const maxWidthBuffer = maxWidth * 2.5;
53517    let showRightHandle = false;
53518    let showLeftHandle = false;
53519  
53520    /* eslint-disable no-lonely-if */
53521    // See https://github.com/WordPress/gutenberg/issues/7584.
53522    if (align === 'center') {
53523      // When the image is centered, show both handles.
53524      showRightHandle = true;
53525      showLeftHandle = true;
53526    } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
53527      // In RTL mode the image is on the right by default.
53528      // Show the right handle and hide the left handle only when it is
53529      // aligned left. Otherwise always show the left handle.
53530      if (align === 'left') {
53531        showRightHandle = true;
53532      } else {
53533        showLeftHandle = true;
53534      }
53535    } else {
53536      // Show the left handle and hide the right handle only when the
53537      // image is aligned right. Otherwise always show the right handle.
53538      if (align === 'right') {
53539        showLeftHandle = true;
53540      } else {
53541        showRightHandle = true;
53542      }
53543    }
53544    /* eslint-enable no-lonely-if */
53545  
53546    const canEditImage = logoId && naturalWidth && naturalHeight && imageEditing;
53547    const imgEdit = canEditImage && isEditingImage ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
53548      id: logoId,
53549      url: logoUrl,
53550      width: currentWidth,
53551      height: currentHeight,
53552      naturalHeight: naturalHeight,
53553      naturalWidth: naturalWidth,
53554      onSaveImage: imageAttributes => {
53555        setLogo(imageAttributes.id);
53556      },
53557      onFinishEditing: () => {
53558        setIsEditingImage(false);
53559      }
53560    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
53561      size: {
53562        width: currentWidth,
53563        height: currentHeight
53564      },
53565      showHandle: isSelected,
53566      minWidth: minWidth,
53567      maxWidth: maxWidthBuffer,
53568      minHeight: minHeight,
53569      maxHeight: maxWidthBuffer / ratio,
53570      lockAspectRatio: true,
53571      enable: {
53572        top: false,
53573        right: showRightHandle,
53574        bottom: true,
53575        left: showLeftHandle
53576      },
53577      onResizeStart: onResizeStart,
53578      onResizeStop: (event, direction, elt, delta) => {
53579        onResizeStop();
53580        setAttributes({
53581          width: parseInt(currentWidth + delta.width, 10),
53582          height: parseInt(currentHeight + delta.height, 10)
53583        });
53584      },
53585      children: imgWrapper
53586    });
53587  
53588    // Support the previous location for the Site Icon settings. To be removed
53589    // when the required WP core version for Gutenberg is >= 6.5.0.
53590    const shouldUseNewUrl = !window?.__experimentalUseCustomizerSiteLogoUrl;
53591    const siteIconSettingsUrl = shouldUseNewUrl ? siteUrl + '/wp-admin/options-general.php' : siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';
53592    const syncSiteIconHelpText = (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'), {
53593      a:
53594      /*#__PURE__*/
53595      // eslint-disable-next-line jsx-a11y/anchor-has-content
53596      (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
53597        href: siteIconSettingsUrl,
53598        target: "_blank",
53599        rel: "noopener noreferrer"
53600      })
53601    });
53602    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53603      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
53604        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
53605          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
53606          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53607            __nextHasNoMarginBottom: true,
53608            __next40pxDefaultSize: true,
53609            label: (0,external_wp_i18n_namespaceObject.__)('Image width'),
53610            onChange: newWidth => setAttributes({
53611              width: newWidth
53612            }),
53613            min: minWidth,
53614            max: maxWidthBuffer,
53615            initialPosition: Math.min(defaultWidth, maxWidthBuffer),
53616            value: width || '',
53617            disabled: !isResizable
53618          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53619            __nextHasNoMarginBottom: true,
53620            label: (0,external_wp_i18n_namespaceObject.__)('Link image to home'),
53621            onChange: () => setAttributes({
53622              isLink: !isLink
53623            }),
53624            checked: isLink
53625          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53626            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53627              __nextHasNoMarginBottom: true,
53628              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
53629              onChange: value => setAttributes({
53630                linkTarget: value ? '_blank' : '_self'
53631              }),
53632              checked: linkTarget === '_blank'
53633            })
53634          }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53635            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53636              __nextHasNoMarginBottom: true,
53637              label: (0,external_wp_i18n_namespaceObject.__)('Use as Site Icon'),
53638              onChange: value => {
53639                setAttributes({
53640                  shouldSyncIcon: value
53641                });
53642                setIcon(value ? logoId : undefined);
53643              },
53644              checked: !!shouldSyncIcon,
53645              help: syncSiteIconHelpText
53646            })
53647          })]
53648        })
53649      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53650        group: "block",
53651        children: canEditImage && !isEditingImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
53652          onClick: () => setIsEditingImage(true),
53653          icon: library_crop,
53654          label: (0,external_wp_i18n_namespaceObject.__)('Crop')
53655        })
53656      }), imgEdit]
53657    });
53658  };
53659  
53660  // This is a light wrapper around MediaReplaceFlow because the block has two
53661  // different MediaReplaceFlows, one for the inspector and one for the toolbar.
53662  function SiteLogoReplaceFlow({
53663    mediaURL,
53664    onRemoveLogo,
53665    ...mediaReplaceProps
53666  }) {
53667    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
53668      ...mediaReplaceProps,
53669      mediaURL: mediaURL,
53670      allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
53671      accept: ACCEPT_MEDIA_STRING,
53672      onReset: onRemoveLogo
53673    });
53674  }
53675  const InspectorLogoPreview = ({
53676    mediaItemData = {},
53677    itemGroupProps
53678  }) => {
53679    const {
53680      alt_text: alt,
53681      source_url: logoUrl,
53682      slug: logoSlug,
53683      media_details: logoMediaDetails
53684    } = mediaItemData;
53685    const logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;
53686    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalItemGroup, {
53687      ...itemGroupProps,
53688      as: "span",
53689      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
53690        justify: "flex-start",
53691        as: "span",
53692        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
53693          src: logoUrl,
53694          alt: alt
53695        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
53696          as: "span",
53697          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalTruncate, {
53698            numberOfLines: 1,
53699            className: "block-library-site-logo__inspector-media-replace-title",
53700            children: logoLabel
53701          })
53702        })]
53703      })
53704    });
53705  };
53706  function LogoEdit({
53707    attributes,
53708    className,
53709    setAttributes,
53710    isSelected
53711  }) {
53712    const {
53713      width,
53714      shouldSyncIcon
53715    } = attributes;
53716    const {
53717      siteLogoId,
53718      canUserEdit,
53719      url,
53720      siteIconId,
53721      mediaItemData,
53722      isRequestingMediaItem
53723    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
53724      const {
53725        canUser,
53726        getEntityRecord,
53727        getEditedEntityRecord
53728      } = select(external_wp_coreData_namespaceObject.store);
53729      const _canUserEdit = canUser('update', {
53730        kind: 'root',
53731        name: 'site'
53732      });
53733      const siteSettings = _canUserEdit ? getEditedEntityRecord('root', 'site') : undefined;
53734      const siteData = getEntityRecord('root', '__unstableBase');
53735      const _siteLogoId = _canUserEdit ? siteSettings?.site_logo : siteData?.site_logo;
53736      const _siteIconId = siteSettings?.site_icon;
53737      const mediaItem = _siteLogoId && select(external_wp_coreData_namespaceObject.store).getMedia(_siteLogoId, {
53738        context: 'view'
53739      });
53740      const _isRequestingMediaItem = !!_siteLogoId && !select(external_wp_coreData_namespaceObject.store).hasFinishedResolution('getMedia', [_siteLogoId, {
53741        context: 'view'
53742      }]);
53743      return {
53744        siteLogoId: _siteLogoId,
53745        canUserEdit: _canUserEdit,
53746        url: siteData?.home,
53747        mediaItemData: mediaItem,
53748        isRequestingMediaItem: _isRequestingMediaItem,
53749        siteIconId: _siteIconId
53750      };
53751    }, []);
53752    const {
53753      getSettings
53754    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
53755    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
53756    const {
53757      editEntityRecord
53758    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
53759    const setLogo = (newValue, shouldForceSync = false) => {
53760      // `shouldForceSync` is used to force syncing when the attribute
53761      // may not have updated yet.
53762      if (shouldSyncIcon || shouldForceSync) {
53763        setIcon(newValue);
53764      }
53765      editEntityRecord('root', 'site', undefined, {
53766        site_logo: newValue
53767      });
53768    };
53769    const setIcon = newValue =>
53770    // The new value needs to be `null` to reset the Site Icon.
53771    editEntityRecord('root', 'site', undefined, {
53772      site_icon: newValue !== null && newValue !== void 0 ? newValue : null
53773    });
53774    const {
53775      alt_text: alt,
53776      source_url: logoUrl
53777    } = mediaItemData !== null && mediaItemData !== void 0 ? mediaItemData : {};
53778    const onInitialSelectLogo = media => {
53779      // Initialize the syncSiteIcon toggle. If we currently have no Site logo and no
53780      // site icon, automatically sync the logo to the icon.
53781      if (shouldSyncIcon === undefined) {
53782        const shouldForceSync = !siteIconId;
53783        setAttributes({
53784          shouldSyncIcon: shouldForceSync
53785        });
53786  
53787        // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by
53788        // the time `setLogo` is called, pass an argument to force the syncing.
53789        onSelectLogo(media, shouldForceSync);
53790        return;
53791      }
53792      onSelectLogo(media);
53793    };
53794    const onSelectLogo = (media, shouldForceSync = false) => {
53795      if (!media) {
53796        return;
53797      }
53798      if (!media.id && media.url) {
53799        // This is a temporary blob image.
53800        setTemporaryURL(media.url);
53801        setLogo(undefined);
53802        return;
53803      }
53804      setLogo(media.id, shouldForceSync);
53805    };
53806    const onRemoveLogo = () => {
53807      setLogo(null);
53808      setAttributes({
53809        width: undefined
53810      });
53811    };
53812    const {
53813      createErrorNotice
53814    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
53815    const onUploadError = message => {
53816      createErrorNotice(message, {
53817        type: 'snackbar'
53818      });
53819      setTemporaryURL();
53820    };
53821    const onFilesDrop = filesList => {
53822      getSettings().mediaUpload({
53823        allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
53824        filesList,
53825        onFileChange([image]) {
53826          if ((0,external_wp_blob_namespaceObject.isBlobURL)(image?.url)) {
53827            setTemporaryURL(image.url);
53828            return;
53829          }
53830          onInitialSelectLogo(image);
53831        },
53832        onError: onUploadError,
53833        onRemoveLogo
53834      });
53835    };
53836    const mediaReplaceFlowProps = {
53837      mediaURL: logoUrl,
53838      name: !logoUrl ? (0,external_wp_i18n_namespaceObject.__)('Choose logo') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
53839      onSelect: onSelectLogo,
53840      onError: onUploadError,
53841      onRemoveLogo
53842    };
53843    const controls = canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53844      group: "other",
53845      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogoReplaceFlow, {
53846        ...mediaReplaceFlowProps
53847      })
53848    });
53849    let logoImage;
53850    const isLoading = siteLogoId === undefined || isRequestingMediaItem;
53851    if (isLoading) {
53852      logoImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {});
53853    }
53854  
53855    // Reset temporary url when logoUrl is available.
53856    (0,external_wp_element_namespaceObject.useEffect)(() => {
53857      if (logoUrl && temporaryURL) {
53858        setTemporaryURL();
53859      }
53860    }, [logoUrl, temporaryURL]);
53861    if (!!logoUrl || !!temporaryURL) {
53862      logoImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53863        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogo, {
53864          alt: alt,
53865          attributes: attributes,
53866          className: className,
53867          isSelected: isSelected,
53868          setAttributes: setAttributes,
53869          logoUrl: temporaryURL || logoUrl,
53870          setLogo: setLogo,
53871          logoId: mediaItemData?.id || siteLogoId,
53872          siteUrl: url,
53873          setIcon: setIcon,
53874          iconId: siteIconId,
53875          canUserEdit: canUserEdit
53876        })
53877      });
53878    }
53879    const placeholder = content => {
53880      const placeholderClassName = dist_clsx('block-editor-media-placeholder', className);
53881      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53882        className: placeholderClassName,
53883        preview: logoImage,
53884        withIllustration: true,
53885        style: {
53886          width
53887        },
53888        children: content
53889      });
53890    };
53891    const classes = dist_clsx(className, {
53892      'is-default-size': !width,
53893      'is-transient': temporaryURL
53894    });
53895    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
53896      className: classes
53897    });
53898    const mediaInspectorPanel = (canUserEdit || logoUrl) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
53899      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
53900        title: (0,external_wp_i18n_namespaceObject.__)('Media'),
53901        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
53902          className: "block-library-site-logo__inspector-media-replace-container",
53903          children: [!canUserEdit && !!logoUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorLogoPreview, {
53904            mediaItemData: mediaItemData,
53905            itemGroupProps: {
53906              isBordered: true,
53907              className: 'block-library-site-logo__inspector-readonly-logo-preview'
53908            }
53909          }), canUserEdit && !!logoUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogoReplaceFlow, {
53910            ...mediaReplaceFlowProps,
53911            name: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorLogoPreview, {
53912              mediaItemData: mediaItemData
53913            }),
53914            popoverProps: {}
53915          }), canUserEdit && !logoUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
53916            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
53917              onSelect: onInitialSelectLogo,
53918              allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
53919              render: ({
53920                open
53921              }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
53922                className: "block-library-site-logo__inspector-upload-container",
53923                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
53924                  __next40pxDefaultSize: true,
53925                  onClick: open,
53926                  variant: "secondary",
53927                  children: isLoading ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : (0,external_wp_i18n_namespaceObject.__)('Choose logo')
53928                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropZone, {
53929                  onFilesDrop: onFilesDrop
53930                })]
53931              })
53932            })
53933          })]
53934        })
53935      })
53936    });
53937    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
53938      ...blockProps,
53939      children: [controls, mediaInspectorPanel, (!!logoUrl || !!temporaryURL) && logoImage, (isLoading || !temporaryURL && !logoUrl && !canUserEdit) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53940        className: "site-logo_placeholder",
53941        withIllustration: true,
53942        children: isLoading && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
53943          className: "components-placeholder__preview",
53944          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
53945        })
53946      }), !isLoading && !temporaryURL && !logoUrl && canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
53947        onSelect: onInitialSelectLogo,
53948        accept: ACCEPT_MEDIA_STRING,
53949        allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
53950        onError: onUploadError,
53951        placeholder: placeholder,
53952        mediaLibraryButton: ({
53953          open
53954        }) => {
53955          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
53956            __next40pxDefaultSize: true,
53957            icon: library_upload,
53958            variant: "primary",
53959            label: (0,external_wp_i18n_namespaceObject.__)('Choose logo'),
53960            showTooltip: true,
53961            tooltipPosition: "middle right",
53962            onClick: () => {
53963              open();
53964            }
53965          });
53966        }
53967      })]
53968    });
53969  }
53970  
53971  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/transforms.js
53972  /**
53973   * WordPress dependencies
53974   */
53975  
53976  const site_logo_transforms_transforms = {
53977    to: [{
53978      type: 'block',
53979      blocks: ['core/site-title'],
53980      transform: ({
53981        isLink,
53982        linkTarget
53983      }) => {
53984        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-title', {
53985          isLink,
53986          linkTarget
53987        });
53988      }
53989    }]
53990  };
53991  /* harmony default export */ const site_logo_transforms = (site_logo_transforms_transforms);
53992  
53993  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
53994  /**
53995   * WordPress dependencies
53996   */
53997  
53998  
53999  /**
54000   * Internal dependencies
54001   */
54002  
54003  const site_logo_metadata = {
54004    $schema: "https://schemas.wp.org/trunk/block.json",
54005    apiVersion: 3,
54006    name: "core/site-logo",
54007    title: "Site Logo",
54008    category: "theme",
54009    description: "Display an image to represent this site. Update this block and the changes apply everywhere.",
54010    textdomain: "default",
54011    attributes: {
54012      width: {
54013        type: "number"
54014      },
54015      isLink: {
54016        type: "boolean",
54017        "default": true
54018      },
54019      linkTarget: {
54020        type: "string",
54021        "default": "_self"
54022      },
54023      shouldSyncIcon: {
54024        type: "boolean"
54025      }
54026    },
54027    example: {
54028      viewportWidth: 500,
54029      attributes: {
54030        width: 350,
54031        className: "block-editor-block-types-list__site-logo-example"
54032      }
54033    },
54034    supports: {
54035      html: false,
54036      align: true,
54037      alignWide: false,
54038      color: {
54039        __experimentalDuotone: "img, .components-placeholder__illustration, .components-placeholder::before",
54040        text: false,
54041        background: false
54042      },
54043      spacing: {
54044        margin: true,
54045        padding: true,
54046        __experimentalDefaultControls: {
54047          margin: false,
54048          padding: false
54049        }
54050      },
54051      interactivity: {
54052        clientNavigation: true
54053      }
54054    },
54055    styles: [{
54056      name: "default",
54057      label: "Default",
54058      isDefault: true
54059    }, {
54060      name: "rounded",
54061      label: "Rounded"
54062    }],
54063    editorStyle: "wp-block-site-logo-editor",
54064    style: "wp-block-site-logo"
54065  };
54066  
54067  
54068  const {
54069    name: site_logo_name
54070  } = site_logo_metadata;
54071  
54072  const site_logo_settings = {
54073    icon: site_logo,
54074    example: {},
54075    edit: LogoEdit,
54076    transforms: site_logo_transforms
54077  };
54078  const site_logo_init = () => initBlock({
54079    name: site_logo_name,
54080    metadata: site_logo_metadata,
54081    settings: site_logo_settings
54082  });
54083  
54084  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/edit.js
54085  /**
54086   * External dependencies
54087   */
54088  
54089  
54090  /**
54091   * WordPress dependencies
54092   */
54093  
54094  
54095  
54096  
54097  
54098  
54099  
54100  
54101  function SiteTaglineEdit({
54102    attributes,
54103    setAttributes,
54104    insertBlocksAfter
54105  }) {
54106    const {
54107      textAlign,
54108      level,
54109      levelOptions
54110    } = attributes;
54111    const {
54112      canUserEdit,
54113      tagline
54114    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
54115      const {
54116        canUser,
54117        getEntityRecord,
54118        getEditedEntityRecord
54119      } = select(external_wp_coreData_namespaceObject.store);
54120      const canEdit = canUser('update', {
54121        kind: 'root',
54122        name: 'site'
54123      });
54124      const settings = canEdit ? getEditedEntityRecord('root', 'site') : {};
54125      const readOnlySettings = getEntityRecord('root', '__unstableBase');
54126      return {
54127        canUserEdit: canEdit,
54128        tagline: canEdit ? settings?.description : readOnlySettings?.description
54129      };
54130    }, []);
54131    const TagName = level === 0 ? 'p' : `h$level}`;
54132    const {
54133      editEntityRecord
54134    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
54135    function setTagline(newTagline) {
54136      editEntityRecord('root', 'site', undefined, {
54137        description: newTagline
54138      });
54139    }
54140    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
54141      className: dist_clsx({
54142        [`has-text-align-$textAlign}`]: textAlign,
54143        'wp-block-site-tagline__placeholder': !canUserEdit && !tagline
54144      })
54145    });
54146    const siteTaglineContent = canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
54147      allowedFormats: [],
54148      onChange: setTagline,
54149      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site tagline text'),
54150      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site tagline…'),
54151      tagName: TagName,
54152      value: tagline,
54153      disableLineBreaks: true,
54154      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
54155      ...blockProps
54156    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
54157      ...blockProps,
54158      children: tagline || (0,external_wp_i18n_namespaceObject.__)('Site Tagline placeholder')
54159    });
54160    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54161      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
54162        group: "block",
54163        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
54164          value: level,
54165          options: levelOptions,
54166          onChange: newLevel => setAttributes({
54167            level: newLevel
54168          })
54169        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
54170          onChange: newAlign => setAttributes({
54171            textAlign: newAlign
54172          }),
54173          value: textAlign
54174        })]
54175      }), siteTaglineContent]
54176    });
54177  }
54178  
54179  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/icon.js
54180  /**
54181   * WordPress dependencies
54182   */
54183  
54184  
54185  /* harmony default export */ const site_tagline_icon = (/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
54186    xmlns: "http://www.w3.org/2000/svg",
54187    width: "24",
54188    height: "24",
54189    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
54190      d: "M4 10.5h16V9H4v1.5ZM4 15h9v-1.5H4V15Z"
54191    })
54192  }));
54193  
54194  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/deprecated.js
54195  /**
54196   * Internal dependencies
54197   */
54198  
54199  const site_tagline_deprecated_v1 = {
54200    attributes: {
54201      textAlign: {
54202        type: 'string'
54203      }
54204    },
54205    supports: {
54206      align: ['wide', 'full'],
54207      html: false,
54208      color: {
54209        gradients: true
54210      },
54211      spacing: {
54212        margin: true,
54213        padding: true
54214      },
54215      typography: {
54216        fontSize: true,
54217        lineHeight: true,
54218        __experimentalFontFamily: true,
54219        __experimentalTextTransform: true,
54220        __experimentalFontStyle: true,
54221        __experimentalFontWeight: true,
54222        __experimentalLetterSpacing: true
54223      }
54224    },
54225    save() {
54226      return null;
54227    },
54228    migrate: migrate_font_family,
54229    isEligible({
54230      style
54231    }) {
54232      return style?.typography?.fontFamily;
54233    }
54234  };
54235  
54236  /**
54237   * New deprecations need to be placed first
54238   * for them to have higher priority.
54239   *
54240   * Old deprecations may need to be updated as well.
54241   *
54242   * See block-deprecation.md
54243   */
54244  /* harmony default export */ const site_tagline_deprecated = ([site_tagline_deprecated_v1]);
54245  
54246  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
54247  /**
54248   * Internal dependencies
54249   */
54250  
54251  const site_tagline_metadata = {
54252    $schema: "https://schemas.wp.org/trunk/block.json",
54253    apiVersion: 3,
54254    name: "core/site-tagline",
54255    title: "Site Tagline",
54256    category: "theme",
54257    description: "Describe in a few words what the site is about. The tagline can be used in search results or when sharing on social networks even if it\u2019s not displayed in the theme design.",
54258    keywords: ["description"],
54259    textdomain: "default",
54260    attributes: {
54261      textAlign: {
54262        type: "string"
54263      },
54264      level: {
54265        type: "number",
54266        "default": 0
54267      },
54268      levelOptions: {
54269        type: "array",
54270        "default": [0, 1, 2, 3, 4, 5, 6]
54271      }
54272    },
54273    example: {
54274      viewportWidth: 350,
54275      attributes: {
54276        textAlign: "center"
54277      }
54278    },
54279    supports: {
54280      align: ["wide", "full"],
54281      html: false,
54282      color: {
54283        gradients: true,
54284        __experimentalDefaultControls: {
54285          background: true,
54286          text: true
54287        }
54288      },
54289      spacing: {
54290        margin: true,
54291        padding: true,
54292        __experimentalDefaultControls: {
54293          margin: false,
54294          padding: false
54295        }
54296      },
54297      typography: {
54298        fontSize: true,
54299        lineHeight: true,
54300        __experimentalFontFamily: true,
54301        __experimentalTextTransform: true,
54302        __experimentalTextDecoration: true,
54303        __experimentalFontStyle: true,
54304        __experimentalFontWeight: true,
54305        __experimentalLetterSpacing: true,
54306        __experimentalWritingMode: true,
54307        __experimentalDefaultControls: {
54308          fontSize: true
54309        }
54310      },
54311      interactivity: {
54312        clientNavigation: true
54313      },
54314      __experimentalBorder: {
54315        radius: true,
54316        color: true,
54317        width: true,
54318        style: true
54319      }
54320    },
54321    editorStyle: "wp-block-site-tagline-editor",
54322    style: "wp-block-site-tagline"
54323  };
54324  
54325  
54326  
54327  const {
54328    name: site_tagline_name
54329  } = site_tagline_metadata;
54330  
54331  const site_tagline_settings = {
54332    icon: site_tagline_icon,
54333    edit: SiteTaglineEdit,
54334    deprecated: site_tagline_deprecated
54335  };
54336  const site_tagline_init = () => initBlock({
54337    name: site_tagline_name,
54338    metadata: site_tagline_metadata,
54339    settings: site_tagline_settings
54340  });
54341  
54342  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/map-marker.js
54343  /**
54344   * WordPress dependencies
54345   */
54346  
54347  
54348  const mapMarker = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54349    xmlns: "http://www.w3.org/2000/svg",
54350    viewBox: "0 0 24 24",
54351    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54352      d: "M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z"
54353    })
54354  });
54355  /* harmony default export */ const map_marker = (mapMarker);
54356  
54357  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit.js
54358  /**
54359   * External dependencies
54360   */
54361  
54362  
54363  /**
54364   * WordPress dependencies
54365   */
54366  
54367  
54368  
54369  
54370  
54371  
54372  
54373  
54374  
54375  
54376  function SiteTitleEdit({
54377    attributes,
54378    setAttributes,
54379    insertBlocksAfter
54380  }) {
54381    const {
54382      level,
54383      levelOptions,
54384      textAlign,
54385      isLink,
54386      linkTarget
54387    } = attributes;
54388    const {
54389      canUserEdit,
54390      title
54391    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
54392      const {
54393        canUser,
54394        getEntityRecord,
54395        getEditedEntityRecord
54396      } = select(external_wp_coreData_namespaceObject.store);
54397      const canEdit = canUser('update', {
54398        kind: 'root',
54399        name: 'site'
54400      });
54401      const settings = canEdit ? getEditedEntityRecord('root', 'site') : {};
54402      const readOnlySettings = getEntityRecord('root', '__unstableBase');
54403      return {
54404        canUserEdit: canEdit,
54405        title: canEdit ? settings?.title : readOnlySettings?.name
54406      };
54407    }, []);
54408    const {
54409      editEntityRecord
54410    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
54411    function setTitle(newTitle) {
54412      editEntityRecord('root', 'site', undefined, {
54413        title: newTitle
54414      });
54415    }
54416    const TagName = level === 0 ? 'p' : `h$level}`;
54417    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
54418      className: dist_clsx({
54419        [`has-text-align-$textAlign}`]: textAlign,
54420        'wp-block-site-title__placeholder': !canUserEdit && !title
54421      })
54422    });
54423    const siteTitleContent = canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
54424      ...blockProps,
54425      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
54426        tagName: isLink ? 'a' : 'span',
54427        href: isLink ? '#site-title-pseudo-link' : undefined,
54428        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site title text'),
54429        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site title…'),
54430        value: title,
54431        onChange: setTitle,
54432        allowedFormats: [],
54433        disableLineBreaks: true,
54434        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
54435      })
54436    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
54437      ...blockProps,
54438      children: isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
54439        href: "#site-title-pseudo-link",
54440        onClick: event => event.preventDefault(),
54441        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title) || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')
54442      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
54443        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title) || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')
54444      })
54445    });
54446    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54447      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
54448        group: "block",
54449        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
54450          value: level,
54451          options: levelOptions,
54452          onChange: newLevel => setAttributes({
54453            level: newLevel
54454          })
54455        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
54456          value: textAlign,
54457          onChange: nextAlign => {
54458            setAttributes({
54459              textAlign: nextAlign
54460            });
54461          }
54462        })]
54463      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
54464        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
54465          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
54466          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
54467            __nextHasNoMarginBottom: true,
54468            label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
54469            onChange: () => setAttributes({
54470              isLink: !isLink
54471            }),
54472            checked: isLink
54473          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
54474            __nextHasNoMarginBottom: true,
54475            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
54476            onChange: value => setAttributes({
54477              linkTarget: value ? '_blank' : '_self'
54478            }),
54479            checked: linkTarget === '_blank'
54480          })]
54481        })
54482      }), siteTitleContent]
54483    });
54484  }
54485  
54486  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/deprecated.js
54487  /**
54488   * Internal dependencies
54489   */
54490  
54491  const site_title_deprecated_v1 = {
54492    attributes: {
54493      level: {
54494        type: 'number',
54495        default: 1
54496      },
54497      textAlign: {
54498        type: 'string'
54499      },
54500      isLink: {
54501        type: 'boolean',
54502        default: true
54503      },
54504      linkTarget: {
54505        type: 'string',
54506        default: '_self'
54507      }
54508    },
54509    supports: {
54510      align: ['wide', 'full'],
54511      html: false,
54512      color: {
54513        gradients: true,
54514        link: true
54515      },
54516      spacing: {
54517        padding: true,
54518        margin: true
54519      },
54520      typography: {
54521        fontSize: true,
54522        lineHeight: true,
54523        __experimentalFontFamily: true,
54524        __experimentalTextTransform: true,
54525        __experimentalFontStyle: true,
54526        __experimentalFontWeight: true,
54527        __experimentalLetterSpacing: true
54528      }
54529    },
54530    save() {
54531      return null;
54532    },
54533    migrate: migrate_font_family,
54534    isEligible({
54535      style
54536    }) {
54537      return style?.typography?.fontFamily;
54538    }
54539  };
54540  
54541  /**
54542   * New deprecations need to be placed first
54543   * for them to have higher priority.
54544   *
54545   * Old deprecations may need to be updated as well.
54546   *
54547   * See block-deprecation.md
54548   */
54549  /* harmony default export */ const site_title_deprecated = ([site_title_deprecated_v1]);
54550  
54551  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/transforms.js
54552  /**
54553   * WordPress dependencies
54554   */
54555  
54556  const site_title_transforms_transforms = {
54557    to: [{
54558      type: 'block',
54559      blocks: ['core/site-logo'],
54560      transform: ({
54561        isLink,
54562        linkTarget
54563      }) => {
54564        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo', {
54565          isLink,
54566          linkTarget
54567        });
54568      }
54569    }]
54570  };
54571  /* harmony default export */ const site_title_transforms = (site_title_transforms_transforms);
54572  
54573  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
54574  /**
54575   * WordPress dependencies
54576   */
54577  
54578  
54579  /**
54580   * Internal dependencies
54581   */
54582  
54583  const site_title_metadata = {
54584    $schema: "https://schemas.wp.org/trunk/block.json",
54585    apiVersion: 3,
54586    name: "core/site-title",
54587    title: "Site Title",
54588    category: "theme",
54589    description: "Displays the name of this site. Update the block, and the changes apply everywhere it\u2019s used. This will also appear in the browser title bar and in search results.",
54590    textdomain: "default",
54591    attributes: {
54592      level: {
54593        type: "number",
54594        "default": 1
54595      },
54596      levelOptions: {
54597        type: "array",
54598        "default": [0, 1, 2, 3, 4, 5, 6]
54599      },
54600      textAlign: {
54601        type: "string"
54602      },
54603      isLink: {
54604        type: "boolean",
54605        "default": true
54606      },
54607      linkTarget: {
54608        type: "string",
54609        "default": "_self"
54610      }
54611    },
54612    example: {
54613      viewportWidth: 500
54614    },
54615    supports: {
54616      align: ["wide", "full"],
54617      html: false,
54618      color: {
54619        gradients: true,
54620        link: true,
54621        __experimentalDefaultControls: {
54622          background: true,
54623          text: true,
54624          link: true
54625        }
54626      },
54627      spacing: {
54628        padding: true,
54629        margin: true,
54630        __experimentalDefaultControls: {
54631          margin: false,
54632          padding: false
54633        }
54634      },
54635      typography: {
54636        fontSize: true,
54637        lineHeight: true,
54638        __experimentalFontFamily: true,
54639        __experimentalTextTransform: true,
54640        __experimentalTextDecoration: true,
54641        __experimentalFontStyle: true,
54642        __experimentalFontWeight: true,
54643        __experimentalLetterSpacing: true,
54644        __experimentalWritingMode: true,
54645        __experimentalDefaultControls: {
54646          fontSize: true
54647        }
54648      },
54649      interactivity: {
54650        clientNavigation: true
54651      },
54652      __experimentalBorder: {
54653        radius: true,
54654        color: true,
54655        width: true,
54656        style: true
54657      }
54658    },
54659    editorStyle: "wp-block-site-title-editor",
54660    style: "wp-block-site-title"
54661  };
54662  
54663  
54664  
54665  const {
54666    name: site_title_name
54667  } = site_title_metadata;
54668  
54669  const site_title_settings = {
54670    icon: map_marker,
54671    example: {
54672      viewportWidth: 350,
54673      attributes: {
54674        textAlign: 'center'
54675      }
54676    },
54677    edit: SiteTitleEdit,
54678    transforms: site_title_transforms,
54679    deprecated: site_title_deprecated
54680  };
54681  const site_title_init = () => initBlock({
54682    name: site_title_name,
54683    metadata: site_title_metadata,
54684    settings: site_title_settings
54685  });
54686  
54687  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/share.js
54688  /**
54689   * WordPress dependencies
54690   */
54691  
54692  
54693  const share = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54694    viewBox: "0 0 24 24",
54695    xmlns: "http://www.w3.org/2000/svg",
54696    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54697      d: "M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z"
54698    })
54699  });
54700  /* harmony default export */ const library_share = (share);
54701  
54702  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js
54703  /**
54704   * WordPress dependencies
54705   */
54706  
54707  
54708  const keyboardReturn = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54709    xmlns: "http://www.w3.org/2000/svg",
54710    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54711      d: "m6.734 16.106 2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.158 1.093-1.028-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734Z"
54712    })
54713  });
54714  /* harmony default export */ const keyboard_return = (keyboardReturn);
54715  
54716  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js
54717  /**
54718   * WordPress dependencies
54719   */
54720  
54721  
54722  const WordPressIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54723    width: "24",
54724    height: "24",
54725    viewBox: "0 0 24 24",
54726    version: "1.1",
54727    xmlns: "http://www.w3.org/2000/svg",
54728    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54729      d: "M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"
54730    })
54731  });
54732  
54733  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js
54734  /**
54735   * WordPress dependencies
54736   */
54737  
54738  
54739  const FivehundredpxIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54740    width: "24",
54741    height: "24",
54742    viewBox: "0 0 24 24",
54743    version: "1.1",
54744    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54745      d: "M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z"
54746    })
54747  });
54748  
54749  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js
54750  /**
54751   * WordPress dependencies
54752   */
54753  
54754  
54755  const AmazonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54756    width: "24",
54757    height: "24",
54758    viewBox: "0 0 24 24",
54759    version: "1.1",
54760    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54761      d: "M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z"
54762    })
54763  });
54764  
54765  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js
54766  /**
54767   * WordPress dependencies
54768   */
54769  
54770  
54771  
54772  const BandcampIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54773    width: "24",
54774    height: "24",
54775    viewBox: "0 0 24 24",
54776    version: "1.1",
54777    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54778      d: "M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"
54779    })
54780  });
54781  
54782  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js
54783  /**
54784   * WordPress dependencies
54785   */
54786  
54787  
54788  const BehanceIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54789    width: "24",
54790    height: "24",
54791    viewBox: "0 0 24 24",
54792    version: "1.1",
54793    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54794      d: "M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z"
54795    })
54796  });
54797  
54798  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/bluesky.js
54799  /**
54800   * WordPress dependencies
54801   */
54802  
54803  
54804  const BlueskyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54805    width: "24",
54806    height: "24",
54807    viewBox: "0 0 24 24",
54808    version: "1.1",
54809    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54810      d: "M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"
54811    })
54812  });
54813  
54814  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js
54815  /**
54816   * WordPress dependencies
54817   */
54818  
54819  
54820  const ChainIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54821    width: "24",
54822    height: "24",
54823    viewBox: "0 0 24 24",
54824    version: "1.1",
54825    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54826      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"
54827    })
54828  });
54829  
54830  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js
54831  /**
54832   * WordPress dependencies
54833   */
54834  
54835  
54836  const CodepenIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54837    width: "24",
54838    height: "24",
54839    viewBox: "0 0 24 24",
54840    version: "1.1",
54841    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54842      d: "M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"
54843    })
54844  });
54845  
54846  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js
54847  /**
54848   * WordPress dependencies
54849   */
54850  
54851  
54852  const DeviantArtIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54853    width: "24",
54854    height: "24",
54855    viewBox: "0 0 24 24",
54856    version: "1.1",
54857    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54858      d: "M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z"
54859    })
54860  });
54861  
54862  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js
54863  /**
54864   * WordPress dependencies
54865   */
54866  
54867  
54868  const DribbbleIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54869    width: "24",
54870    height: "24",
54871    viewBox: "0 0 24 24",
54872    version: "1.1",
54873    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54874      d: "M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z"
54875    })
54876  });
54877  
54878  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js
54879  /**
54880   * WordPress dependencies
54881   */
54882  
54883  
54884  const DropboxIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54885    width: "24",
54886    height: "24",
54887    viewBox: "0 0 24 24",
54888    version: "1.1",
54889    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54890      d: "M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z"
54891    })
54892  });
54893  
54894  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js
54895  /**
54896   * WordPress dependencies
54897   */
54898  
54899  
54900  const EtsyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54901    width: "24",
54902    height: "24",
54903    viewBox: "0 0 24 24",
54904    version: "1.1",
54905    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54906      d: "M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z"
54907    })
54908  });
54909  
54910  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js
54911  /**
54912   * WordPress dependencies
54913   */
54914  
54915  
54916  const FacebookIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54917    width: "24",
54918    height: "24",
54919    viewBox: "0 0 24 24",
54920    version: "1.1",
54921    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54922      d: "M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"
54923    })
54924  });
54925  
54926  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js
54927  /**
54928   * WordPress dependencies
54929   */
54930  
54931  
54932  const FeedIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54933    width: "24",
54934    height: "24",
54935    viewBox: "0 0 24 24",
54936    version: "1.1",
54937    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54938      d: "M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"
54939    })
54940  });
54941  
54942  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js
54943  /**
54944   * WordPress dependencies
54945   */
54946  
54947  
54948  const FlickrIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54949    width: "24",
54950    height: "24",
54951    viewBox: "0 0 24 24",
54952    version: "1.1",
54953    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54954      d: "M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z"
54955    })
54956  });
54957  
54958  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js
54959  /**
54960   * WordPress dependencies
54961   */
54962  
54963  
54964  const FoursquareIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54965    width: "24",
54966    height: "24",
54967    viewBox: "0 0 24 24",
54968    version: "1.1",
54969    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54970      d: "M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z"
54971    })
54972  });
54973  
54974  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js
54975  /**
54976   * WordPress dependencies
54977   */
54978  
54979  
54980  const GoodreadsIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54981    width: "24",
54982    height: "24",
54983    viewBox: "0 0 24 24",
54984    version: "1.1",
54985    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54986      d: "M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z"
54987    })
54988  });
54989  
54990  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js
54991  /**
54992   * WordPress dependencies
54993   */
54994  
54995  
54996  const GoogleIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54997    width: "24",
54998    height: "24",
54999    viewBox: "0 0 24 24",
55000    version: "1.1",
55001    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55002      d: "M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z"
55003    })
55004  });
55005  
55006  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js
55007  /**
55008   * WordPress dependencies
55009   */
55010  
55011  
55012  const GitHubIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55013    width: "24",
55014    height: "24",
55015    viewBox: "0 0 24 24",
55016    version: "1.1",
55017    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55018      d: "M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"
55019    })
55020  });
55021  
55022  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/gravatar.js
55023  /**
55024   * WordPress dependencies
55025   */
55026  
55027  
55028  const GravatarIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55029    width: "24",
55030    height: "24",
55031    viewBox: "0 0 24 24",
55032    version: "1.1",
55033    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55034      d: "M10.8001 4.69937V10.6494C10.8001 11.1001 10.9791 11.5323 11.2978 11.851C11.6165 12.1697 12.0487 12.3487 12.4994 12.3487C12.9501 12.3487 13.3824 12.1697 13.7011 11.851C14.0198 11.5323 14.1988 11.1001 14.1988 10.6494V6.69089C15.2418 7.05861 16.1371 7.75537 16.7496 8.67617C17.3622 9.59698 17.6589 10.6919 17.595 11.796C17.5311 12.9001 17.1101 13.9535 16.3954 14.7975C15.6807 15.6415 14.711 16.2303 13.6325 16.4753C12.5541 16.7202 11.4252 16.608 10.4161 16.1555C9.40691 15.703 8.57217 14.9348 8.03763 13.9667C7.50308 12.9985 7.29769 11.8828 7.45242 10.7877C7.60714 9.69266 8.11359 8.67755 8.89545 7.89537C9.20904 7.57521 9.38364 7.14426 9.38132 6.69611C9.37899 6.24797 9.19994 5.81884 8.88305 5.50195C8.56616 5.18506 8.13704 5.00601 7.68889 5.00369C7.24075 5.00137 6.80979 5.17597 6.48964 5.48956C5.09907 6.8801 4.23369 8.7098 4.04094 10.6669C3.84819 12.624 4.34 14.5873 5.43257 16.2224C6.52515 17.8575 8.15088 19.0632 10.0328 19.634C11.9146 20.2049 13.9362 20.1055 15.753 19.3529C17.5699 18.6003 19.0695 17.241 19.9965 15.5066C20.9234 13.7722 21.2203 11.7701 20.8366 9.84133C20.4528 7.91259 19.4122 6.17658 17.892 4.92911C16.3717 3.68163 14.466 2.99987 12.4994 3C12.0487 3 11.6165 3.17904 11.2978 3.49773C10.9791 3.81643 10.8001 4.24867 10.8001 4.69937Z"
55035    })
55036  });
55037  
55038  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js
55039  /**
55040   * WordPress dependencies
55041   */
55042  
55043  
55044  const InstagramIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55045    width: "24",
55046    height: "24",
55047    viewBox: "0 0 24 24",
55048    version: "1.1",
55049    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55050      d: "M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"
55051    })
55052  });
55053  
55054  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js
55055  /**
55056   * WordPress dependencies
55057   */
55058  
55059  
55060  const LastfmIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55061    width: "24",
55062    height: "24",
55063    viewBox: "0 0 24 24",
55064    version: "1.1",
55065    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55066      d: "M 12.0002 1.5 C 6.2006 1.5 1.5 6.2011 1.5 11.9998 C 1.5 17.799 6.2006 22.5 12.0002 22.5 C 17.799 22.5 22.5 17.799 22.5 11.9998 C 22.5 6.2011 17.799 1.5 12.0002 1.5 Z M 16.1974 16.2204 C 14.8164 16.2152 13.9346 15.587 13.3345 14.1859 L 13.1816 13.8451 L 11.8541 10.8101 C 11.4271 9.7688 10.3526 9.0712 9.1801 9.0712 C 7.5695 9.0712 6.2593 10.3851 6.2593 12.001 C 6.2593 13.6165 7.5695 14.9303 9.1801 14.9303 C 10.272 14.9303 11.2651 14.3275 11.772 13.3567 C 11.7893 13.3235 11.8239 13.302 11.863 13.3038 C 11.9007 13.3054 11.9353 13.3288 11.9504 13.3632 L 12.4865 14.6046 C 12.5016 14.639 12.4956 14.6778 12.4723 14.7069 C 11.6605 15.6995 10.4602 16.2683 9.1801 16.2683 C 6.8331 16.2683 4.9234 14.3536 4.9234 12.001 C 4.9234 9.6468 6.833 7.732 9.1801 7.732 C 10.9572 7.732 12.3909 8.6907 13.1138 10.3636 C 13.1206 10.3802 13.8412 12.0708 14.4744 13.5191 C 14.8486 14.374 15.1462 14.896 16.1288 14.9292 C 17.0663 14.9613 17.7538 14.4122 17.7538 13.6485 C 17.7538 12.9691 17.3321 12.8004 16.3803 12.4822 C 14.7365 11.9398 13.845 11.3861 13.845 10.0182 C 13.845 8.6809 14.7667 7.8162 16.192 7.8162 C 17.1288 7.8162 17.8155 8.2287 18.2921 9.0768 C 18.305 9.1006 18.3079 9.1281 18.3004 9.1542 C 18.2929 9.1803 18.2748 9.2021 18.2507 9.2138 L 17.3614 9.669 C 17.3178 9.692 17.2643 9.6781 17.2356 9.6385 C 16.9329 9.2135 16.5956 9.0251 16.1423 9.0251 C 15.5512 9.0251 15.122 9.429 15.122 9.9865 C 15.122 10.6738 15.6529 10.8414 16.5339 11.1192 C 16.6491 11.1558 16.7696 11.194 16.8939 11.2343 C 18.2763 11.6865 19.0768 12.2311 19.0768 13.6836 C 19.0769 15.1297 17.8389 16.2204 16.1974 16.2204 Z"
55067    })
55068  });
55069  
55070  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js
55071  /**
55072   * WordPress dependencies
55073   */
55074  
55075  
55076  const LinkedInIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55077    width: "24",
55078    height: "24",
55079    viewBox: "0 0 24 24",
55080    version: "1.1",
55081    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55082      d: "M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"
55083    })
55084  });
55085  
55086  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js
55087  /**
55088   * WordPress dependencies
55089   */
55090  
55091  
55092  const MailIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55093    width: "24",
55094    height: "24",
55095    viewBox: "0 0 24 24",
55096    version: "1.1",
55097    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55098      d: "M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm.5 12c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l7.5 5.6 7.5-5.6V17zm0-9.1L12 13.6 4.5 7.9V7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v.9z"
55099    })
55100  });
55101  
55102  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js
55103  /**
55104   * WordPress dependencies
55105   */
55106  
55107  
55108  const MastodonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55109    width: "24",
55110    height: "24",
55111    viewBox: "0 0 24 24",
55112    version: "1.1",
55113    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55114      d: "M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z"
55115    })
55116  });
55117  
55118  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js
55119  /**
55120   * WordPress dependencies
55121   */
55122  
55123  
55124  const MeetupIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55125    width: "24",
55126    height: "24",
55127    viewBox: "0 0 24 24",
55128    version: "1.1",
55129    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55130      d: "M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z"
55131    })
55132  });
55133  
55134  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js
55135  /**
55136   * WordPress dependencies
55137   */
55138  
55139  
55140  const MediumIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55141    width: "24",
55142    height: "24",
55143    viewBox: "0 0 24 24",
55144    version: "1.1",
55145    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55146      d: "M13.2,12c0,3-2.4,5.4-5.3,5.4S2.6,15,2.6,12s2.4-5.4,5.3-5.4S13.2,9,13.2,12 M19.1,12c0,2.8-1.2,5-2.7,5s-2.7-2.3-2.7-5s1.2-5,2.7-5C17.9,7,19.1,9.2,19.1,12 M21.4,12c0,2.5-0.4,4.5-0.9,4.5c-0.5,0-0.9-2-0.9-4.5s0.4-4.5,0.9-4.5C21,7.5,21.4,9.5,21.4,12"
55147    })
55148  });
55149  
55150  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/patreon.js
55151  /**
55152   * WordPress dependencies
55153   */
55154  
55155  
55156  const PatreonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55157    width: "24",
55158    height: "24",
55159    viewBox: "0 0 24 24",
55160    version: "1.1",
55161    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55162      d: "M20 8.40755C19.9969 6.10922 18.2543 4.22555 16.2097 3.54588C13.6708 2.70188 10.3222 2.82421 7.89775 3.99921C4.95932 5.42355 4.03626 8.54355 4.00186 11.6552C3.97363 14.2136 4.2222 20.9517 7.92225 20.9997C10.6715 21.0356 11.0809 17.3967 12.3529 15.6442C13.258 14.3974 14.4233 14.0452 15.8578 13.6806C18.3233 13.0537 20.0036 11.0551 20 8.40755Z"
55163    })
55164  });
55165  
55166  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js
55167  /**
55168   * WordPress dependencies
55169   */
55170  
55171  
55172  const PinterestIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55173    width: "24",
55174    height: "24",
55175    viewBox: "0 0 24 24",
55176    version: "1.1",
55177    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55178      d: "M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"
55179    })
55180  });
55181  
55182  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js
55183  /**
55184   * WordPress dependencies
55185   */
55186  
55187  
55188  const PocketIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55189    width: "24",
55190    height: "24",
55191    viewBox: "0 0 24 24",
55192    version: "1.1",
55193    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55194      d: "M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z"
55195    })
55196  });
55197  
55198  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js
55199  /**
55200   * WordPress dependencies
55201   */
55202  
55203  
55204  const RedditIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55205    width: "24",
55206    height: "24",
55207    viewBox: "0 0 24 24",
55208    version: "1.1",
55209    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55210      d: "M5.27 9.221A2.775 2.775 0 0 0 2.498 11.993a2.785 2.785 0 0 0 1.6 2.511 5.337 5.337 0 0 0 2.374 4.11 9.386 9.386 0 0 0 5.539 1.7 9.386 9.386 0 0 0 5.541-1.7 5.331 5.331 0 0 0 2.372-4.114 2.787 2.787 0 0 0 1.583-2.5 2.775 2.775 0 0 0-2.772-2.772 2.742 2.742 0 0 0-1.688.574 9.482 9.482 0 0 0-4.637-1.348v-.008a2.349 2.349 0 0 1 2.011-2.316 1.97 1.97 0 0 0 1.926 1.521 1.98 1.98 0 0 0 1.978-1.978 1.98 1.98 0 0 0-1.978-1.978 1.985 1.985 0 0 0-1.938 1.578 3.183 3.183 0 0 0-2.849 3.172v.011a9.463 9.463 0 0 0-4.59 1.35 2.741 2.741 0 0 0-1.688-.574Zm6.736 9.1a3.162 3.162 0 0 1-2.921-1.944.215.215 0 0 1 .014-.2.219.219 0 0 1 .168-.106 27.327 27.327 0 0 1 2.74-.133 27.357 27.357 0 0 1 2.74.133.219.219 0 0 1 .168.106.215.215 0 0 1 .014.2 3.158 3.158 0 0 1-2.921 1.944Zm3.743-3.157a1.265 1.265 0 0 1-1.4-1.371 1.954 1.954 0 0 1 .482-1.442 1.15 1.15 0 0 1 .842-.379 1.7 1.7 0 0 1 1.49 1.777 1.323 1.323 0 0 1-.325 1.015 1.476 1.476 0 0 1-1.089.4Zm-7.485 0a1.476 1.476 0 0 1-1.086-.4 1.323 1.323 0 0 1-.325-1.016 1.7 1.7 0 0 1 1.49-1.777 1.151 1.151 0 0 1 .843.379 1.951 1.951 0 0 1 .481 1.441 1.276 1.276 0 0 1-1.403 1.373Z"
55211    })
55212  });
55213  
55214  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js
55215  /**
55216   * WordPress dependencies
55217   */
55218  
55219  
55220  const SkypeIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55221    width: "24",
55222    height: "24",
55223    viewBox: "0 0 24 24",
55224    version: "1.1",
55225    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55226      d: "M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z"
55227    })
55228  });
55229  
55230  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js
55231  /**
55232   * WordPress dependencies
55233   */
55234  
55235  
55236  const SnapchatIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55237    width: "24",
55238    height: "24",
55239    viewBox: "0 0 24 24",
55240    version: "1.1",
55241    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55242      d: "M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z"
55243    })
55244  });
55245  
55246  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js
55247  /**
55248   * WordPress dependencies
55249   */
55250  
55251  
55252  const SoundCloudIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55253    width: "24",
55254    height: "24",
55255    viewBox: "0 0 24 24",
55256    version: "1.1",
55257    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55258      d: "M23.994 14.552a3.36 3.36 0 01-3.401 3.171h-8.176a.685.685 0 01-.679-.681V8.238a.749.749 0 01.452-.716S12.942 7 14.526 7a5.357 5.357 0 012.748.755 5.44 5.44 0 012.56 3.546c.282-.08.574-.12.868-.119a3.273 3.273 0 013.292 3.37zM10.718 8.795a.266.266 0 10-.528 0c-.224 2.96-.397 5.735 0 8.685a.265.265 0 00.528 0c.425-2.976.246-5.7 0-8.685zM9.066 9.82a.278.278 0 00-.553 0 33.183 33.183 0 000 7.663.278.278 0 00.55 0c.33-2.544.332-5.12.003-7.664zM7.406 9.56a.269.269 0 00-.535 0c-.253 2.7-.38 5.222 0 7.917a.266.266 0 10.531 0c.394-2.73.272-5.181.004-7.917zM5.754 10.331a.275.275 0 10-.55 0 28.035 28.035 0 000 7.155.272.272 0 00.54 0c.332-2.373.335-4.78.01-7.155zM4.087 12.12a.272.272 0 00-.544 0c-.393 1.843-.208 3.52.016 5.386a.26.26 0 00.512 0c.247-1.892.435-3.53.016-5.386zM2.433 11.838a.282.282 0 00-.56 0c-.349 1.882-.234 3.54.01 5.418.025.285.508.282.54 0 .269-1.907.394-3.517.01-5.418zM.762 12.76a.282.282 0 00-.56 0c-.32 1.264-.22 2.31.023 3.578a.262.262 0 00.521 0c.282-1.293.42-2.317.016-3.578z"
55259    })
55260  });
55261  
55262  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js
55263  /**
55264   * WordPress dependencies
55265   */
55266  
55267  
55268  const SpotifyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55269    width: "24",
55270    height: "24",
55271    viewBox: "0 0 24 24",
55272    version: "1.1",
55273    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55274      d: "M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865"
55275    })
55276  });
55277  
55278  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/telegram.js
55279  /**
55280   * WordPress dependencies
55281   */
55282  
55283  
55284  const TelegramIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55285    width: "24",
55286    height: "24",
55287    viewBox: "0 0 128 128",
55288    version: "1.1",
55289    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55290      d: "M28.9700376,63.3244248 C47.6273373,55.1957357 60.0684594,49.8368063 66.2934036,47.2476366 C84.0668845,39.855031 87.7600616,38.5708563 90.1672227,38.528 C90.6966555,38.5191258 91.8804274,38.6503351 92.6472251,39.2725385 C93.294694,39.7979149 93.4728387,40.5076237 93.5580865,41.0057381 C93.6433345,41.5038525 93.7494885,42.63857 93.6651041,43.5252052 C92.7019529,53.6451182 88.5344133,78.2034783 86.4142057,89.5379542 C85.5170662,94.3339958 83.750571,95.9420841 82.0403991,96.0994568 C78.3237996,96.4414641 75.5015827,93.6432685 71.9018743,91.2836143 C66.2690414,87.5912212 63.0868492,85.2926952 57.6192095,81.6896017 C51.3004058,77.5256038 55.3966232,75.2369981 58.9976911,71.4967761 C59.9401076,70.5179421 76.3155302,55.6232293 76.6324771,54.2720454 C76.6721165,54.1030573 76.7089039,53.4731496 76.3346867,53.1405352 C75.9604695,52.8079208 75.4081573,52.921662 75.0095933,53.0121213 C74.444641,53.1403447 65.4461175,59.0880351 48.0140228,70.8551922 C45.4598218,72.6091037 43.1463059,73.4636682 41.0734751,73.4188859 C38.7883453,73.3695169 34.3926725,72.1268388 31.1249416,71.0646282 C27.1169366,69.7617838 23.931454,69.0729605 24.208838,66.8603276 C24.3533167,65.7078514 25.9403832,64.5292172 28.9700376,63.3244248 Z"
55291    })
55292  });
55293  
55294  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/threads.js
55295  /**
55296   * WordPress dependencies
55297   */
55298  
55299  
55300  const ThreadsIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55301    width: "24",
55302    height: "24",
55303    viewBox: "0 0 24 24",
55304    version: "1.1",
55305    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55306      d: "M16.3 11.3c-.1 0-.2-.1-.2-.1-.1-2.6-1.5-4-3.9-4-1.4 0-2.6.6-3.3 1.7l1.3.9c.5-.8 1.4-1 2-1 .8 0 1.4.2 1.7.7.3.3.5.8.5 1.3-.7-.1-1.4-.2-2.2-.1-2.2.1-3.7 1.4-3.6 3.2 0 .9.5 1.7 1.3 2.2.7.4 1.5.6 2.4.6 1.2-.1 2.1-.5 2.7-1.3.5-.6.8-1.4.9-2.4.6.3 1 .8 1.2 1.3.4.9.4 2.4-.8 3.6-1.1 1.1-2.3 1.5-4.3 1.5-2.1 0-3.8-.7-4.8-2S5.7 14.3 5.7 12c0-2.3.5-4.1 1.5-5.4 1.1-1.3 2.7-2 4.8-2 2.2 0 3.8.7 4.9 2 .5.7.9 1.5 1.2 2.5l1.5-.4c-.3-1.2-.8-2.2-1.5-3.1-1.3-1.7-3.3-2.6-6-2.6-2.6 0-4.7.9-6 2.6C4.9 7.2 4.3 9.3 4.3 12s.6 4.8 1.9 6.4c1.4 1.7 3.4 2.6 6 2.6 2.3 0 4-.6 5.3-2 1.8-1.8 1.7-4 1.1-5.4-.4-.9-1.2-1.7-2.3-2.3zm-4 3.8c-1 .1-2-.4-2-1.3 0-.7.5-1.5 2.1-1.6h.5c.6 0 1.1.1 1.6.2-.2 2.3-1.3 2.7-2.2 2.7z"
55307    })
55308  });
55309  
55310  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tiktok.js
55311  /**
55312   * WordPress dependencies
55313   */
55314  
55315  
55316  const TiktokIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55317    width: "24",
55318    height: "24",
55319    viewBox: "0 0 32 32",
55320    version: "1.1",
55321    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55322      d: "M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z"
55323    })
55324  });
55325  
55326  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js
55327  /**
55328   * WordPress dependencies
55329   */
55330  
55331  
55332  const TumblrIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55333    width: "24",
55334    height: "24",
55335    viewBox: "0 0 24 24",
55336    version: "1.1",
55337    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55338      d: "M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z"
55339    })
55340  });
55341  
55342  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js
55343  /**
55344   * WordPress dependencies
55345   */
55346  
55347  
55348  const TwitchIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55349    width: "24",
55350    height: "24",
55351    viewBox: "0 0 24 24",
55352    version: "1.1",
55353    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55354      d: "M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z"
55355    })
55356  });
55357  
55358  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js
55359  /**
55360   * WordPress dependencies
55361   */
55362  
55363  
55364  const TwitterIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55365    width: "24",
55366    height: "24",
55367    viewBox: "0 0 24 24",
55368    version: "1.1",
55369    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55370      d: "M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"
55371    })
55372  });
55373  
55374  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js
55375  /**
55376   * WordPress dependencies
55377   */
55378  
55379  
55380  const VimeoIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55381    width: "24",
55382    height: "24",
55383    viewBox: "0 0 24 24",
55384    version: "1.1",
55385    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55386      d: "M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z"
55387    })
55388  });
55389  
55390  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js
55391  /**
55392   * WordPress dependencies
55393   */
55394  
55395  
55396  const VkIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55397    width: "24",
55398    height: "24",
55399    viewBox: "0 0 24 24",
55400    version: "1.1",
55401    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55402      d: "M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z"
55403    })
55404  });
55405  
55406  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/whatsapp.js
55407  /**
55408   * WordPress dependencies
55409   */
55410  
55411  
55412  const WhatsAppIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55413    width: "24",
55414    height: "24",
55415    viewBox: "0 0 24 24",
55416    version: "1.1",
55417    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55418      d: "M 12.011719 2 C 6.5057187 2 2.0234844 6.478375 2.0214844 11.984375 C 2.0204844 13.744375 2.4814687 15.462563 3.3554688 16.976562 L 2 22 L 7.2324219 20.763672 C 8.6914219 21.559672 10.333859 21.977516 12.005859 21.978516 L 12.009766 21.978516 C 17.514766 21.978516 21.995047 17.499141 21.998047 11.994141 C 22.000047 9.3251406 20.962172 6.8157344 19.076172 4.9277344 C 17.190172 3.0407344 14.683719 2.001 12.011719 2 z M 12.009766 4 C 14.145766 4.001 16.153109 4.8337969 17.662109 6.3417969 C 19.171109 7.8517969 20.000047 9.8581875 19.998047 11.992188 C 19.996047 16.396187 16.413812 19.978516 12.007812 19.978516 C 10.674812 19.977516 9.3544062 19.642812 8.1914062 19.007812 L 7.5175781 18.640625 L 6.7734375 18.816406 L 4.8046875 19.28125 L 5.2851562 17.496094 L 5.5019531 16.695312 L 5.0878906 15.976562 C 4.3898906 14.768562 4.0204844 13.387375 4.0214844 11.984375 C 4.0234844 7.582375 7.6067656 4 12.009766 4 z M 8.4765625 7.375 C 8.3095625 7.375 8.0395469 7.4375 7.8105469 7.6875 C 7.5815469 7.9365 6.9355469 8.5395781 6.9355469 9.7675781 C 6.9355469 10.995578 7.8300781 12.182609 7.9550781 12.349609 C 8.0790781 12.515609 9.68175 15.115234 12.21875 16.115234 C 14.32675 16.946234 14.754891 16.782234 15.212891 16.740234 C 15.670891 16.699234 16.690438 16.137687 16.898438 15.554688 C 17.106437 14.971687 17.106922 14.470187 17.044922 14.367188 C 16.982922 14.263188 16.816406 14.201172 16.566406 14.076172 C 16.317406 13.951172 15.090328 13.348625 14.861328 13.265625 C 14.632328 13.182625 14.464828 13.140625 14.298828 13.390625 C 14.132828 13.640625 13.655766 14.201187 13.509766 14.367188 C 13.363766 14.534188 13.21875 14.556641 12.96875 14.431641 C 12.71875 14.305641 11.914938 14.041406 10.960938 13.191406 C 10.218937 12.530406 9.7182656 11.714844 9.5722656 11.464844 C 9.4272656 11.215844 9.5585938 11.079078 9.6835938 10.955078 C 9.7955938 10.843078 9.9316406 10.663578 10.056641 10.517578 C 10.180641 10.371578 10.223641 10.267562 10.306641 10.101562 C 10.389641 9.9355625 10.347156 9.7890625 10.285156 9.6640625 C 10.223156 9.5390625 9.737625 8.3065 9.515625 7.8125 C 9.328625 7.3975 9.131125 7.3878594 8.953125 7.3808594 C 8.808125 7.3748594 8.6425625 7.375 8.4765625 7.375 z"
55419    })
55420  });
55421  
55422  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/x.js
55423  /**
55424   * WordPress dependencies
55425   */
55426  
55427  
55428  const XIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55429    width: "24",
55430    height: "24",
55431    viewBox: "0 0 24 24",
55432    version: "1.1",
55433    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55434      d: "M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z"
55435    })
55436  });
55437  
55438  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js
55439  /**
55440   * WordPress dependencies
55441   */
55442  
55443  
55444  const YelpIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55445    width: "24",
55446    height: "24",
55447    viewBox: "0 0 24 24",
55448    version: "1.1",
55449    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55450      d: "M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z"
55451    })
55452  });
55453  
55454  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js
55455  /**
55456   * WordPress dependencies
55457   */
55458  
55459  
55460  const YouTubeIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55461    width: "24",
55462    height: "24",
55463    viewBox: "0 0 24 24",
55464    version: "1.1",
55465    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55466      d: "M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"
55467    })
55468  });
55469  
55470  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/variations.js
55471  /**
55472   * Internal dependencies
55473   */
55474  
55475  const social_link_variations_variations = [{
55476    isDefault: true,
55477    name: 'wordpress',
55478    attributes: {
55479      service: 'wordpress'
55480    },
55481    title: 'WordPress',
55482    icon: WordPressIcon
55483  }, {
55484    name: 'fivehundredpx',
55485    attributes: {
55486      service: 'fivehundredpx'
55487    },
55488    title: '500px',
55489    icon: FivehundredpxIcon
55490  }, {
55491    name: 'amazon',
55492    attributes: {
55493      service: 'amazon'
55494    },
55495    title: 'Amazon',
55496    icon: AmazonIcon
55497  }, {
55498    name: 'bandcamp',
55499    attributes: {
55500      service: 'bandcamp'
55501    },
55502    title: 'Bandcamp',
55503    icon: BandcampIcon
55504  }, {
55505    name: 'behance',
55506    attributes: {
55507      service: 'behance'
55508    },
55509    title: 'Behance',
55510    icon: BehanceIcon
55511  }, {
55512    name: 'bluesky',
55513    attributes: {
55514      service: 'bluesky'
55515    },
55516    title: 'Bluesky',
55517    icon: BlueskyIcon
55518  }, {
55519    name: 'chain',
55520    attributes: {
55521      service: 'chain'
55522    },
55523    title: 'Link',
55524    icon: ChainIcon
55525  }, {
55526    name: 'codepen',
55527    attributes: {
55528      service: 'codepen'
55529    },
55530    title: 'CodePen',
55531    icon: CodepenIcon
55532  }, {
55533    name: 'deviantart',
55534    attributes: {
55535      service: 'deviantart'
55536    },
55537    title: 'DeviantArt',
55538    icon: DeviantArtIcon
55539  }, {
55540    name: 'dribbble',
55541    attributes: {
55542      service: 'dribbble'
55543    },
55544    title: 'Dribbble',
55545    icon: DribbbleIcon
55546  }, {
55547    name: 'dropbox',
55548    attributes: {
55549      service: 'dropbox'
55550    },
55551    title: 'Dropbox',
55552    icon: DropboxIcon
55553  }, {
55554    name: 'etsy',
55555    attributes: {
55556      service: 'etsy'
55557    },
55558    title: 'Etsy',
55559    icon: EtsyIcon
55560  }, {
55561    name: 'facebook',
55562    attributes: {
55563      service: 'facebook'
55564    },
55565    title: 'Facebook',
55566    icon: FacebookIcon
55567  }, {
55568    name: 'feed',
55569    attributes: {
55570      service: 'feed'
55571    },
55572    title: 'RSS Feed',
55573    icon: FeedIcon
55574  }, {
55575    name: 'flickr',
55576    attributes: {
55577      service: 'flickr'
55578    },
55579    title: 'Flickr',
55580    icon: FlickrIcon
55581  }, {
55582    name: 'foursquare',
55583    attributes: {
55584      service: 'foursquare'
55585    },
55586    title: 'Foursquare',
55587    icon: FoursquareIcon
55588  }, {
55589    name: 'goodreads',
55590    attributes: {
55591      service: 'goodreads'
55592    },
55593    title: 'Goodreads',
55594    icon: GoodreadsIcon
55595  }, {
55596    name: 'google',
55597    attributes: {
55598      service: 'google'
55599    },
55600    title: 'Google',
55601    icon: GoogleIcon
55602  }, {
55603    name: 'github',
55604    attributes: {
55605      service: 'github'
55606    },
55607    title: 'GitHub',
55608    icon: GitHubIcon
55609  }, {
55610    name: 'gravatar',
55611    attributes: {
55612      service: 'gravatar'
55613    },
55614    title: 'Gravatar',
55615    icon: GravatarIcon
55616  }, {
55617    name: 'instagram',
55618    attributes: {
55619      service: 'instagram'
55620    },
55621    title: 'Instagram',
55622    icon: InstagramIcon
55623  }, {
55624    name: 'lastfm',
55625    attributes: {
55626      service: 'lastfm'
55627    },
55628    title: 'Last.fm',
55629    icon: LastfmIcon
55630  }, {
55631    name: 'linkedin',
55632    attributes: {
55633      service: 'linkedin'
55634    },
55635    title: 'LinkedIn',
55636    icon: LinkedInIcon
55637  }, {
55638    name: 'mail',
55639    attributes: {
55640      service: 'mail'
55641    },
55642    title: 'Mail',
55643    keywords: ['email', 'e-mail'],
55644    icon: MailIcon
55645  }, {
55646    name: 'mastodon',
55647    attributes: {
55648      service: 'mastodon'
55649    },
55650    title: 'Mastodon',
55651    icon: MastodonIcon
55652  }, {
55653    name: 'meetup',
55654    attributes: {
55655      service: 'meetup'
55656    },
55657    title: 'Meetup',
55658    icon: MeetupIcon
55659  }, {
55660    name: 'medium',
55661    attributes: {
55662      service: 'medium'
55663    },
55664    title: 'Medium',
55665    icon: MediumIcon
55666  }, {
55667    name: 'patreon',
55668    attributes: {
55669      service: 'patreon'
55670    },
55671    title: 'Patreon',
55672    icon: PatreonIcon
55673  }, {
55674    name: 'pinterest',
55675    attributes: {
55676      service: 'pinterest'
55677    },
55678    title: 'Pinterest',
55679    icon: PinterestIcon
55680  }, {
55681    name: 'pocket',
55682    attributes: {
55683      service: 'pocket'
55684    },
55685    title: 'Pocket',
55686    icon: PocketIcon
55687  }, {
55688    name: 'reddit',
55689    attributes: {
55690      service: 'reddit'
55691    },
55692    title: 'Reddit',
55693    icon: RedditIcon
55694  }, {
55695    name: 'skype',
55696    attributes: {
55697      service: 'skype'
55698    },
55699    title: 'Skype',
55700    icon: SkypeIcon
55701  }, {
55702    name: 'snapchat',
55703    attributes: {
55704      service: 'snapchat'
55705    },
55706    title: 'Snapchat',
55707    icon: SnapchatIcon
55708  }, {
55709    name: 'soundcloud',
55710    attributes: {
55711      service: 'soundcloud'
55712    },
55713    title: 'SoundCloud',
55714    icon: SoundCloudIcon
55715  }, {
55716    name: 'spotify',
55717    attributes: {
55718      service: 'spotify'
55719    },
55720    title: 'Spotify',
55721    icon: SpotifyIcon
55722  }, {
55723    name: 'telegram',
55724    attributes: {
55725      service: 'telegram'
55726    },
55727    title: 'Telegram',
55728    icon: TelegramIcon
55729  }, {
55730    name: 'threads',
55731    attributes: {
55732      service: 'threads'
55733    },
55734    title: 'Threads',
55735    icon: ThreadsIcon
55736  }, {
55737    name: 'tiktok',
55738    attributes: {
55739      service: 'tiktok'
55740    },
55741    title: 'TikTok',
55742    icon: TiktokIcon
55743  }, {
55744    name: 'tumblr',
55745    attributes: {
55746      service: 'tumblr'
55747    },
55748    title: 'Tumblr',
55749    icon: TumblrIcon
55750  }, {
55751    name: 'twitch',
55752    attributes: {
55753      service: 'twitch'
55754    },
55755    title: 'Twitch',
55756    icon: TwitchIcon
55757  }, {
55758    name: 'twitter',
55759    attributes: {
55760      service: 'twitter'
55761    },
55762    title: 'Twitter',
55763    icon: TwitterIcon
55764  }, {
55765    name: 'vimeo',
55766    attributes: {
55767      service: 'vimeo'
55768    },
55769    title: 'Vimeo',
55770    icon: VimeoIcon
55771  }, {
55772    name: 'vk',
55773    attributes: {
55774      service: 'vk'
55775    },
55776    title: 'VK',
55777    icon: VkIcon
55778  }, {
55779    name: 'whatsapp',
55780    attributes: {
55781      service: 'whatsapp'
55782    },
55783    title: 'WhatsApp',
55784    icon: WhatsAppIcon
55785  }, {
55786    name: 'x',
55787    attributes: {
55788      service: 'x'
55789    },
55790    keywords: ['twitter'],
55791    title: 'X',
55792    icon: XIcon
55793  }, {
55794    name: 'yelp',
55795    attributes: {
55796      service: 'yelp'
55797    },
55798    title: 'Yelp',
55799    icon: YelpIcon
55800  }, {
55801    name: 'youtube',
55802    attributes: {
55803      service: 'youtube'
55804    },
55805    title: 'YouTube',
55806    icon: YouTubeIcon
55807  }];
55808  
55809  /**
55810   * Add `isActive` function to all `social link` variations, if not defined.
55811   * `isActive` function is used to find a variation match from a created
55812   *  Block by providing its attributes.
55813   */
55814  social_link_variations_variations.forEach(variation => {
55815    if (variation.isActive) {
55816      return;
55817    }
55818    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service;
55819  });
55820  /* harmony default export */ const social_link_variations = (social_link_variations_variations);
55821  
55822  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js
55823  /**
55824   * WordPress dependencies
55825   */
55826  
55827  
55828  /**
55829   * Internal dependencies
55830   */
55831  
55832  
55833  
55834  /**
55835   * Retrieves the social service's icon component.
55836   *
55837   * @param {string} name key for a social service (lowercase slug)
55838   *
55839   * @return {Component} Icon component for social service.
55840   */
55841  const getIconBySite = name => {
55842    const variation = social_link_variations.find(v => v.name === name);
55843    return variation ? variation.icon : ChainIcon;
55844  };
55845  
55846  /**
55847   * Retrieves the display name for the social service.
55848   *
55849   * @param {string} name key for a social service (lowercase slug)
55850   *
55851   * @return {string} Display name for social service
55852   */
55853  const getNameBySite = name => {
55854    const variation = social_link_variations.find(v => v.name === name);
55855    return variation ? variation.title : (0,external_wp_i18n_namespaceObject.__)('Social Icon');
55856  };
55857  
55858  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/edit.js
55859  /**
55860   * External dependencies
55861   */
55862  
55863  
55864  /**
55865   * WordPress dependencies
55866   */
55867  
55868  
55869  
55870  
55871  
55872  
55873  
55874  
55875  /**
55876   * Internal dependencies
55877   */
55878  
55879  
55880  
55881  
55882  const SocialLinkURLPopover = ({
55883    url,
55884    setAttributes,
55885    setPopover,
55886    popoverAnchor,
55887    clientId
55888  }) => {
55889    const {
55890      removeBlock
55891    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
55892    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.URLPopover, {
55893      anchor: popoverAnchor,
55894      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Edit social link'),
55895      onClose: () => {
55896        setPopover(false);
55897        popoverAnchor?.focus();
55898      },
55899      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
55900        className: "block-editor-url-popover__link-editor",
55901        onSubmit: event => {
55902          event.preventDefault();
55903          setPopover(false);
55904          popoverAnchor?.focus();
55905        },
55906        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55907          className: "block-editor-url-input",
55908          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.URLInput, {
55909            value: url,
55910            onChange: nextURL => setAttributes({
55911              url: nextURL
55912            }),
55913            placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter social link'),
55914            label: (0,external_wp_i18n_namespaceObject.__)('Enter social link'),
55915            hideLabelFromVision: true,
55916            disableSuggestions: true,
55917            onKeyDown: event => {
55918              if (!!url || event.defaultPrevented || ![external_wp_keycodes_namespaceObject.BACKSPACE, external_wp_keycodes_namespaceObject.DELETE].includes(event.keyCode)) {
55919                return;
55920              }
55921              removeBlock(clientId);
55922            },
55923            suffix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControlSuffixWrapper, {
55924              variant: "control",
55925              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
55926                icon: keyboard_return,
55927                label: (0,external_wp_i18n_namespaceObject.__)('Apply'),
55928                type: "submit",
55929                size: "small"
55930              })
55931            })
55932          })
55933        })
55934      })
55935    });
55936  };
55937  const SocialLinkEdit = ({
55938    attributes,
55939    context,
55940    isSelected,
55941    setAttributes,
55942    clientId
55943  }) => {
55944    const {
55945      url,
55946      service,
55947      label = '',
55948      rel
55949    } = attributes;
55950    const {
55951      showLabels,
55952      iconColor,
55953      iconColorValue,
55954      iconBackgroundColor,
55955      iconBackgroundColorValue
55956    } = context;
55957    const [showURLPopover, setPopover] = (0,external_wp_element_namespaceObject.useState)(false);
55958    const classes = dist_clsx('wp-social-link', 'wp-social-link-' + service, {
55959      'wp-social-link__is-incomplete': !url,
55960      [`has-$iconColor}-color`]: iconColor,
55961      [`has-$iconBackgroundColor}-background-color`]: iconBackgroundColor
55962    });
55963  
55964    // Use internal state instead of a ref to make sure that the component
55965    // re-renders when the popover's anchor updates.
55966    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
55967    const IconComponent = getIconBySite(service);
55968    const socialLinkName = getNameBySite(service);
55969    // The initial label (ie. the link text) is an empty string.
55970    // We want to prevent empty links so that the link text always fallbacks to
55971    // the social name, even when users enter and save an empty string or only
55972    // spaces. The PHP render callback fallbacks to the social name as well.
55973    const socialLinkText = label.trim() === '' ? socialLinkName : label;
55974    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
55975      className: classes,
55976      style: {
55977        color: iconColorValue,
55978        backgroundColor: iconBackgroundColorValue
55979      }
55980    });
55981    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55982      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
55983        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
55984          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
55985          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelRow, {
55986            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
55987              __next40pxDefaultSize: true,
55988              __nextHasNoMarginBottom: true,
55989              label: (0,external_wp_i18n_namespaceObject.__)('Text'),
55990              help: (0,external_wp_i18n_namespaceObject.__)('The text is visible when enabled from the parent Social Icons block.'),
55991              value: label,
55992              onChange: value => setAttributes({
55993                label: value
55994              }),
55995              placeholder: socialLinkName
55996            })
55997          })
55998        })
55999      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
56000        group: "advanced",
56001        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
56002          __next40pxDefaultSize: true,
56003          __nextHasNoMarginBottom: true,
56004          label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
56005          value: rel || '',
56006          onChange: value => setAttributes({
56007            rel: value
56008          })
56009        })
56010      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
56011        ...blockProps,
56012        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("button", {
56013          className: "wp-block-social-link-anchor",
56014          ref: setPopoverAnchor,
56015          onClick: () => setPopover(true),
56016          "aria-haspopup": "dialog",
56017          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(IconComponent, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
56018            className: dist_clsx('wp-block-social-link-label', {
56019              'screen-reader-text': !showLabels
56020            }),
56021            children: socialLinkText
56022          })]
56023        }), isSelected && showURLPopover && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SocialLinkURLPopover, {
56024          url: url,
56025          setAttributes: setAttributes,
56026          setPopover: setPopover,
56027          popoverAnchor: popoverAnchor,
56028          clientId: clientId
56029        })]
56030      })]
56031    });
56032  };
56033  /* harmony default export */ const social_link_edit = (SocialLinkEdit);
56034  
56035  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
56036  /**
56037   * WordPress dependencies
56038   */
56039  
56040  
56041  /**
56042   * Internal dependencies
56043   */
56044  
56045  
56046  const social_link_metadata = {
56047    $schema: "https://schemas.wp.org/trunk/block.json",
56048    apiVersion: 3,
56049    name: "core/social-link",
56050    title: "Social Icon",
56051    category: "widgets",
56052    parent: ["core/social-links"],
56053    description: "Display an icon linking to a social profile or site.",
56054    textdomain: "default",
56055    attributes: {
56056      url: {
56057        type: "string"
56058      },
56059      service: {
56060        type: "string"
56061      },
56062      label: {
56063        type: "string"
56064      },
56065      rel: {
56066        type: "string"
56067      }
56068    },
56069    usesContext: ["openInNewTab", "showLabels", "iconColor", "iconColorValue", "iconBackgroundColor", "iconBackgroundColorValue"],
56070    supports: {
56071      reusable: false,
56072      html: false,
56073      interactivity: {
56074        clientNavigation: true
56075      }
56076    },
56077    editorStyle: "wp-block-social-link-editor"
56078  };
56079  
56080  const {
56081    name: social_link_name
56082  } = social_link_metadata;
56083  
56084  const social_link_settings = {
56085    icon: library_share,
56086    edit: social_link_edit,
56087    variations: social_link_variations
56088  };
56089  const social_link_init = () => initBlock({
56090    name: social_link_name,
56091    metadata: social_link_metadata,
56092    settings: social_link_settings
56093  });
56094  
56095  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/deprecated.js
56096  /**
56097   * External dependencies
56098   */
56099  
56100  
56101  /**
56102   * WordPress dependencies
56103   */
56104  
56105  
56106  /**
56107   * The specific handling by `className` below is needed because `itemsJustification`
56108   * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't
56109   * declared in block.json.
56110   *
56111   * @param {Object} attributes Block's attributes.
56112   */
56113  
56114  const social_links_deprecated_migrateWithLayout = attributes => {
56115    if (!!attributes.layout) {
56116      return attributes;
56117    }
56118    const {
56119      className
56120    } = attributes;
56121    // Matches classes with `items-justified-` prefix.
56122    const prefix = `items-justified-`;
56123    const justifiedItemsRegex = new RegExp(`\\b$prefix}[^ ]*[ ]?\\b`, 'g');
56124    const newAttributes = {
56125      ...attributes,
56126      className: className?.replace(justifiedItemsRegex, '').trim()
56127    };
56128    /**
56129     * Add `layout` prop only if `justifyContent` is defined, for backwards
56130     * compatibility. In other cases the block's default layout will be used.
56131     * Also noting that due to the missing attribute, it's possible for a block
56132     * to have more than one of `justified` classes.
56133     */
56134    const justifyContent = className?.match(justifiedItemsRegex)?.[0]?.trim();
56135    if (justifyContent) {
56136      Object.assign(newAttributes, {
56137        layout: {
56138          type: 'flex',
56139          justifyContent: justifyContent.slice(prefix.length)
56140        }
56141      });
56142    }
56143    return newAttributes;
56144  };
56145  
56146  // Social Links block deprecations.
56147  const social_links_deprecated_deprecated = [
56148  // V1. Remove CSS variable use for colors.
56149  {
56150    attributes: {
56151      iconColor: {
56152        type: 'string'
56153      },
56154      customIconColor: {
56155        type: 'string'
56156      },
56157      iconColorValue: {
56158        type: 'string'
56159      },
56160      iconBackgroundColor: {
56161        type: 'string'
56162      },
56163      customIconBackgroundColor: {
56164        type: 'string'
56165      },
56166      iconBackgroundColorValue: {
56167        type: 'string'
56168      },
56169      openInNewTab: {
56170        type: 'boolean',
56171        default: false
56172      },
56173      size: {
56174        type: 'string'
56175      }
56176    },
56177    providesContext: {
56178      openInNewTab: 'openInNewTab'
56179    },
56180    supports: {
56181      align: ['left', 'center', 'right'],
56182      anchor: true
56183    },
56184    migrate: social_links_deprecated_migrateWithLayout,
56185    save: props => {
56186      const {
56187        attributes: {
56188          iconBackgroundColorValue,
56189          iconColorValue,
56190          itemsJustification,
56191          size
56192        }
56193      } = props;
56194      const className = dist_clsx(size, {
56195        'has-icon-color': iconColorValue,
56196        'has-icon-background-color': iconBackgroundColorValue,
56197        [`items-justified-$itemsJustification}`]: itemsJustification
56198      });
56199      const style = {
56200        '--wp--social-links--icon-color': iconColorValue,
56201        '--wp--social-links--icon-background-color': iconBackgroundColorValue
56202      };
56203      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
56204        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
56205          className,
56206          style
56207        }),
56208        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
56209      });
56210    }
56211  }];
56212  /* harmony default export */ const social_links_deprecated = (social_links_deprecated_deprecated);
56213  
56214  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
56215  /**
56216   * WordPress dependencies
56217   */
56218  
56219  
56220  const check = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56221    xmlns: "http://www.w3.org/2000/svg",
56222    viewBox: "0 0 24 24",
56223    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56224      d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
56225    })
56226  });
56227  /* harmony default export */ const library_check = (check);
56228  
56229  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/edit.js
56230  /**
56231   * External dependencies
56232   */
56233  
56234  
56235  /**
56236   * WordPress dependencies
56237   */
56238  
56239  
56240  
56241  
56242  
56243  
56244  
56245  
56246  
56247  const sizeOptions = [{
56248    name: (0,external_wp_i18n_namespaceObject.__)('Small'),
56249    value: 'has-small-icon-size'
56250  }, {
56251    name: (0,external_wp_i18n_namespaceObject.__)('Normal'),
56252    value: 'has-normal-icon-size'
56253  }, {
56254    name: (0,external_wp_i18n_namespaceObject.__)('Large'),
56255    value: 'has-large-icon-size'
56256  }, {
56257    name: (0,external_wp_i18n_namespaceObject.__)('Huge'),
56258    value: 'has-huge-icon-size'
56259  }];
56260  function SocialLinksEdit(props) {
56261    var _attributes$layout$or;
56262    const {
56263      clientId,
56264      attributes,
56265      iconBackgroundColor,
56266      iconColor,
56267      isSelected,
56268      setAttributes,
56269      setIconBackgroundColor,
56270      setIconColor
56271    } = props;
56272    const {
56273      iconBackgroundColorValue,
56274      customIconBackgroundColor,
56275      iconColorValue,
56276      openInNewTab,
56277      showLabels,
56278      size
56279    } = attributes;
56280    const hasSelectedChild = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).hasSelectedInnerBlock(clientId), [clientId]);
56281    const hasAnySelected = isSelected || hasSelectedChild;
56282    const logosOnly = attributes.className?.includes('is-style-logos-only');
56283  
56284    // Remove icon background color when logos only style is selected or
56285    // restore it when any other style is selected.
56286    const backgroundBackupRef = (0,external_wp_element_namespaceObject.useRef)({});
56287    (0,external_wp_element_namespaceObject.useEffect)(() => {
56288      if (logosOnly) {
56289        backgroundBackupRef.current = {
56290          iconBackgroundColor,
56291          iconBackgroundColorValue,
56292          customIconBackgroundColor
56293        };
56294        setAttributes({
56295          iconBackgroundColor: undefined,
56296          customIconBackgroundColor: undefined,
56297          iconBackgroundColorValue: undefined
56298        });
56299      } else {
56300        setAttributes({
56301          ...backgroundBackupRef.current
56302        });
56303      }
56304      // eslint-disable-next-line react-hooks/exhaustive-deps
56305    }, [logosOnly]);
56306    const SocialPlaceholder = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
56307      className: "wp-block-social-links__social-placeholder",
56308      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
56309        className: "wp-block-social-links__social-placeholder-icons",
56310        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
56311          className: "wp-social-link wp-social-link-twitter"
56312        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
56313          className: "wp-social-link wp-social-link-facebook"
56314        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
56315          className: "wp-social-link wp-social-link-instagram"
56316        })]
56317      })
56318    });
56319  
56320    // Fallback color values are used maintain selections in case switching
56321    // themes and named colors in palette do not match.
56322    const className = dist_clsx(size, {
56323      'has-visible-labels': showLabels,
56324      'has-icon-color': iconColor.color || iconColorValue,
56325      'has-icon-background-color': iconBackgroundColor.color || iconBackgroundColorValue
56326    });
56327    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
56328      className
56329    });
56330    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
56331      placeholder: !isSelected && SocialPlaceholder,
56332      templateLock: false,
56333      orientation: (_attributes$layout$or = attributes.layout?.orientation) !== null && _attributes$layout$or !== void 0 ? _attributes$layout$or : 'horizontal',
56334      __experimentalAppenderTagName: 'li',
56335      renderAppender: hasAnySelected && external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
56336    });
56337    const POPOVER_PROPS = {
56338      position: 'bottom right'
56339    };
56340    const colorSettings = [{
56341      // Use custom attribute as fallback to prevent loss of named color selection when
56342      // switching themes to a new theme that does not have a matching named color.
56343      value: iconColor.color || iconColorValue,
56344      onChange: colorValue => {
56345        setIconColor(colorValue);
56346        setAttributes({
56347          iconColorValue: colorValue
56348        });
56349      },
56350      label: (0,external_wp_i18n_namespaceObject.__)('Icon color'),
56351      resetAllFilter: () => {
56352        setIconColor(undefined);
56353        setAttributes({
56354          iconColorValue: undefined
56355        });
56356      }
56357    }];
56358    if (!logosOnly) {
56359      colorSettings.push({
56360        // Use custom attribute as fallback to prevent loss of named color selection when
56361        // switching themes to a new theme that does not have a matching named color.
56362        value: iconBackgroundColor.color || iconBackgroundColorValue,
56363        onChange: colorValue => {
56364          setIconBackgroundColor(colorValue);
56365          setAttributes({
56366            iconBackgroundColorValue: colorValue
56367          });
56368        },
56369        label: (0,external_wp_i18n_namespaceObject.__)('Icon background'),
56370        resetAllFilter: () => {
56371          setIconBackgroundColor(undefined);
56372          setAttributes({
56373            iconBackgroundColorValue: undefined
56374          });
56375        }
56376      });
56377    }
56378    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
56379    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
56380      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
56381        group: "other",
56382        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
56383          label: (0,external_wp_i18n_namespaceObject.__)('Size'),
56384          text: (0,external_wp_i18n_namespaceObject.__)('Size'),
56385          icon: null,
56386          popoverProps: POPOVER_PROPS,
56387          children: ({
56388            onClose
56389          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
56390            children: sizeOptions.map(entry => {
56391              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
56392                icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && library_check,
56393                isSelected: size === entry.value,
56394                onClick: () => {
56395                  setAttributes({
56396                    size: entry.value
56397                  });
56398                },
56399                onClose: onClose,
56400                role: "menuitemradio",
56401                children: entry.name
56402              }, entry.value);
56403            })
56404          })
56405        })
56406      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
56407        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
56408          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
56409          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
56410            __nextHasNoMarginBottom: true,
56411            label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
56412            checked: openInNewTab,
56413            onChange: () => setAttributes({
56414              openInNewTab: !openInNewTab
56415            })
56416          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
56417            __nextHasNoMarginBottom: true,
56418            label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
56419            checked: showLabels,
56420            onChange: () => setAttributes({
56421              showLabels: !showLabels
56422            })
56423          })]
56424        })
56425      }), colorGradientSettings.hasColorsOrGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
56426        group: "color",
56427        children: [colorSettings.map(({
56428          onChange,
56429          label,
56430          value,
56431          resetAllFilter
56432        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
56433          __experimentalIsRenderedInSidebar: true,
56434          settings: [{
56435            colorValue: value,
56436            label,
56437            onColorChange: onChange,
56438            isShownByDefault: true,
56439            resetAllFilter,
56440            enableAlpha: true
56441          }],
56442          panelId: clientId,
56443          ...colorGradientSettings
56444        }, `social-links-color-$label}`)), !logosOnly && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
56445          textColor: iconColorValue,
56446          backgroundColor: iconBackgroundColorValue,
56447          isLargeText: false
56448        })]
56449      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
56450        ...innerBlocksProps
56451      })]
56452    });
56453  }
56454  const iconColorAttributes = {
56455    iconColor: 'icon-color',
56456    iconBackgroundColor: 'icon-background-color'
56457  };
56458  /* harmony default export */ const social_links_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)(iconColorAttributes)(SocialLinksEdit));
56459  
56460  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/save.js
56461  /**
56462   * External dependencies
56463   */
56464  
56465  
56466  /**
56467   * WordPress dependencies
56468   */
56469  
56470  
56471  function social_links_save_save(props) {
56472    const {
56473      attributes: {
56474        iconBackgroundColorValue,
56475        iconColorValue,
56476        showLabels,
56477        size
56478      }
56479    } = props;
56480    const className = dist_clsx(size, {
56481      'has-visible-labels': showLabels,
56482      'has-icon-color': iconColorValue,
56483      'has-icon-background-color': iconBackgroundColorValue
56484    });
56485    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
56486      className
56487    });
56488    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
56489    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
56490      ...innerBlocksProps
56491    });
56492  }
56493  
56494  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
56495  /**
56496   * WordPress dependencies
56497   */
56498  
56499  
56500  /**
56501   * Internal dependencies
56502   */
56503  
56504  
56505  
56506  const social_links_metadata = {
56507    $schema: "https://schemas.wp.org/trunk/block.json",
56508    apiVersion: 3,
56509    name: "core/social-links",
56510    title: "Social Icons",
56511    category: "widgets",
56512    allowedBlocks: ["core/social-link"],
56513    description: "Display icons linking to your social profiles or sites.",
56514    keywords: ["links"],
56515    textdomain: "default",
56516    attributes: {
56517      iconColor: {
56518        type: "string"
56519      },
56520      customIconColor: {
56521        type: "string"
56522      },
56523      iconColorValue: {
56524        type: "string"
56525      },
56526      iconBackgroundColor: {
56527        type: "string"
56528      },
56529      customIconBackgroundColor: {
56530        type: "string"
56531      },
56532      iconBackgroundColorValue: {
56533        type: "string"
56534      },
56535      openInNewTab: {
56536        type: "boolean",
56537        "default": false
56538      },
56539      showLabels: {
56540        type: "boolean",
56541        "default": false
56542      },
56543      size: {
56544        type: "string"
56545      }
56546    },
56547    providesContext: {
56548      openInNewTab: "openInNewTab",
56549      showLabels: "showLabels",
56550      iconColor: "iconColor",
56551      iconColorValue: "iconColorValue",
56552      iconBackgroundColor: "iconBackgroundColor",
56553      iconBackgroundColorValue: "iconBackgroundColorValue"
56554    },
56555    supports: {
56556      align: ["left", "center", "right"],
56557      anchor: true,
56558      __experimentalExposeControlsToChildren: true,
56559      layout: {
56560        allowSwitching: false,
56561        allowInheriting: false,
56562        allowVerticalAlignment: false,
56563        "default": {
56564          type: "flex"
56565        }
56566      },
56567      color: {
56568        enableContrastChecker: false,
56569        background: true,
56570        gradients: true,
56571        text: false,
56572        __experimentalDefaultControls: {
56573          background: false
56574        }
56575      },
56576      spacing: {
56577        blockGap: ["horizontal", "vertical"],
56578        margin: true,
56579        padding: true,
56580        units: ["px", "em", "rem", "vh", "vw"],
56581        __experimentalDefaultControls: {
56582          blockGap: true,
56583          margin: true,
56584          padding: false
56585        }
56586      },
56587      interactivity: {
56588        clientNavigation: true
56589      },
56590      __experimentalBorder: {
56591        radius: true,
56592        color: true,
56593        width: true,
56594        style: true,
56595        __experimentalDefaultControls: {
56596          radius: true,
56597          color: true,
56598          width: true,
56599          style: true
56600        }
56601      }
56602    },
56603    styles: [{
56604      name: "default",
56605      label: "Default",
56606      isDefault: true
56607    }, {
56608      name: "logos-only",
56609      label: "Logos Only"
56610    }, {
56611      name: "pill-shape",
56612      label: "Pill Shape"
56613    }],
56614    editorStyle: "wp-block-social-links-editor",
56615    style: "wp-block-social-links"
56616  };
56617  
56618  const {
56619    name: social_links_name
56620  } = social_links_metadata;
56621  
56622  const social_links_settings = {
56623    example: {
56624      innerBlocks: [{
56625        name: 'core/social-link',
56626        attributes: {
56627          service: 'wordpress',
56628          url: 'https://wordpress.org'
56629        }
56630      }, {
56631        name: 'core/social-link',
56632        attributes: {
56633          service: 'facebook',
56634          url: 'https://www.facebook.com/WordPress/'
56635        }
56636      }, {
56637        name: 'core/social-link',
56638        attributes: {
56639          service: 'twitter',
56640          url: 'https://twitter.com/WordPress'
56641        }
56642      }]
56643    },
56644    icon: library_share,
56645    edit: social_links_edit,
56646    save: social_links_save_save,
56647    deprecated: social_links_deprecated
56648  };
56649  const social_links_init = () => initBlock({
56650    name: social_links_name,
56651    metadata: social_links_metadata,
56652    settings: social_links_settings
56653  });
56654  
56655  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js
56656  /**
56657   * WordPress dependencies
56658   */
56659  
56660  
56661  const resizeCornerNE = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56662    viewBox: "0 0 24 24",
56663    xmlns: "http://www.w3.org/2000/svg",
56664    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56665      d: "M7 18h4.5v1.5h-7v-7H6V17L17 6h-4.5V4.5h7v7H18V7L7 18Z"
56666    })
56667  });
56668  /* harmony default export */ const resize_corner_n_e = (resizeCornerNE);
56669  
56670  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/deprecated.js
56671  /**
56672   * WordPress dependencies
56673   */
56674  
56675  
56676  const spacer_deprecated_deprecated = [{
56677    attributes: {
56678      height: {
56679        type: 'number',
56680        default: 100
56681      },
56682      width: {
56683        type: 'number'
56684      }
56685    },
56686    migrate(attributes) {
56687      const {
56688        height,
56689        width
56690      } = attributes;
56691      return {
56692        ...attributes,
56693        width: width !== undefined ? `$width}px` : undefined,
56694        height: height !== undefined ? `$height}px` : undefined
56695      };
56696    },
56697    save({
56698      attributes
56699    }) {
56700      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
56701        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
56702          style: {
56703            height: attributes.height,
56704            width: attributes.width
56705          },
56706          'aria-hidden': true
56707        })
56708      });
56709    }
56710  }];
56711  /* harmony default export */ const spacer_deprecated = (spacer_deprecated_deprecated);
56712  
56713  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/constants.js
56714  const MIN_SPACER_SIZE = 0;
56715  
56716  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/controls.js
56717  /**
56718   * WordPress dependencies
56719   */
56720  
56721  
56722  
56723  
56724  
56725  
56726  /**
56727   * Internal dependencies
56728   */
56729  
56730  
56731  
56732  
56733  
56734  const {
56735    useSpacingSizes
56736  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
56737  function DimensionInput({
56738    label,
56739    onChange,
56740    isResizing,
56741    value = ''
56742  }) {
56743    const inputId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl, 'block-spacer-height-input');
56744    const spacingSizes = useSpacingSizes();
56745    const [spacingUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
56746    // In most contexts the spacer size cannot meaningfully be set to a
56747    // percentage, since this is relative to the parent container. This
56748    // unit is disabled from the UI.
56749    const availableUnits = spacingUnits ? spacingUnits.filter(unit => unit !== '%') : ['px', 'em', 'rem', 'vw', 'vh'];
56750    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
56751      availableUnits,
56752      defaultValues: {
56753        px: 100,
56754        em: 10,
56755        rem: 10,
56756        vw: 10,
56757        vh: 25
56758      }
56759    });
56760    const handleOnChange = unprocessedValue => {
56761      onChange(unprocessedValue.all);
56762    };
56763  
56764    // Force the unit to update to `px` when the Spacer is being resized.
56765    const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
56766    const computedValue = (0,external_wp_blockEditor_namespaceObject.isValueSpacingPreset)(value) ? value : [parsedQuantity, isResizing ? 'px' : parsedUnit].join('');
56767    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
56768      children: [(!spacingSizes || spacingSizes?.length === 0) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
56769        id: inputId,
56770        isResetValueOnUnitChange: true,
56771        min: MIN_SPACER_SIZE,
56772        onChange: handleOnChange,
56773        value: computedValue,
56774        units: units,
56775        label: label,
56776        __next40pxDefaultSize: true
56777      }), spacingSizes?.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
56778        className: "tools-panel-item-spacing",
56779        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalSpacingSizesControl, {
56780          values: {
56781            all: computedValue
56782          },
56783          onChange: handleOnChange,
56784          label: label,
56785          sides: ['all'],
56786          units: units,
56787          allowReset: false,
56788          splitOnAxis: false,
56789          showSideInLabel: false
56790        })
56791      })]
56792    });
56793  }
56794  function SpacerControls({
56795    setAttributes,
56796    orientation,
56797    height,
56798    width,
56799    isResizing
56800  }) {
56801    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
56802      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
56803        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
56804        children: [orientation === 'horizontal' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionInput, {
56805          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
56806          value: width,
56807          onChange: nextWidth => setAttributes({
56808            width: nextWidth
56809          }),
56810          isResizing: isResizing
56811        }), orientation !== 'horizontal' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionInput, {
56812          label: (0,external_wp_i18n_namespaceObject.__)('Height'),
56813          value: height,
56814          onChange: nextHeight => setAttributes({
56815            height: nextHeight
56816          }),
56817          isResizing: isResizing
56818        })]
56819      })
56820    });
56821  }
56822  
56823  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/edit.js
56824  /**
56825   * External dependencies
56826   */
56827  
56828  
56829  /**
56830   * WordPress dependencies
56831   */
56832  
56833  
56834  
56835  
56836  
56837  
56838  /**
56839   * Internal dependencies
56840   */
56841  
56842  
56843  
56844  
56845  
56846  
56847  const {
56848    useSpacingSizes: edit_useSpacingSizes
56849  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
56850  const ResizableSpacer = ({
56851    orientation,
56852    onResizeStart,
56853    onResize,
56854    onResizeStop,
56855    isSelected,
56856    isResizing,
56857    setIsResizing,
56858    ...props
56859  }) => {
56860    const getCurrentSize = elt => {
56861      return orientation === 'horizontal' ? elt.clientWidth : elt.clientHeight;
56862    };
56863    const getNextVal = elt => {
56864      return `$getCurrentSize(elt)}px`;
56865    };
56866    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
56867      className: dist_clsx('block-library-spacer__resize-container', {
56868        'resize-horizontal': orientation === 'horizontal',
56869        'is-resizing': isResizing,
56870        'is-selected': isSelected
56871      }),
56872      onResizeStart: (_event, _direction, elt) => {
56873        const nextVal = getNextVal(elt);
56874        onResizeStart(nextVal);
56875        onResize(nextVal);
56876      },
56877      onResize: (_event, _direction, elt) => {
56878        onResize(getNextVal(elt));
56879        if (!isResizing) {
56880          setIsResizing(true);
56881        }
56882      },
56883      onResizeStop: (_event, _direction, elt) => {
56884        const nextVal = getCurrentSize(elt);
56885        onResizeStop(`$nextVal}px`);
56886        setIsResizing(false);
56887      },
56888      __experimentalShowTooltip: true,
56889      __experimentalTooltipProps: {
56890        axis: orientation === 'horizontal' ? 'x' : 'y',
56891        position: 'corner',
56892        isVisible: isResizing
56893      },
56894      showHandle: isSelected,
56895      ...props
56896    });
56897  };
56898  const SpacerEdit = ({
56899    attributes,
56900    isSelected,
56901    setAttributes,
56902    toggleSelection,
56903    context,
56904    __unstableParentLayout: parentLayout,
56905    className
56906  }) => {
56907    const disableCustomSpacingSizes = (0,external_wp_data_namespaceObject.useSelect)(select => {
56908      const editorSettings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
56909      return editorSettings?.disableCustomSpacingSizes;
56910    });
56911    const {
56912      orientation
56913    } = context;
56914    const {
56915      orientation: parentOrientation,
56916      type,
56917      default: {
56918        type: defaultType
56919      } = {}
56920    } = parentLayout || {};
56921    // Check if the spacer is inside a flex container.
56922    const isFlexLayout = type === 'flex' || !type && defaultType === 'flex';
56923    // If the spacer is inside a flex container, it should either inherit the orientation
56924    // of the parent or use the flex default orientation.
56925    const inheritedOrientation = !parentOrientation && isFlexLayout ? 'horizontal' : parentOrientation || orientation;
56926    const {
56927      height,
56928      width,
56929      style: blockStyle = {}
56930    } = attributes;
56931    const {
56932      layout = {}
56933    } = blockStyle;
56934    const {
56935      selfStretch,
56936      flexSize
56937    } = layout;
56938    const spacingSizes = edit_useSpacingSizes();
56939    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
56940    const [temporaryHeight, setTemporaryHeight] = (0,external_wp_element_namespaceObject.useState)(null);
56941    const [temporaryWidth, setTemporaryWidth] = (0,external_wp_element_namespaceObject.useState)(null);
56942    const onResizeStart = () => toggleSelection(false);
56943    const onResizeStop = () => toggleSelection(true);
56944    const handleOnVerticalResizeStop = newHeight => {
56945      onResizeStop();
56946      if (isFlexLayout) {
56947        setAttributes({
56948          style: {
56949            ...blockStyle,
56950            layout: {
56951              ...layout,
56952              flexSize: newHeight,
56953              selfStretch: 'fixed'
56954            }
56955          }
56956        });
56957      }
56958      setAttributes({
56959        height: newHeight
56960      });
56961      setTemporaryHeight(null);
56962    };
56963    const handleOnHorizontalResizeStop = newWidth => {
56964      onResizeStop();
56965      if (isFlexLayout) {
56966        setAttributes({
56967          style: {
56968            ...blockStyle,
56969            layout: {
56970              ...layout,
56971              flexSize: newWidth,
56972              selfStretch: 'fixed'
56973            }
56974          }
56975        });
56976      }
56977      setAttributes({
56978        width: newWidth
56979      });
56980      setTemporaryWidth(null);
56981    };
56982    const getHeightForVerticalBlocks = () => {
56983      if (isFlexLayout) {
56984        return undefined;
56985      }
56986      return temporaryHeight || (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(height) || undefined;
56987    };
56988    const getWidthForHorizontalBlocks = () => {
56989      if (isFlexLayout) {
56990        return undefined;
56991      }
56992      return temporaryWidth || (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(width) || undefined;
56993    };
56994    const sizeConditionalOnOrientation = inheritedOrientation === 'horizontal' ? temporaryWidth || flexSize : temporaryHeight || flexSize;
56995    const style = {
56996      height: inheritedOrientation === 'horizontal' ? 24 : getHeightForVerticalBlocks(),
56997      width: inheritedOrientation === 'horizontal' ? getWidthForHorizontalBlocks() : undefined,
56998      // In vertical flex containers, the spacer shrinks to nothing without a minimum width.
56999      minWidth: inheritedOrientation === 'vertical' && isFlexLayout ? 48 : undefined,
57000      // Add flex-basis so temporary sizes are respected.
57001      flexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,
57002      // Remove flex-grow when resizing.
57003      flexGrow: isFlexLayout && isResizing ? 0 : undefined
57004    };
57005    const resizableBoxWithOrientation = blockOrientation => {
57006      if (blockOrientation === 'horizontal') {
57007        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableSpacer, {
57008          minWidth: MIN_SPACER_SIZE,
57009          enable: {
57010            top: false,
57011            right: true,
57012            bottom: false,
57013            left: false,
57014            topRight: false,
57015            bottomRight: false,
57016            bottomLeft: false,
57017            topLeft: false
57018          },
57019          orientation: blockOrientation,
57020          onResizeStart: onResizeStart,
57021          onResize: setTemporaryWidth,
57022          onResizeStop: handleOnHorizontalResizeStop,
57023          isSelected: isSelected,
57024          isResizing: isResizing,
57025          setIsResizing: setIsResizing
57026        });
57027      }
57028      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
57029        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableSpacer, {
57030          minHeight: MIN_SPACER_SIZE,
57031          enable: {
57032            top: false,
57033            right: false,
57034            bottom: true,
57035            left: false,
57036            topRight: false,
57037            bottomRight: false,
57038            bottomLeft: false,
57039            topLeft: false
57040          },
57041          orientation: blockOrientation,
57042          onResizeStart: onResizeStart,
57043          onResize: setTemporaryHeight,
57044          onResizeStop: handleOnVerticalResizeStop,
57045          isSelected: isSelected,
57046          isResizing: isResizing,
57047          setIsResizing: setIsResizing
57048        })
57049      });
57050    };
57051    (0,external_wp_element_namespaceObject.useEffect)(() => {
57052      if (isFlexLayout && selfStretch !== 'fill' && selfStretch !== 'fit' && !flexSize) {
57053        if (inheritedOrientation === 'horizontal') {
57054          // If spacer is moving from a vertical container to a horizontal container,
57055          // it might not have width but have height instead.
57056          const newSize = (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(width, spacingSizes) || (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(height, spacingSizes) || '100px';
57057          setAttributes({
57058            width: '0px',
57059            style: {
57060              ...blockStyle,
57061              layout: {
57062                ...layout,
57063                flexSize: newSize,
57064                selfStretch: 'fixed'
57065              }
57066            }
57067          });
57068        } else {
57069          const newSize = (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(height, spacingSizes) || (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(width, spacingSizes) || '100px';
57070          setAttributes({
57071            height: '0px',
57072            style: {
57073              ...blockStyle,
57074              layout: {
57075                ...layout,
57076                flexSize: newSize,
57077                selfStretch: 'fixed'
57078              }
57079            }
57080          });
57081        }
57082      } else if (isFlexLayout && (selfStretch === 'fill' || selfStretch === 'fit')) {
57083        if (inheritedOrientation === 'horizontal') {
57084          setAttributes({
57085            width: undefined
57086          });
57087        } else {
57088          setAttributes({
57089            height: undefined
57090          });
57091        }
57092      } else if (!isFlexLayout && (selfStretch || flexSize)) {
57093        if (inheritedOrientation === 'horizontal') {
57094          setAttributes({
57095            width: flexSize
57096          });
57097        } else {
57098          setAttributes({
57099            height: flexSize
57100          });
57101        }
57102        setAttributes({
57103          style: {
57104            ...blockStyle,
57105            layout: {
57106              ...layout,
57107              flexSize: undefined,
57108              selfStretch: undefined
57109            }
57110          }
57111        });
57112      }
57113    }, [blockStyle, flexSize, height, inheritedOrientation, isFlexLayout, layout, selfStretch, setAttributes, spacingSizes, width]);
57114    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
57115      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
57116        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
57117          style,
57118          className: dist_clsx(className, {
57119            'custom-sizes-disabled': disableCustomSpacingSizes
57120          })
57121        }),
57122        children: resizableBoxWithOrientation(inheritedOrientation)
57123      }), !isFlexLayout && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SpacerControls, {
57124        setAttributes: setAttributes,
57125        height: temporaryHeight || height,
57126        width: temporaryWidth || width,
57127        orientation: inheritedOrientation,
57128        isResizing: isResizing
57129      })]
57130    });
57131  };
57132  /* harmony default export */ const spacer_edit = (SpacerEdit);
57133  
57134  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/save.js
57135  /**
57136   * WordPress dependencies
57137   */
57138  
57139  
57140  function spacer_save_save({
57141    attributes
57142  }) {
57143    const {
57144      height,
57145      width,
57146      style
57147    } = attributes;
57148    const {
57149      layout: {
57150        selfStretch
57151      } = {}
57152    } = style || {};
57153    // If selfStretch is set to 'fill' or 'fit', don't set default height.
57154    const finalHeight = selfStretch === 'fill' || selfStretch === 'fit' ? undefined : height;
57155    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
57156      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
57157        style: {
57158          height: (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(finalHeight),
57159          width: (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(width)
57160        },
57161        'aria-hidden': true
57162      })
57163    });
57164  }
57165  
57166  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
57167  /**
57168   * WordPress dependencies
57169   */
57170  
57171  
57172  /**
57173   * Internal dependencies
57174   */
57175  
57176  
57177  
57178  const spacer_metadata = {
57179    $schema: "https://schemas.wp.org/trunk/block.json",
57180    apiVersion: 3,
57181    name: "core/spacer",
57182    title: "Spacer",
57183    category: "design",
57184    description: "Add white space between blocks and customize its height.",
57185    textdomain: "default",
57186    attributes: {
57187      height: {
57188        type: "string",
57189        "default": "100px"
57190      },
57191      width: {
57192        type: "string"
57193      }
57194    },
57195    usesContext: ["orientation"],
57196    supports: {
57197      anchor: true,
57198      spacing: {
57199        margin: ["top", "bottom"],
57200        __experimentalDefaultControls: {
57201          margin: true
57202        }
57203      },
57204      interactivity: {
57205        clientNavigation: true
57206      }
57207    },
57208    editorStyle: "wp-block-spacer-editor",
57209    style: "wp-block-spacer"
57210  };
57211  
57212  const {
57213    name: spacer_name
57214  } = spacer_metadata;
57215  
57216  const spacer_settings = {
57217    icon: resize_corner_n_e,
57218    edit: spacer_edit,
57219    save: spacer_save_save,
57220    deprecated: spacer_deprecated
57221  };
57222  const spacer_init = () => initBlock({
57223    name: spacer_name,
57224    metadata: spacer_metadata,
57225    settings: spacer_settings
57226  });
57227  
57228  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-table.js
57229  /**
57230   * WordPress dependencies
57231   */
57232  
57233  
57234  const blockTable = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57235    viewBox: "0 0 24 24",
57236    xmlns: "http://www.w3.org/2000/svg",
57237    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57238      d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z"
57239    })
57240  });
57241  /* harmony default export */ const block_table = (blockTable);
57242  
57243  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/deprecated.js
57244  /**
57245   * External dependencies
57246   */
57247  
57248  
57249  /**
57250   * WordPress dependencies
57251   */
57252  
57253  
57254  // As the previous arbitrary colors won't match theme color palettes, the hex
57255  // value will be mapped to the style.color.background attribute as if it was
57256  // a custom color selection.
57257  
57258  
57259  const oldColors = {
57260    'subtle-light-gray': '#f3f4f5',
57261    'subtle-pale-green': '#e9fbe5',
57262    'subtle-pale-blue': '#e7f5fe',
57263    'subtle-pale-pink': '#fcf0ef'
57264  };
57265  
57266  // Fixed width table cells on by default.
57267  const v4Query = {
57268    content: {
57269      type: 'rich-text',
57270      source: 'rich-text'
57271    },
57272    tag: {
57273      type: 'string',
57274      default: 'td',
57275      source: 'tag'
57276    },
57277    scope: {
57278      type: 'string',
57279      source: 'attribute',
57280      attribute: 'scope'
57281    },
57282    align: {
57283      type: 'string',
57284      source: 'attribute',
57285      attribute: 'data-align'
57286    },
57287    colspan: {
57288      type: 'string',
57289      source: 'attribute',
57290      attribute: 'colspan'
57291    },
57292    rowspan: {
57293      type: 'string',
57294      source: 'attribute',
57295      attribute: 'rowspan'
57296    }
57297  };
57298  const table_deprecated_v4 = {
57299    attributes: {
57300      hasFixedLayout: {
57301        type: 'boolean',
57302        default: false
57303      },
57304      caption: {
57305        type: 'rich-text',
57306        source: 'rich-text',
57307        selector: 'figcaption'
57308      },
57309      head: {
57310        type: 'array',
57311        default: [],
57312        source: 'query',
57313        selector: 'thead tr',
57314        query: {
57315          cells: {
57316            type: 'array',
57317            default: [],
57318            source: 'query',
57319            selector: 'td,th',
57320            query: v4Query
57321          }
57322        }
57323      },
57324      body: {
57325        type: 'array',
57326        default: [],
57327        source: 'query',
57328        selector: 'tbody tr',
57329        query: {
57330          cells: {
57331            type: 'array',
57332            default: [],
57333            source: 'query',
57334            selector: 'td,th',
57335            query: v4Query
57336          }
57337        }
57338      },
57339      foot: {
57340        type: 'array',
57341        default: [],
57342        source: 'query',
57343        selector: 'tfoot tr',
57344        query: {
57345          cells: {
57346            type: 'array',
57347            default: [],
57348            source: 'query',
57349            selector: 'td,th',
57350            query: v4Query
57351          }
57352        }
57353      }
57354    },
57355    supports: {
57356      anchor: true,
57357      align: true,
57358      color: {
57359        __experimentalSkipSerialization: true,
57360        gradients: true,
57361        __experimentalDefaultControls: {
57362          background: true,
57363          text: true
57364        }
57365      },
57366      spacing: {
57367        margin: true,
57368        padding: true,
57369        __experimentalDefaultControls: {
57370          margin: false,
57371          padding: false
57372        }
57373      },
57374      typography: {
57375        fontSize: true,
57376        lineHeight: true,
57377        __experimentalFontFamily: true,
57378        __experimentalFontStyle: true,
57379        __experimentalFontWeight: true,
57380        __experimentalLetterSpacing: true,
57381        __experimentalTextTransform: true,
57382        __experimentalTextDecoration: true,
57383        __experimentalDefaultControls: {
57384          fontSize: true
57385        }
57386      },
57387      __experimentalBorder: {
57388        __experimentalSkipSerialization: true,
57389        color: true,
57390        style: true,
57391        width: true,
57392        __experimentalDefaultControls: {
57393          color: true,
57394          style: true,
57395          width: true
57396        }
57397      },
57398      __experimentalSelector: '.wp-block-table > table',
57399      interactivity: {
57400        clientNavigation: true
57401      }
57402    },
57403    save({
57404      attributes
57405    }) {
57406      const {
57407        hasFixedLayout,
57408        head,
57409        body,
57410        foot,
57411        caption
57412      } = attributes;
57413      const isEmpty = !head.length && !body.length && !foot.length;
57414      if (isEmpty) {
57415        return null;
57416      }
57417      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
57418      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
57419      const classes = dist_clsx(colorProps.className, borderProps.className, {
57420        'has-fixed-layout': hasFixedLayout
57421      });
57422      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
57423      const Section = ({
57424        type,
57425        rows
57426      }) => {
57427        if (!rows.length) {
57428          return null;
57429        }
57430        const Tag = `t$type}`;
57431        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
57432          children: rows.map(({
57433            cells
57434          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
57435            children: cells.map(({
57436              content,
57437              tag,
57438              scope,
57439              align,
57440              colspan,
57441              rowspan
57442            }, cellIndex) => {
57443              const cellClasses = dist_clsx({
57444                [`has-text-align-$align}`]: align
57445              });
57446              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57447                className: cellClasses ? cellClasses : undefined,
57448                "data-align": align,
57449                tagName: tag,
57450                value: content,
57451                scope: tag === 'th' ? scope : undefined,
57452                colSpan: colspan,
57453                rowSpan: rowspan
57454              }, cellIndex);
57455            })
57456          }, rowIndex))
57457        });
57458      };
57459      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
57460        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
57461        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
57462          className: classes === '' ? undefined : classes,
57463          style: {
57464            ...colorProps.style,
57465            ...borderProps.style
57466          },
57467          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57468            type: "head",
57469            rows: head
57470          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57471            type: "body",
57472            rows: body
57473          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57474            type: "foot",
57475            rows: foot
57476          })]
57477        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57478          tagName: "figcaption",
57479          value: caption,
57480          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
57481        })]
57482      });
57483    }
57484  };
57485  
57486  // In #41140 support was added to global styles for caption elements which
57487  // added a `wp-element-caption` classname to the embed figcaption element.
57488  const v3Query = {
57489    content: {
57490      type: 'string',
57491      source: 'html'
57492    },
57493    tag: {
57494      type: 'string',
57495      default: 'td',
57496      source: 'tag'
57497    },
57498    scope: {
57499      type: 'string',
57500      source: 'attribute',
57501      attribute: 'scope'
57502    },
57503    align: {
57504      type: 'string',
57505      source: 'attribute',
57506      attribute: 'data-align'
57507    }
57508  };
57509  const table_deprecated_v3 = {
57510    attributes: {
57511      hasFixedLayout: {
57512        type: 'boolean',
57513        default: false
57514      },
57515      caption: {
57516        type: 'string',
57517        source: 'html',
57518        selector: 'figcaption',
57519        default: ''
57520      },
57521      head: {
57522        type: 'array',
57523        default: [],
57524        source: 'query',
57525        selector: 'thead tr',
57526        query: {
57527          cells: {
57528            type: 'array',
57529            default: [],
57530            source: 'query',
57531            selector: 'td,th',
57532            query: v3Query
57533          }
57534        }
57535      },
57536      body: {
57537        type: 'array',
57538        default: [],
57539        source: 'query',
57540        selector: 'tbody tr',
57541        query: {
57542          cells: {
57543            type: 'array',
57544            default: [],
57545            source: 'query',
57546            selector: 'td,th',
57547            query: v3Query
57548          }
57549        }
57550      },
57551      foot: {
57552        type: 'array',
57553        default: [],
57554        source: 'query',
57555        selector: 'tfoot tr',
57556        query: {
57557          cells: {
57558            type: 'array',
57559            default: [],
57560            source: 'query',
57561            selector: 'td,th',
57562            query: v3Query
57563          }
57564        }
57565      }
57566    },
57567    supports: {
57568      anchor: true,
57569      align: true,
57570      color: {
57571        __experimentalSkipSerialization: true,
57572        gradients: true,
57573        __experimentalDefaultControls: {
57574          background: true,
57575          text: true
57576        }
57577      },
57578      spacing: {
57579        margin: true,
57580        padding: true
57581      },
57582      typography: {
57583        fontSize: true,
57584        lineHeight: true,
57585        __experimentalFontFamily: true,
57586        __experimentalFontStyle: true,
57587        __experimentalFontWeight: true,
57588        __experimentalLetterSpacing: true,
57589        __experimentalTextTransform: true,
57590        __experimentalTextDecoration: true,
57591        __experimentalDefaultControls: {
57592          fontSize: true
57593        }
57594      },
57595      __experimentalBorder: {
57596        __experimentalSkipSerialization: true,
57597        color: true,
57598        style: true,
57599        width: true,
57600        __experimentalDefaultControls: {
57601          color: true,
57602          style: true,
57603          width: true
57604        }
57605      },
57606      __experimentalSelector: '.wp-block-table > table'
57607    },
57608    save({
57609      attributes
57610    }) {
57611      const {
57612        hasFixedLayout,
57613        head,
57614        body,
57615        foot,
57616        caption
57617      } = attributes;
57618      const isEmpty = !head.length && !body.length && !foot.length;
57619      if (isEmpty) {
57620        return null;
57621      }
57622      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
57623      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
57624      const classes = dist_clsx(colorProps.className, borderProps.className, {
57625        'has-fixed-layout': hasFixedLayout
57626      });
57627      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
57628      const Section = ({
57629        type,
57630        rows
57631      }) => {
57632        if (!rows.length) {
57633          return null;
57634        }
57635        const Tag = `t$type}`;
57636        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
57637          children: rows.map(({
57638            cells
57639          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
57640            children: cells.map(({
57641              content,
57642              tag,
57643              scope,
57644              align
57645            }, cellIndex) => {
57646              const cellClasses = dist_clsx({
57647                [`has-text-align-$align}`]: align
57648              });
57649              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57650                className: cellClasses ? cellClasses : undefined,
57651                "data-align": align,
57652                tagName: tag,
57653                value: content,
57654                scope: tag === 'th' ? scope : undefined
57655              }, cellIndex);
57656            })
57657          }, rowIndex))
57658        });
57659      };
57660      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
57661        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
57662        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
57663          className: classes === '' ? undefined : classes,
57664          style: {
57665            ...colorProps.style,
57666            ...borderProps.style
57667          },
57668          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57669            type: "head",
57670            rows: head
57671          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57672            type: "body",
57673            rows: body
57674          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57675            type: "foot",
57676            rows: foot
57677          })]
57678        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57679          tagName: "figcaption",
57680          value: caption
57681        })]
57682      });
57683    }
57684  };
57685  
57686  // Deprecation migrating table block to use colors block support feature.
57687  const v2Query = {
57688    content: {
57689      type: 'string',
57690      source: 'html'
57691    },
57692    tag: {
57693      type: 'string',
57694      default: 'td',
57695      source: 'tag'
57696    },
57697    scope: {
57698      type: 'string',
57699      source: 'attribute',
57700      attribute: 'scope'
57701    },
57702    align: {
57703      type: 'string',
57704      source: 'attribute',
57705      attribute: 'data-align'
57706    }
57707  };
57708  const table_deprecated_v2 = {
57709    attributes: {
57710      hasFixedLayout: {
57711        type: 'boolean',
57712        default: false
57713      },
57714      backgroundColor: {
57715        type: 'string'
57716      },
57717      caption: {
57718        type: 'string',
57719        source: 'html',
57720        selector: 'figcaption',
57721        default: ''
57722      },
57723      head: {
57724        type: 'array',
57725        default: [],
57726        source: 'query',
57727        selector: 'thead tr',
57728        query: {
57729          cells: {
57730            type: 'array',
57731            default: [],
57732            source: 'query',
57733            selector: 'td,th',
57734            query: v2Query
57735          }
57736        }
57737      },
57738      body: {
57739        type: 'array',
57740        default: [],
57741        source: 'query',
57742        selector: 'tbody tr',
57743        query: {
57744          cells: {
57745            type: 'array',
57746            default: [],
57747            source: 'query',
57748            selector: 'td,th',
57749            query: v2Query
57750          }
57751        }
57752      },
57753      foot: {
57754        type: 'array',
57755        default: [],
57756        source: 'query',
57757        selector: 'tfoot tr',
57758        query: {
57759          cells: {
57760            type: 'array',
57761            default: [],
57762            source: 'query',
57763            selector: 'td,th',
57764            query: v2Query
57765          }
57766        }
57767      }
57768    },
57769    supports: {
57770      anchor: true,
57771      align: true,
57772      __experimentalSelector: '.wp-block-table > table'
57773    },
57774    save: ({
57775      attributes
57776    }) => {
57777      const {
57778        hasFixedLayout,
57779        head,
57780        body,
57781        foot,
57782        backgroundColor,
57783        caption
57784      } = attributes;
57785      const isEmpty = !head.length && !body.length && !foot.length;
57786      if (isEmpty) {
57787        return null;
57788      }
57789      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
57790      const classes = dist_clsx(backgroundClass, {
57791        'has-fixed-layout': hasFixedLayout,
57792        'has-background': !!backgroundClass
57793      });
57794      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
57795      const Section = ({
57796        type,
57797        rows
57798      }) => {
57799        if (!rows.length) {
57800          return null;
57801        }
57802        const Tag = `t$type}`;
57803        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
57804          children: rows.map(({
57805            cells
57806          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
57807            children: cells.map(({
57808              content,
57809              tag,
57810              scope,
57811              align
57812            }, cellIndex) => {
57813              const cellClasses = dist_clsx({
57814                [`has-text-align-$align}`]: align
57815              });
57816              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57817                className: cellClasses ? cellClasses : undefined,
57818                "data-align": align,
57819                tagName: tag,
57820                value: content,
57821                scope: tag === 'th' ? scope : undefined
57822              }, cellIndex);
57823            })
57824          }, rowIndex))
57825        });
57826      };
57827      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
57828        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
57829        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
57830          className: classes === '' ? undefined : classes,
57831          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57832            type: "head",
57833            rows: head
57834          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57835            type: "body",
57836            rows: body
57837          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57838            type: "foot",
57839            rows: foot
57840          })]
57841        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57842          tagName: "figcaption",
57843          value: caption
57844        })]
57845      });
57846    },
57847    isEligible: attributes => {
57848      return attributes.backgroundColor && attributes.backgroundColor in oldColors && !attributes.style;
57849    },
57850    // This version is the first to introduce the style attribute to the
57851    // table block. As a result, we'll explicitly override that.
57852    migrate: attributes => {
57853      return {
57854        ...attributes,
57855        backgroundColor: undefined,
57856        style: {
57857          color: {
57858            background: oldColors[attributes.backgroundColor]
57859          }
57860        }
57861      };
57862    }
57863  };
57864  const v1Query = {
57865    content: {
57866      type: 'string',
57867      source: 'html'
57868    },
57869    tag: {
57870      type: 'string',
57871      default: 'td',
57872      source: 'tag'
57873    },
57874    scope: {
57875      type: 'string',
57876      source: 'attribute',
57877      attribute: 'scope'
57878    }
57879  };
57880  const table_deprecated_v1 = {
57881    attributes: {
57882      hasFixedLayout: {
57883        type: 'boolean',
57884        default: false
57885      },
57886      backgroundColor: {
57887        type: 'string'
57888      },
57889      head: {
57890        type: 'array',
57891        default: [],
57892        source: 'query',
57893        selector: 'thead tr',
57894        query: {
57895          cells: {
57896            type: 'array',
57897            default: [],
57898            source: 'query',
57899            selector: 'td,th',
57900            query: v1Query
57901          }
57902        }
57903      },
57904      body: {
57905        type: 'array',
57906        default: [],
57907        source: 'query',
57908        selector: 'tbody tr',
57909        query: {
57910          cells: {
57911            type: 'array',
57912            default: [],
57913            source: 'query',
57914            selector: 'td,th',
57915            query: v1Query
57916          }
57917        }
57918      },
57919      foot: {
57920        type: 'array',
57921        default: [],
57922        source: 'query',
57923        selector: 'tfoot tr',
57924        query: {
57925          cells: {
57926            type: 'array',
57927            default: [],
57928            source: 'query',
57929            selector: 'td,th',
57930            query: v1Query
57931          }
57932        }
57933      }
57934    },
57935    supports: {
57936      align: true
57937    },
57938    save({
57939      attributes
57940    }) {
57941      const {
57942        hasFixedLayout,
57943        head,
57944        body,
57945        foot,
57946        backgroundColor
57947      } = attributes;
57948      const isEmpty = !head.length && !body.length && !foot.length;
57949      if (isEmpty) {
57950        return null;
57951      }
57952      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
57953      const classes = dist_clsx(backgroundClass, {
57954        'has-fixed-layout': hasFixedLayout,
57955        'has-background': !!backgroundClass
57956      });
57957      const Section = ({
57958        type,
57959        rows
57960      }) => {
57961        if (!rows.length) {
57962          return null;
57963        }
57964        const Tag = `t$type}`;
57965        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
57966          children: rows.map(({
57967            cells
57968          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
57969            children: cells.map(({
57970              content,
57971              tag,
57972              scope
57973            }, cellIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
57974              tagName: tag,
57975              value: content,
57976              scope: tag === 'th' ? scope : undefined
57977            }, cellIndex))
57978          }, rowIndex))
57979        });
57980      };
57981      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
57982        className: classes,
57983        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57984          type: "head",
57985          rows: head
57986        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57987          type: "body",
57988          rows: body
57989        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
57990          type: "foot",
57991          rows: foot
57992        })]
57993      });
57994    }
57995  };
57996  
57997  /**
57998   * New deprecations need to be placed first
57999   * for them to have higher priority.
58000   *
58001   * Old deprecations may need to be updated as well.
58002   *
58003   * See block-deprecation.md
58004   */
58005  /* harmony default export */ const table_deprecated = ([table_deprecated_v4, table_deprecated_v3, table_deprecated_v2, table_deprecated_v1]);
58006  
58007  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js
58008  /**
58009   * WordPress dependencies
58010   */
58011  
58012  
58013  const alignLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58014    xmlns: "http://www.w3.org/2000/svg",
58015    viewBox: "0 0 24 24",
58016    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58017      d: "M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z"
58018    })
58019  });
58020  /* harmony default export */ const align_left = (alignLeft);
58021  
58022  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js
58023  /**
58024   * WordPress dependencies
58025   */
58026  
58027  
58028  const alignCenter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58029    xmlns: "http://www.w3.org/2000/svg",
58030    viewBox: "0 0 24 24",
58031    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58032      d: "M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z"
58033    })
58034  });
58035  /* harmony default export */ const align_center = (alignCenter);
58036  
58037  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js
58038  /**
58039   * WordPress dependencies
58040   */
58041  
58042  
58043  const alignRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58044    xmlns: "http://www.w3.org/2000/svg",
58045    viewBox: "0 0 24 24",
58046    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58047      d: "M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z"
58048    })
58049  });
58050  /* harmony default export */ const align_right = (alignRight);
58051  
58052  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-before.js
58053  /**
58054   * WordPress dependencies
58055   */
58056  
58057  
58058  const tableRowBefore = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58059    xmlns: "http://www.w3.org/2000/svg",
58060    viewBox: "-2 -2 24 24",
58061    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58062      d: "M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84zM6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z"
58063    })
58064  });
58065  /* harmony default export */ const table_row_before = (tableRowBefore);
58066  
58067  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-after.js
58068  /**
58069   * WordPress dependencies
58070   */
58071  
58072  
58073  const tableRowAfter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58074    xmlns: "http://www.w3.org/2000/svg",
58075    viewBox: "-2 -2 24 24",
58076    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58077      d: "M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z"
58078    })
58079  });
58080  /* harmony default export */ const table_row_after = (tableRowAfter);
58081  
58082  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js
58083  /**
58084   * WordPress dependencies
58085   */
58086  
58087  
58088  const tableRowDelete = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58089    xmlns: "http://www.w3.org/2000/svg",
58090    viewBox: "-2 -2 24 24",
58091    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58092      d: "M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z"
58093    })
58094  });
58095  /* harmony default export */ const table_row_delete = (tableRowDelete);
58096  
58097  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-before.js
58098  /**
58099   * WordPress dependencies
58100   */
58101  
58102  
58103  const tableColumnBefore = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58104    xmlns: "http://www.w3.org/2000/svg",
58105    viewBox: "-2 -2 24 24",
58106    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58107      d: "M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z"
58108    })
58109  });
58110  /* harmony default export */ const table_column_before = (tableColumnBefore);
58111  
58112  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-after.js
58113  /**
58114   * WordPress dependencies
58115   */
58116  
58117  
58118  const tableColumnAfter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58119    xmlns: "http://www.w3.org/2000/svg",
58120    viewBox: "-2 -2 24 24",
58121    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58122      d: "M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z"
58123    })
58124  });
58125  /* harmony default export */ const table_column_after = (tableColumnAfter);
58126  
58127  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js
58128  /**
58129   * WordPress dependencies
58130   */
58131  
58132  
58133  const tableColumnDelete = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58134    xmlns: "http://www.w3.org/2000/svg",
58135    viewBox: "-2 -2 24 24",
58136    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58137      d: "M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z"
58138    })
58139  });
58140  /* harmony default export */ const table_column_delete = (tableColumnDelete);
58141  
58142  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table.js
58143  /**
58144   * WordPress dependencies
58145   */
58146  
58147  
58148  const table = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58149    xmlns: "http://www.w3.org/2000/svg",
58150    viewBox: "0 0 24 24",
58151    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58152      d: "M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z"
58153    })
58154  });
58155  /* harmony default export */ const library_table = (table);
58156  
58157  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/state.js
58158  const INHERITED_COLUMN_ATTRIBUTES = ['align'];
58159  
58160  /**
58161   * Creates a table state.
58162   *
58163   * @param {Object} options
58164   * @param {number} options.rowCount    Row count for the table to create.
58165   * @param {number} options.columnCount Column count for the table to create.
58166   *
58167   * @return {Object} New table state.
58168   */
58169  function createTable({
58170    rowCount,
58171    columnCount
58172  }) {
58173    return {
58174      body: Array.from({
58175        length: rowCount
58176      }).map(() => ({
58177        cells: Array.from({
58178          length: columnCount
58179        }).map(() => ({
58180          content: '',
58181          tag: 'td'
58182        }))
58183      }))
58184    };
58185  }
58186  
58187  /**
58188   * Returns the first row in the table.
58189   *
58190   * @param {Object} state Current table state.
58191   *
58192   * @return {Object | undefined} The first table row.
58193   */
58194  function getFirstRow(state) {
58195    if (!isEmptyTableSection(state.head)) {
58196      return state.head[0];
58197    }
58198    if (!isEmptyTableSection(state.body)) {
58199      return state.body[0];
58200    }
58201    if (!isEmptyTableSection(state.foot)) {
58202      return state.foot[0];
58203    }
58204  }
58205  
58206  /**
58207   * Gets an attribute for a cell.
58208   *
58209   * @param {Object} state         Current table state.
58210   * @param {Object} cellLocation  The location of the cell
58211   * @param {string} attributeName The name of the attribute to get the value of.
58212   *
58213   * @return {*} The attribute value.
58214   */
58215  function getCellAttribute(state, cellLocation, attributeName) {
58216    const {
58217      sectionName,
58218      rowIndex,
58219      columnIndex
58220    } = cellLocation;
58221    return state[sectionName]?.[rowIndex]?.cells?.[columnIndex]?.[attributeName];
58222  }
58223  
58224  /**
58225   * Returns updated cell attributes after applying the `updateCell` function to the selection.
58226   *
58227   * @param {Object}   state      The block attributes.
58228   * @param {Object}   selection  The selection of cells to update.
58229   * @param {Function} updateCell A function to update the selected cell attributes.
58230   *
58231   * @return {Object} New table state including the updated cells.
58232   */
58233  function updateSelectedCell(state, selection, updateCell) {
58234    if (!selection) {
58235      return state;
58236    }
58237    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
58238    const {
58239      sectionName: selectionSectionName,
58240      rowIndex: selectionRowIndex
58241    } = selection;
58242    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
58243      if (selectionSectionName && selectionSectionName !== sectionName) {
58244        return [sectionName, section];
58245      }
58246      return [sectionName, section.map((row, rowIndex) => {
58247        if (selectionRowIndex && selectionRowIndex !== rowIndex) {
58248          return row;
58249        }
58250        return {
58251          cells: row.cells.map((cellAttributes, columnIndex) => {
58252            const cellLocation = {
58253              sectionName,
58254              columnIndex,
58255              rowIndex
58256            };
58257            if (!isCellSelected(cellLocation, selection)) {
58258              return cellAttributes;
58259            }
58260            return updateCell(cellAttributes);
58261          })
58262        };
58263      })];
58264    }));
58265  }
58266  
58267  /**
58268   * Returns whether the cell at `cellLocation` is included in the selection `selection`.
58269   *
58270   * @param {Object} cellLocation An object containing cell location properties.
58271   * @param {Object} selection    An object containing selection properties.
58272   *
58273   * @return {boolean} True if the cell is selected, false otherwise.
58274   */
58275  function isCellSelected(cellLocation, selection) {
58276    if (!cellLocation || !selection) {
58277      return false;
58278    }
58279    switch (selection.type) {
58280      case 'column':
58281        return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex;
58282      case 'cell':
58283        return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex;
58284    }
58285  }
58286  
58287  /**
58288   * Inserts a row in the table state.
58289   *
58290   * @param {Object} state               Current table state.
58291   * @param {Object} options
58292   * @param {string} options.sectionName Section in which to insert the row.
58293   * @param {number} options.rowIndex    Row index at which to insert the row.
58294   * @param {number} options.columnCount Column count for the table to create.
58295   *
58296   * @return {Object} New table state.
58297   */
58298  function insertRow(state, {
58299    sectionName,
58300    rowIndex,
58301    columnCount
58302  }) {
58303    const firstRow = getFirstRow(state);
58304    const cellCount = columnCount === undefined ? firstRow?.cells?.length : columnCount;
58305  
58306    // Bail early if the function cannot determine how many cells to add.
58307    if (!cellCount) {
58308      return state;
58309    }
58310    return {
58311      [sectionName]: [...state[sectionName].slice(0, rowIndex), {
58312        cells: Array.from({
58313          length: cellCount
58314        }).map((_, index) => {
58315          var _firstRow$cells$index;
58316          const firstCellInColumn = (_firstRow$cells$index = firstRow?.cells?.[index]) !== null && _firstRow$cells$index !== void 0 ? _firstRow$cells$index : {};
58317          const inheritedAttributes = Object.fromEntries(Object.entries(firstCellInColumn).filter(([key]) => INHERITED_COLUMN_ATTRIBUTES.includes(key)));
58318          return {
58319            ...inheritedAttributes,
58320            content: '',
58321            tag: sectionName === 'head' ? 'th' : 'td'
58322          };
58323        })
58324      }, ...state[sectionName].slice(rowIndex)]
58325    };
58326  }
58327  
58328  /**
58329   * Deletes a row from the table state.
58330   *
58331   * @param {Object} state               Current table state.
58332   * @param {Object} options
58333   * @param {string} options.sectionName Section in which to delete the row.
58334   * @param {number} options.rowIndex    Row index to delete.
58335   *
58336   * @return {Object} New table state.
58337   */
58338  function deleteRow(state, {
58339    sectionName,
58340    rowIndex
58341  }) {
58342    return {
58343      [sectionName]: state[sectionName].filter((row, index) => index !== rowIndex)
58344    };
58345  }
58346  
58347  /**
58348   * Inserts a column in the table state.
58349   *
58350   * @param {Object} state               Current table state.
58351   * @param {Object} options
58352   * @param {number} options.columnIndex Column index at which to insert the column.
58353   *
58354   * @return {Object} New table state.
58355   */
58356  function insertColumn(state, {
58357    columnIndex
58358  }) {
58359    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
58360    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
58361      // Bail early if the table section is empty.
58362      if (isEmptyTableSection(section)) {
58363        return [sectionName, section];
58364      }
58365      return [sectionName, section.map(row => {
58366        // Bail early if the row is empty or it's an attempt to insert past
58367        // the last possible index of the array.
58368        if (isEmptyRow(row) || row.cells.length < columnIndex) {
58369          return row;
58370        }
58371        return {
58372          cells: [...row.cells.slice(0, columnIndex), {
58373            content: '',
58374            tag: sectionName === 'head' ? 'th' : 'td'
58375          }, ...row.cells.slice(columnIndex)]
58376        };
58377      })];
58378    }));
58379  }
58380  
58381  /**
58382   * Deletes a column from the table state.
58383   *
58384   * @param {Object} state               Current table state.
58385   * @param {Object} options
58386   * @param {number} options.columnIndex Column index to delete.
58387   *
58388   * @return {Object} New table state.
58389   */
58390  function deleteColumn(state, {
58391    columnIndex
58392  }) {
58393    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
58394    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
58395      // Bail early if the table section is empty.
58396      if (isEmptyTableSection(section)) {
58397        return [sectionName, section];
58398      }
58399      return [sectionName, section.map(row => ({
58400        cells: row.cells.length >= columnIndex ? row.cells.filter((cell, index) => index !== columnIndex) : row.cells
58401      })).filter(row => row.cells.length)];
58402    }));
58403  }
58404  
58405  /**
58406   * Toggles the existence of a section.
58407   *
58408   * @param {Object} state       Current table state.
58409   * @param {string} sectionName Name of the section to toggle.
58410   *
58411   * @return {Object} New table state.
58412   */
58413  function toggleSection(state, sectionName) {
58414    var _state$body$0$cells$l;
58415    // Section exists, replace it with an empty row to remove it.
58416    if (!isEmptyTableSection(state[sectionName])) {
58417      return {
58418        [sectionName]: []
58419      };
58420    }
58421  
58422    // Get the length of the first row of the body to use when creating the header.
58423    const columnCount = (_state$body$0$cells$l = state.body?.[0]?.cells?.length) !== null && _state$body$0$cells$l !== void 0 ? _state$body$0$cells$l : 1;
58424  
58425    // Section doesn't exist, insert an empty row to create the section.
58426    return insertRow(state, {
58427      sectionName,
58428      rowIndex: 0,
58429      columnCount
58430    });
58431  }
58432  
58433  /**
58434   * Determines whether a table section is empty.
58435   *
58436   * @param {Object} section Table section state.
58437   *
58438   * @return {boolean} True if the table section is empty, false otherwise.
58439   */
58440  function isEmptyTableSection(section) {
58441    return !section || !section.length || section.every(isEmptyRow);
58442  }
58443  
58444  /**
58445   * Determines whether a table row is empty.
58446   *
58447   * @param {Object} row Table row state.
58448   *
58449   * @return {boolean} True if the table section is empty, false otherwise.
58450   */
58451  function isEmptyRow(row) {
58452    return !(row.cells && row.cells.length);
58453  }
58454  
58455  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/edit.js
58456  /**
58457   * External dependencies
58458   */
58459  
58460  
58461  /**
58462   * WordPress dependencies
58463   */
58464  
58465  
58466  
58467  
58468  
58469  
58470  /**
58471   * Internal dependencies
58472   */
58473  
58474  
58475  
58476  
58477  
58478  const ALIGNMENT_CONTROLS = [{
58479    icon: align_left,
58480    title: (0,external_wp_i18n_namespaceObject.__)('Align column left'),
58481    align: 'left'
58482  }, {
58483    icon: align_center,
58484    title: (0,external_wp_i18n_namespaceObject.__)('Align column center'),
58485    align: 'center'
58486  }, {
58487    icon: align_right,
58488    title: (0,external_wp_i18n_namespaceObject.__)('Align column right'),
58489    align: 'right'
58490  }];
58491  const cellAriaLabel = {
58492    head: (0,external_wp_i18n_namespaceObject.__)('Header cell text'),
58493    body: (0,external_wp_i18n_namespaceObject.__)('Body cell text'),
58494    foot: (0,external_wp_i18n_namespaceObject.__)('Footer cell text')
58495  };
58496  const edit_placeholder = {
58497    head: (0,external_wp_i18n_namespaceObject.__)('Header label'),
58498    foot: (0,external_wp_i18n_namespaceObject.__)('Footer label')
58499  };
58500  function TSection({
58501    name,
58502    ...props
58503  }) {
58504    const TagName = `t$name}`;
58505    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
58506      ...props
58507    });
58508  }
58509  function TableEdit({
58510    attributes,
58511    setAttributes,
58512    insertBlocksAfter,
58513    isSelected: isSingleSelected
58514  }) {
58515    const {
58516      hasFixedLayout,
58517      head,
58518      foot
58519    } = attributes;
58520    const [initialRowCount, setInitialRowCount] = (0,external_wp_element_namespaceObject.useState)(2);
58521    const [initialColumnCount, setInitialColumnCount] = (0,external_wp_element_namespaceObject.useState)(2);
58522    const [selectedCell, setSelectedCell] = (0,external_wp_element_namespaceObject.useState)();
58523    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
58524    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
58525    const tableRef = (0,external_wp_element_namespaceObject.useRef)();
58526    const [hasTableCreated, setHasTableCreated] = (0,external_wp_element_namespaceObject.useState)(false);
58527  
58528    /**
58529     * Updates the initial column count used for table creation.
58530     *
58531     * @param {number} count New initial column count.
58532     */
58533    function onChangeInitialColumnCount(count) {
58534      setInitialColumnCount(count);
58535    }
58536  
58537    /**
58538     * Updates the initial row count used for table creation.
58539     *
58540     * @param {number} count New initial row count.
58541     */
58542    function onChangeInitialRowCount(count) {
58543      setInitialRowCount(count);
58544    }
58545  
58546    /**
58547     * Creates a table based on dimensions in local state.
58548     *
58549     * @param {Object} event Form submit event.
58550     */
58551    function onCreateTable(event) {
58552      event.preventDefault();
58553      setAttributes(createTable({
58554        rowCount: parseInt(initialRowCount, 10) || 2,
58555        columnCount: parseInt(initialColumnCount, 10) || 2
58556      }));
58557      setHasTableCreated(true);
58558    }
58559  
58560    /**
58561     * Toggles whether the table has a fixed layout or not.
58562     */
58563    function onChangeFixedLayout() {
58564      setAttributes({
58565        hasFixedLayout: !hasFixedLayout
58566      });
58567    }
58568  
58569    /**
58570     * Changes the content of the currently selected cell.
58571     *
58572     * @param {Array} content A RichText content value.
58573     */
58574    function onChange(content) {
58575      if (!selectedCell) {
58576        return;
58577      }
58578      setAttributes(updateSelectedCell(attributes, selectedCell, cellAttributes => ({
58579        ...cellAttributes,
58580        content
58581      })));
58582    }
58583  
58584    /**
58585     * Align text within the a column.
58586     *
58587     * @param {string} align The new alignment to apply to the column.
58588     */
58589    function onChangeColumnAlignment(align) {
58590      if (!selectedCell) {
58591        return;
58592      }
58593  
58594      // Convert the cell selection to a column selection so that alignment
58595      // is applied to the entire column.
58596      const columnSelection = {
58597        type: 'column',
58598        columnIndex: selectedCell.columnIndex
58599      };
58600      const newAttributes = updateSelectedCell(attributes, columnSelection, cellAttributes => ({
58601        ...cellAttributes,
58602        align
58603      }));
58604      setAttributes(newAttributes);
58605    }
58606  
58607    /**
58608     * Get the alignment of the currently selected cell.
58609     *
58610     * @return {string | undefined} The new alignment to apply to the column.
58611     */
58612    function getCellAlignment() {
58613      if (!selectedCell) {
58614        return;
58615      }
58616      return getCellAttribute(attributes, selectedCell, 'align');
58617    }
58618  
58619    /**
58620     * Add or remove a `head` table section.
58621     */
58622    function onToggleHeaderSection() {
58623      setAttributes(toggleSection(attributes, 'head'));
58624    }
58625  
58626    /**
58627     * Add or remove a `foot` table section.
58628     */
58629    function onToggleFooterSection() {
58630      setAttributes(toggleSection(attributes, 'foot'));
58631    }
58632  
58633    /**
58634     * Inserts a row at the currently selected row index, plus `delta`.
58635     *
58636     * @param {number} delta Offset for selected row index at which to insert.
58637     */
58638    function onInsertRow(delta) {
58639      if (!selectedCell) {
58640        return;
58641      }
58642      const {
58643        sectionName,
58644        rowIndex
58645      } = selectedCell;
58646      const newRowIndex = rowIndex + delta;
58647      setAttributes(insertRow(attributes, {
58648        sectionName,
58649        rowIndex: newRowIndex
58650      }));
58651      // Select the first cell of the new row.
58652      setSelectedCell({
58653        sectionName,
58654        rowIndex: newRowIndex,
58655        columnIndex: 0,
58656        type: 'cell'
58657      });
58658    }
58659  
58660    /**
58661     * Inserts a row before the currently selected row.
58662     */
58663    function onInsertRowBefore() {
58664      onInsertRow(0);
58665    }
58666  
58667    /**
58668     * Inserts a row after the currently selected row.
58669     */
58670    function onInsertRowAfter() {
58671      onInsertRow(1);
58672    }
58673  
58674    /**
58675     * Deletes the currently selected row.
58676     */
58677    function onDeleteRow() {
58678      if (!selectedCell) {
58679        return;
58680      }
58681      const {
58682        sectionName,
58683        rowIndex
58684      } = selectedCell;
58685      setSelectedCell();
58686      setAttributes(deleteRow(attributes, {
58687        sectionName,
58688        rowIndex
58689      }));
58690    }
58691  
58692    /**
58693     * Inserts a column at the currently selected column index, plus `delta`.
58694     *
58695     * @param {number} delta Offset for selected column index at which to insert.
58696     */
58697    function onInsertColumn(delta = 0) {
58698      if (!selectedCell) {
58699        return;
58700      }
58701      const {
58702        columnIndex
58703      } = selectedCell;
58704      const newColumnIndex = columnIndex + delta;
58705      setAttributes(insertColumn(attributes, {
58706        columnIndex: newColumnIndex
58707      }));
58708      // Select the first cell of the new column.
58709      setSelectedCell({
58710        rowIndex: 0,
58711        columnIndex: newColumnIndex,
58712        type: 'cell'
58713      });
58714    }
58715  
58716    /**
58717     * Inserts a column before the currently selected column.
58718     */
58719    function onInsertColumnBefore() {
58720      onInsertColumn(0);
58721    }
58722  
58723    /**
58724     * Inserts a column after the currently selected column.
58725     */
58726    function onInsertColumnAfter() {
58727      onInsertColumn(1);
58728    }
58729  
58730    /**
58731     * Deletes the currently selected column.
58732     */
58733    function onDeleteColumn() {
58734      if (!selectedCell) {
58735        return;
58736      }
58737      const {
58738        sectionName,
58739        columnIndex
58740      } = selectedCell;
58741      setSelectedCell();
58742      setAttributes(deleteColumn(attributes, {
58743        sectionName,
58744        columnIndex
58745      }));
58746    }
58747    (0,external_wp_element_namespaceObject.useEffect)(() => {
58748      if (!isSingleSelected) {
58749        setSelectedCell();
58750      }
58751    }, [isSingleSelected]);
58752    (0,external_wp_element_namespaceObject.useEffect)(() => {
58753      if (hasTableCreated) {
58754        tableRef?.current?.querySelector('td div[contentEditable="true"]')?.focus();
58755        setHasTableCreated(false);
58756      }
58757    }, [hasTableCreated]);
58758    const sections = ['head', 'body', 'foot'].filter(name => !isEmptyTableSection(attributes[name]));
58759    const tableControls = [{
58760      icon: table_row_before,
58761      title: (0,external_wp_i18n_namespaceObject.__)('Insert row before'),
58762      isDisabled: !selectedCell,
58763      onClick: onInsertRowBefore
58764    }, {
58765      icon: table_row_after,
58766      title: (0,external_wp_i18n_namespaceObject.__)('Insert row after'),
58767      isDisabled: !selectedCell,
58768      onClick: onInsertRowAfter
58769    }, {
58770      icon: table_row_delete,
58771      title: (0,external_wp_i18n_namespaceObject.__)('Delete row'),
58772      isDisabled: !selectedCell,
58773      onClick: onDeleteRow
58774    }, {
58775      icon: table_column_before,
58776      title: (0,external_wp_i18n_namespaceObject.__)('Insert column before'),
58777      isDisabled: !selectedCell,
58778      onClick: onInsertColumnBefore
58779    }, {
58780      icon: table_column_after,
58781      title: (0,external_wp_i18n_namespaceObject.__)('Insert column after'),
58782      isDisabled: !selectedCell,
58783      onClick: onInsertColumnAfter
58784    }, {
58785      icon: table_column_delete,
58786      title: (0,external_wp_i18n_namespaceObject.__)('Delete column'),
58787      isDisabled: !selectedCell,
58788      onClick: onDeleteColumn
58789    }];
58790    const renderedSections = sections.map(name => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TSection, {
58791      name: name,
58792      children: attributes[name].map(({
58793        cells
58794      }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
58795        children: cells.map(({
58796          content,
58797          tag: CellTag,
58798          scope,
58799          align,
58800          colspan,
58801          rowspan
58802        }, columnIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CellTag, {
58803          scope: CellTag === 'th' ? scope : undefined,
58804          colSpan: colspan,
58805          rowSpan: rowspan,
58806          className: dist_clsx({
58807            [`has-text-align-$align}`]: align
58808          }, 'wp-block-table__cell-content'),
58809          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
58810            value: content,
58811            onChange: onChange,
58812            onFocus: () => {
58813              setSelectedCell({
58814                sectionName: name,
58815                rowIndex,
58816                columnIndex,
58817                type: 'cell'
58818              });
58819            },
58820            "aria-label": cellAriaLabel[name],
58821            placeholder: edit_placeholder[name]
58822          })
58823        }, columnIndex))
58824      }, rowIndex))
58825    }, name));
58826    const isEmpty = !sections.length;
58827    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
58828      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
58829        ref: tableRef
58830      }),
58831      children: [!isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58832        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
58833          group: "block",
58834          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
58835            label: (0,external_wp_i18n_namespaceObject.__)('Change column alignment'),
58836            alignmentControls: ALIGNMENT_CONTROLS,
58837            value: getCellAlignment(),
58838            onChange: nextAlign => onChangeColumnAlignment(nextAlign)
58839          })
58840        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
58841          group: "other",
58842          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
58843            hasArrowIndicator: true,
58844            icon: library_table,
58845            label: (0,external_wp_i18n_namespaceObject.__)('Edit table'),
58846            controls: tableControls
58847          })
58848        })]
58849      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58850        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
58851          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
58852          className: "blocks-table-settings",
58853          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58854            __nextHasNoMarginBottom: true,
58855            label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
58856            checked: !!hasFixedLayout,
58857            onChange: onChangeFixedLayout
58858          }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58859            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58860              __nextHasNoMarginBottom: true,
58861              label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
58862              checked: !!(head && head.length),
58863              onChange: onToggleHeaderSection
58864            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58865              __nextHasNoMarginBottom: true,
58866              label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
58867              checked: !!(foot && foot.length),
58868              onChange: onToggleFooterSection
58869            })]
58870          })]
58871        })
58872      }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("table", {
58873        className: dist_clsx(colorProps.className, borderProps.className, {
58874          'has-fixed-layout': hasFixedLayout,
58875          // This is required in the editor only to overcome
58876          // the fact the editor rewrites individual border
58877          // widths into a shorthand format.
58878          'has-individual-borders': (0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(attributes?.style?.border)
58879        }),
58880        style: {
58881          ...colorProps.style,
58882          ...borderProps.style
58883        },
58884        children: renderedSections
58885      }), isEmpty ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
58886        label: (0,external_wp_i18n_namespaceObject.__)('Table'),
58887        icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
58888          icon: block_table,
58889          showColors: true
58890        }),
58891        instructions: (0,external_wp_i18n_namespaceObject.__)('Insert a table for sharing data.'),
58892        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
58893          className: "blocks-table__placeholder-form",
58894          onSubmit: onCreateTable,
58895          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
58896            __nextHasNoMarginBottom: true,
58897            __next40pxDefaultSize: true,
58898            type: "number",
58899            label: (0,external_wp_i18n_namespaceObject.__)('Column count'),
58900            value: initialColumnCount,
58901            onChange: onChangeInitialColumnCount,
58902            min: "1",
58903            className: "blocks-table__placeholder-input"
58904          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
58905            __nextHasNoMarginBottom: true,
58906            __next40pxDefaultSize: true,
58907            type: "number",
58908            label: (0,external_wp_i18n_namespaceObject.__)('Row count'),
58909            value: initialRowCount,
58910            onChange: onChangeInitialRowCount,
58911            min: "1",
58912            className: "blocks-table__placeholder-input"
58913          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
58914            __next40pxDefaultSize: true,
58915            variant: "primary",
58916            type: "submit",
58917            children: (0,external_wp_i18n_namespaceObject.__)('Create Table')
58918          })]
58919        })
58920      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
58921        attributes: attributes,
58922        setAttributes: setAttributes,
58923        isSelected: isSingleSelected,
58924        insertBlocksAfter: insertBlocksAfter,
58925        label: (0,external_wp_i18n_namespaceObject.__)('Table caption text'),
58926        showToolbarButton: isSingleSelected
58927      })]
58928    });
58929  }
58930  /* harmony default export */ const table_edit = (TableEdit);
58931  
58932  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/save.js
58933  /**
58934   * External dependencies
58935   */
58936  
58937  
58938  /**
58939   * WordPress dependencies
58940   */
58941  
58942  
58943  
58944  function table_save_save({
58945    attributes
58946  }) {
58947    const {
58948      hasFixedLayout,
58949      head,
58950      body,
58951      foot,
58952      caption
58953    } = attributes;
58954    const isEmpty = !head.length && !body.length && !foot.length;
58955    if (isEmpty) {
58956      return null;
58957    }
58958    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
58959    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
58960    const classes = dist_clsx(colorProps.className, borderProps.className, {
58961      'has-fixed-layout': hasFixedLayout
58962    });
58963    const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
58964    const Section = ({
58965      type,
58966      rows
58967    }) => {
58968      if (!rows.length) {
58969        return null;
58970      }
58971      const Tag = `t$type}`;
58972      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
58973        children: rows.map(({
58974          cells
58975        }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
58976          children: cells.map(({
58977            content,
58978            tag,
58979            scope,
58980            align,
58981            colspan,
58982            rowspan
58983          }, cellIndex) => {
58984            const cellClasses = dist_clsx({
58985              [`has-text-align-$align}`]: align
58986            });
58987            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
58988              className: cellClasses ? cellClasses : undefined,
58989              "data-align": align,
58990              tagName: tag,
58991              value: content,
58992              scope: tag === 'th' ? scope : undefined,
58993              colSpan: colspan,
58994              rowSpan: rowspan
58995            }, cellIndex);
58996          })
58997        }, rowIndex))
58998      });
58999    };
59000    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59001      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59002      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59003        className: classes === '' ? undefined : classes,
59004        style: {
59005          ...colorProps.style,
59006          ...borderProps.style
59007        },
59008        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59009          type: "head",
59010          rows: head
59011        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59012          type: "body",
59013          rows: body
59014        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59015          type: "foot",
59016          rows: foot
59017        })]
59018      }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59019        tagName: "figcaption",
59020        value: caption,
59021        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
59022      })]
59023    });
59024  }
59025  
59026  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/utils.js
59027  /**
59028   * Normalize the rowspan/colspan value.
59029   * Returns undefined if the parameter is not a positive number
59030   * or the default value (1) for rowspan/colspan.
59031   *
59032   * @param {number|undefined} rowColSpan rowspan/colspan value.
59033   *
59034   * @return {string|undefined} normalized rowspan/colspan value.
59035   */
59036  function normalizeRowColSpan(rowColSpan) {
59037    const parsedValue = parseInt(rowColSpan, 10);
59038    if (!Number.isInteger(parsedValue)) {
59039      return undefined;
59040    }
59041    return parsedValue < 0 || parsedValue === 1 ? undefined : parsedValue.toString();
59042  }
59043  
59044  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/transforms.js
59045  /**
59046   * WordPress dependencies
59047   */
59048  
59049  
59050  /**
59051   * Internal dependencies
59052   */
59053  
59054  const tableContentPasteSchema = ({
59055    phrasingContentSchema
59056  }) => ({
59057    tr: {
59058      allowEmpty: true,
59059      children: {
59060        th: {
59061          allowEmpty: true,
59062          children: phrasingContentSchema,
59063          attributes: ['scope', 'colspan', 'rowspan']
59064        },
59065        td: {
59066          allowEmpty: true,
59067          children: phrasingContentSchema,
59068          attributes: ['colspan', 'rowspan']
59069        }
59070      }
59071    }
59072  });
59073  const tablePasteSchema = args => ({
59074    table: {
59075      children: {
59076        thead: {
59077          allowEmpty: true,
59078          children: tableContentPasteSchema(args)
59079        },
59080        tfoot: {
59081          allowEmpty: true,
59082          children: tableContentPasteSchema(args)
59083        },
59084        tbody: {
59085          allowEmpty: true,
59086          children: tableContentPasteSchema(args)
59087        }
59088      }
59089    }
59090  });
59091  const table_transforms_transforms = {
59092    from: [{
59093      type: 'raw',
59094      selector: 'table',
59095      schema: tablePasteSchema,
59096      transform: node => {
59097        const attributes = Array.from(node.children).reduce((sectionAcc, section) => {
59098          if (!section.children.length) {
59099            return sectionAcc;
59100          }
59101          const sectionName = section.nodeName.toLowerCase().slice(1);
59102          const sectionAttributes = Array.from(section.children).reduce((rowAcc, row) => {
59103            if (!row.children.length) {
59104              return rowAcc;
59105            }
59106            const rowAttributes = Array.from(row.children).reduce((colAcc, col) => {
59107              const rowspan = normalizeRowColSpan(col.getAttribute('rowspan'));
59108              const colspan = normalizeRowColSpan(col.getAttribute('colspan'));
59109              colAcc.push({
59110                tag: col.nodeName.toLowerCase(),
59111                content: col.innerHTML,
59112                rowspan,
59113                colspan
59114              });
59115              return colAcc;
59116            }, []);
59117            rowAcc.push({
59118              cells: rowAttributes
59119            });
59120            return rowAcc;
59121          }, []);
59122          sectionAcc[sectionName] = sectionAttributes;
59123          return sectionAcc;
59124        }, {});
59125        return (0,external_wp_blocks_namespaceObject.createBlock)('core/table', attributes);
59126      }
59127    }]
59128  };
59129  /* harmony default export */ const table_transforms = (table_transforms_transforms);
59130  
59131  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/index.js
59132  /**
59133   * WordPress dependencies
59134   */
59135  
59136  
59137  
59138  /**
59139   * Internal dependencies
59140   */
59141  
59142  
59143  
59144  const table_metadata = {
59145    $schema: "https://schemas.wp.org/trunk/block.json",
59146    apiVersion: 3,
59147    name: "core/table",
59148    title: "Table",
59149    category: "text",
59150    description: "Create structured content in rows and columns to display information.",
59151    textdomain: "default",
59152    attributes: {
59153      hasFixedLayout: {
59154        type: "boolean",
59155        "default": true
59156      },
59157      caption: {
59158        type: "rich-text",
59159        source: "rich-text",
59160        selector: "figcaption"
59161      },
59162      head: {
59163        type: "array",
59164        "default": [],
59165        source: "query",
59166        selector: "thead tr",
59167        query: {
59168          cells: {
59169            type: "array",
59170            "default": [],
59171            source: "query",
59172            selector: "td,th",
59173            query: {
59174              content: {
59175                type: "rich-text",
59176                source: "rich-text"
59177              },
59178              tag: {
59179                type: "string",
59180                "default": "td",
59181                source: "tag"
59182              },
59183              scope: {
59184                type: "string",
59185                source: "attribute",
59186                attribute: "scope"
59187              },
59188              align: {
59189                type: "string",
59190                source: "attribute",
59191                attribute: "data-align"
59192              },
59193              colspan: {
59194                type: "string",
59195                source: "attribute",
59196                attribute: "colspan"
59197              },
59198              rowspan: {
59199                type: "string",
59200                source: "attribute",
59201                attribute: "rowspan"
59202              }
59203            }
59204          }
59205        }
59206      },
59207      body: {
59208        type: "array",
59209        "default": [],
59210        source: "query",
59211        selector: "tbody tr",
59212        query: {
59213          cells: {
59214            type: "array",
59215            "default": [],
59216            source: "query",
59217            selector: "td,th",
59218            query: {
59219              content: {
59220                type: "rich-text",
59221                source: "rich-text"
59222              },
59223              tag: {
59224                type: "string",
59225                "default": "td",
59226                source: "tag"
59227              },
59228              scope: {
59229                type: "string",
59230                source: "attribute",
59231                attribute: "scope"
59232              },
59233              align: {
59234                type: "string",
59235                source: "attribute",
59236                attribute: "data-align"
59237              },
59238              colspan: {
59239                type: "string",
59240                source: "attribute",
59241                attribute: "colspan"
59242              },
59243              rowspan: {
59244                type: "string",
59245                source: "attribute",
59246                attribute: "rowspan"
59247              }
59248            }
59249          }
59250        }
59251      },
59252      foot: {
59253        type: "array",
59254        "default": [],
59255        source: "query",
59256        selector: "tfoot tr",
59257        query: {
59258          cells: {
59259            type: "array",
59260            "default": [],
59261            source: "query",
59262            selector: "td,th",
59263            query: {
59264              content: {
59265                type: "rich-text",
59266                source: "rich-text"
59267              },
59268              tag: {
59269                type: "string",
59270                "default": "td",
59271                source: "tag"
59272              },
59273              scope: {
59274                type: "string",
59275                source: "attribute",
59276                attribute: "scope"
59277              },
59278              align: {
59279                type: "string",
59280                source: "attribute",
59281                attribute: "data-align"
59282              },
59283              colspan: {
59284                type: "string",
59285                source: "attribute",
59286                attribute: "colspan"
59287              },
59288              rowspan: {
59289                type: "string",
59290                source: "attribute",
59291                attribute: "rowspan"
59292              }
59293            }
59294          }
59295        }
59296      }
59297    },
59298    supports: {
59299      anchor: true,
59300      align: true,
59301      color: {
59302        __experimentalSkipSerialization: true,
59303        gradients: true,
59304        __experimentalDefaultControls: {
59305          background: true,
59306          text: true
59307        }
59308      },
59309      spacing: {
59310        margin: true,
59311        padding: true,
59312        __experimentalDefaultControls: {
59313          margin: false,
59314          padding: false
59315        }
59316      },
59317      typography: {
59318        fontSize: true,
59319        lineHeight: true,
59320        __experimentalFontFamily: true,
59321        __experimentalFontStyle: true,
59322        __experimentalFontWeight: true,
59323        __experimentalLetterSpacing: true,
59324        __experimentalTextTransform: true,
59325        __experimentalTextDecoration: true,
59326        __experimentalDefaultControls: {
59327          fontSize: true
59328        }
59329      },
59330      __experimentalBorder: {
59331        __experimentalSkipSerialization: true,
59332        color: true,
59333        style: true,
59334        width: true,
59335        __experimentalDefaultControls: {
59336          color: true,
59337          style: true,
59338          width: true
59339        }
59340      },
59341      __experimentalSelector: ".wp-block-table > table",
59342      interactivity: {
59343        clientNavigation: true
59344      }
59345    },
59346    styles: [{
59347      name: "regular",
59348      label: "Default",
59349      isDefault: true
59350    }, {
59351      name: "stripes",
59352      label: "Stripes"
59353    }],
59354    editorStyle: "wp-block-table-editor",
59355    style: "wp-block-table"
59356  };
59357  
59358  
59359  const {
59360    name: table_name
59361  } = table_metadata;
59362  
59363  const table_settings = {
59364    icon: block_table,
59365    example: {
59366      attributes: {
59367        head: [{
59368          cells: [{
59369            content: (0,external_wp_i18n_namespaceObject.__)('Version'),
59370            tag: 'th'
59371          }, {
59372            content: (0,external_wp_i18n_namespaceObject.__)('Jazz Musician'),
59373            tag: 'th'
59374          }, {
59375            content: (0,external_wp_i18n_namespaceObject.__)('Release Date'),
59376            tag: 'th'
59377          }]
59378        }],
59379        body: [{
59380          cells: [{
59381            content: '5.2',
59382            tag: 'td'
59383          }, {
59384            content: 'Jaco Pastorius',
59385            tag: 'td'
59386          }, {
59387            content: (0,external_wp_i18n_namespaceObject.__)('May 7, 2019'),
59388            tag: 'td'
59389          }]
59390        }, {
59391          cells: [{
59392            content: '5.1',
59393            tag: 'td'
59394          }, {
59395            content: 'Betty Carter',
59396            tag: 'td'
59397          }, {
59398            content: (0,external_wp_i18n_namespaceObject.__)('February 21, 2019'),
59399            tag: 'td'
59400          }]
59401        }, {
59402          cells: [{
59403            content: '5.0',
59404            tag: 'td'
59405          }, {
59406            content: 'Bebo Valdés',
59407            tag: 'td'
59408          }, {
59409            content: (0,external_wp_i18n_namespaceObject.__)('December 6, 2018'),
59410            tag: 'td'
59411          }]
59412        }]
59413      },
59414      viewportWidth: 450
59415    },
59416    transforms: table_transforms,
59417    edit: table_edit,
59418    save: table_save_save,
59419    deprecated: table_deprecated
59420  };
59421  const table_init = () => initBlock({
59422    name: table_name,
59423    metadata: table_metadata,
59424    settings: table_settings
59425  });
59426  
59427  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-of-contents.js
59428  /**
59429   * WordPress dependencies
59430   */
59431  
59432  
59433  
59434  const tableOfContents = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
59435    xmlns: "http://www.w3.org/2000/svg",
59436    viewBox: "0 0 24 24",
59437    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
59438      fillRule: "evenodd",
59439      clipRule: "evenodd",
59440      d: "M20 9.484h-8.889v-1.5H20v1.5Zm0 7h-4.889v-1.5H20v1.5Zm-14 .032a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"
59441    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
59442      d: "M13 15.516a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 8.484a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z"
59443    })]
59444  });
59445  /* harmony default export */ const table_of_contents = (tableOfContents);
59446  
59447  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table-of-contents/list.js
59448  
59449  
59450  
59451  /**
59452   * External dependencies
59453   */
59454  
59455  /**
59456   * Internal dependencies
59457   */
59458  
59459  const ENTRY_CLASS_NAME = 'wp-block-table-of-contents__entry';
59460  function TableOfContentsList({
59461    nestedHeadingList,
59462    disableLinkActivation,
59463    onClick
59464  }) {
59465    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
59466      children: nestedHeadingList.map((node, index) => {
59467        const {
59468          content,
59469          link
59470        } = node.heading;
59471        const entry = link ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
59472          className: ENTRY_CLASS_NAME,
59473          href: link,
59474          "aria-disabled": disableLinkActivation || undefined,
59475          onClick: disableLinkActivation && 'function' === typeof onClick ? onClick : undefined,
59476          children: content
59477        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
59478          className: ENTRY_CLASS_NAME,
59479          children: content
59480        });
59481        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
59482          children: [entry, node.children ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
59483            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
59484              nestedHeadingList: node.children,
59485              disableLinkActivation: disableLinkActivation,
59486              onClick: disableLinkActivation && 'function' === typeof onClick ? onClick : undefined
59487            })
59488          }) : null]
59489        }, index);
59490      })
59491    });
59492  }
59493  
59494  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table-of-contents/utils.js
59495  /**
59496   * Takes a flat list of heading parameters and nests them based on each header's
59497   * immediate parent's level.
59498   *
59499   * @param headingList The flat list of headings to nest.
59500   *
59501   * @return The nested list of headings.
59502   */
59503  function linearToNestedHeadingList(headingList) {
59504    const nestedHeadingList = [];
59505    headingList.forEach((heading, key) => {
59506      if (heading.content === '') {
59507        return;
59508      }
59509  
59510      // Make sure we are only working with the same level as the first iteration in our set.
59511      if (heading.level === headingList[0].level) {
59512        // Check that the next iteration will return a value.
59513        // If it does and the next level is greater than the current level,
59514        // the next iteration becomes a child of the current iteration.
59515        if (headingList[key + 1]?.level > heading.level) {
59516          // We must calculate the last index before the next iteration that
59517          // has the same level (siblings). We then use this index to slice
59518          // the array for use in recursion. This prevents duplicate nodes.
59519          let endOfSlice = headingList.length;
59520          for (let i = key + 1; i < headingList.length; i++) {
59521            if (headingList[i].level === heading.level) {
59522              endOfSlice = i;
59523              break;
59524            }
59525          }
59526  
59527          // We found a child node: Push a new node onto the return array
59528          // with children.
59529          nestedHeadingList.push({
59530            heading,
59531            children: linearToNestedHeadingList(headingList.slice(key + 1, endOfSlice))
59532          });
59533        } else {
59534          // No child node: Push a new node onto the return array.
59535          nestedHeadingList.push({
59536            heading,
59537            children: null
59538          });
59539        }
59540      }
59541    });
59542    return nestedHeadingList;
59543  }
59544  
59545  // EXTERNAL MODULE: ./node_modules/fast-deep-equal/es6/index.js
59546  var es6 = __webpack_require__(7734);
59547  var es6_default = /*#__PURE__*/__webpack_require__.n(es6);
59548  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table-of-contents/hooks.js
59549  /**
59550   * External dependencies
59551   */
59552  
59553  
59554  /**
59555   * WordPress dependencies
59556   */
59557  
59558  
59559  
59560  
59561  
59562  function getLatestHeadings(select, clientId) {
59563    var _select$getPermalink, _getBlockAttributes;
59564    const {
59565      getBlockAttributes,
59566      getBlockName,
59567      getClientIdsWithDescendants,
59568      getBlocksByName
59569    } = select(external_wp_blockEditor_namespaceObject.store);
59570  
59571    // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
59572    // Blocks can be loaded into a *non-post* block editor, so to avoid
59573    // declaring @wordpress/editor as a dependency, we must access its
59574    // store by string. When the store is not available, editorSelectors
59575    // will be null, and the block's saved markup will lack permalinks.
59576    // eslint-disable-next-line @wordpress/data-no-store-string-literals
59577    const permalink = (_select$getPermalink = select('core/editor').getPermalink()) !== null && _select$getPermalink !== void 0 ? _select$getPermalink : null;
59578    const isPaginated = getBlocksByName('core/nextpage').length !== 0;
59579    const {
59580      onlyIncludeCurrentPage
59581    } = (_getBlockAttributes = getBlockAttributes(clientId)) !== null && _getBlockAttributes !== void 0 ? _getBlockAttributes : {};
59582  
59583    // Get the client ids of all blocks in the editor.
59584    const allBlockClientIds = getClientIdsWithDescendants();
59585  
59586    // If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.
59587    let tocPage = 1;
59588    if (isPaginated && onlyIncludeCurrentPage) {
59589      // We can't use getBlockIndex because it only returns the index
59590      // relative to sibling blocks.
59591      const tocIndex = allBlockClientIds.indexOf(clientId);
59592      for (const [blockIndex, blockClientId] of allBlockClientIds.entries()) {
59593        // If we've reached blocks after the Table of Contents, we've
59594        // finished calculating which page the block is on.
59595        if (blockIndex >= tocIndex) {
59596          break;
59597        }
59598        if (getBlockName(blockClientId) === 'core/nextpage') {
59599          tocPage++;
59600        }
59601      }
59602    }
59603    const latestHeadings = [];
59604  
59605    /** The page (of a paginated post) a heading will be part of. */
59606    let headingPage = 1;
59607    let headingPageLink = null;
59608  
59609    // If the core/editor store is available, we can add permalinks to the
59610    // generated table of contents.
59611    if (typeof permalink === 'string') {
59612      headingPageLink = isPaginated ? (0,external_wp_url_namespaceObject.addQueryArgs)(permalink, {
59613        page: headingPage
59614      }) : permalink;
59615    }
59616    for (const blockClientId of allBlockClientIds) {
59617      const blockName = getBlockName(blockClientId);
59618      if (blockName === 'core/nextpage') {
59619        headingPage++;
59620  
59621        // If we're only including headings from the current page (of
59622        // a paginated post), then exit the loop if we've reached the
59623        // pages after the one with the Table of Contents block.
59624        if (onlyIncludeCurrentPage && headingPage > tocPage) {
59625          break;
59626        }
59627        if (typeof permalink === 'string') {
59628          headingPageLink = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(permalink, ['page']), {
59629            page: headingPage
59630          });
59631        }
59632      }
59633      // If we're including all headings or we've reached headings on
59634      // the same page as the Table of Contents block, add them to the
59635      // list.
59636      else if (!onlyIncludeCurrentPage || headingPage === tocPage) {
59637        if (blockName === 'core/heading') {
59638          const headingAttributes = getBlockAttributes(blockClientId);
59639          const canBeLinked = typeof headingPageLink === 'string' && typeof headingAttributes.anchor === 'string' && headingAttributes.anchor !== '';
59640          latestHeadings.push({
59641            // Convert line breaks to spaces, and get rid of HTML tags in the headings.
59642            content: (0,external_wp_dom_namespaceObject.__unstableStripHTML)(headingAttributes.content.replace(/(<br *\/?>)+/g, ' ')),
59643            level: headingAttributes.level,
59644            link: canBeLinked ? `$headingPageLink}#${headingAttributes.anchor}` : null
59645          });
59646        }
59647      }
59648    }
59649    return latestHeadings;
59650  }
59651  function observeCallback(select, dispatch, clientId) {
59652    const {
59653      getBlockAttributes
59654    } = select(external_wp_blockEditor_namespaceObject.store);
59655    const {
59656      updateBlockAttributes,
59657      __unstableMarkNextChangeAsNotPersistent
59658    } = dispatch(external_wp_blockEditor_namespaceObject.store);
59659  
59660    /**
59661     * If the block no longer exists in the store, skip the update.
59662     * The "undo" action recreates the block and provides a new `clientId`.
59663     * The hook still might be observing the changes while the old block unmounts.
59664     */
59665    const attributes = getBlockAttributes(clientId);
59666    if (attributes === null) {
59667      return;
59668    }
59669    const headings = getLatestHeadings(select, clientId);
59670    if (!es6_default()(headings, attributes.headings)) {
59671      __unstableMarkNextChangeAsNotPersistent();
59672      updateBlockAttributes(clientId, {
59673        headings
59674      });
59675    }
59676  }
59677  function useObserveHeadings(clientId) {
59678    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
59679    (0,external_wp_element_namespaceObject.useEffect)(() => {
59680      // Todo: Limit subscription to block editor store when data no longer depends on `getPermalink`.
59681      // See: https://github.com/WordPress/gutenberg/pull/45513
59682      return registry.subscribe(() => observeCallback(registry.select, registry.dispatch, clientId));
59683    }, [registry, clientId]);
59684  }
59685  
59686  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table-of-contents/edit.js
59687  /**
59688   * WordPress dependencies
59689   */
59690  
59691  
59692  
59693  
59694  
59695  
59696  
59697  
59698  
59699  
59700  /**
59701   * Internal dependencies
59702   */
59703  
59704  
59705  
59706  
59707  /** @typedef {import('./utils').HeadingData} HeadingData */
59708  
59709  /**
59710   * Table of Contents block edit component.
59711   *
59712   * @param {Object}                       props                                   The props.
59713   * @param {Object}                       props.attributes                        The block attributes.
59714   * @param {HeadingData[]}                props.attributes.headings               A list of data for each heading in the post.
59715   * @param {boolean}                      props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).
59716   * @param {string}                       props.clientId
59717   * @param {(attributes: Object) => void} props.setAttributes
59718   *
59719   * @return {Component} The component.
59720   */
59721  
59722  
59723  
59724  function TableOfContentsEdit({
59725    attributes: {
59726      headings = [],
59727      onlyIncludeCurrentPage
59728    },
59729    clientId,
59730    setAttributes
59731  }) {
59732    useObserveHeadings(clientId);
59733    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
59734    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(TableOfContentsEdit, 'table-of-contents');
59735  
59736    // If a user clicks to a link prevent redirection and show a warning.
59737    const {
59738      createWarningNotice,
59739      removeNotice
59740    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
59741    let noticeId;
59742    const showRedirectionPreventedNotice = event => {
59743      event.preventDefault();
59744      // Remove previous warning if any, to show one at a time per block.
59745      removeNotice(noticeId);
59746      noticeId = `block-library/core/table-of-contents/redirection-prevented/$instanceId}`;
59747      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('Links are disabled in the editor.'), {
59748        id: noticeId,
59749        type: 'snackbar'
59750      });
59751    };
59752    const canInsertList = (0,external_wp_data_namespaceObject.useSelect)(select => {
59753      const {
59754        getBlockRootClientId,
59755        canInsertBlockType
59756      } = select(external_wp_blockEditor_namespaceObject.store);
59757      const rootClientId = getBlockRootClientId(clientId);
59758      return canInsertBlockType('core/list', rootClientId);
59759    }, [clientId]);
59760    const {
59761      replaceBlocks
59762    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
59763    const headingTree = linearToNestedHeadingList(headings);
59764    const toolbarControls = canInsertList && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
59765      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
59766        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
59767          onClick: () => replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
59768            ordered: true,
59769            values: (0,external_wp_element_namespaceObject.renderToString)( /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
59770              nestedHeadingList: headingTree
59771            }))
59772          })),
59773          children: (0,external_wp_i18n_namespaceObject.__)('Convert to static list')
59774        })
59775      })
59776    });
59777    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
59778      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
59779        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
59780        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
59781          __nextHasNoMarginBottom: true,
59782          label: (0,external_wp_i18n_namespaceObject.__)('Only include current page'),
59783          checked: onlyIncludeCurrentPage,
59784          onChange: value => setAttributes({
59785            onlyIncludeCurrentPage: value
59786          }),
59787          help: onlyIncludeCurrentPage ? (0,external_wp_i18n_namespaceObject.__)('Only including headings from the current page (if the post is paginated).') : (0,external_wp_i18n_namespaceObject.__)('Toggle to only include headings from the current page (if the post is paginated).')
59788        })
59789      })
59790    });
59791  
59792    // If there are no headings or the only heading is empty.
59793    // Note that the toolbar controls are intentionally omitted since the
59794    // "Convert to static list" option is useless to the placeholder state.
59795    if (headings.length === 0) {
59796      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
59797        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
59798          ...blockProps,
59799          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
59800            icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
59801              icon: table_of_contents
59802            }),
59803            label: (0,external_wp_i18n_namespaceObject.__)('Table of Contents'),
59804            instructions: (0,external_wp_i18n_namespaceObject.__)('Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.')
59805          })
59806        }), inspectorControls]
59807      });
59808    }
59809    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
59810      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
59811        ...blockProps,
59812        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
59813          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
59814            nestedHeadingList: headingTree,
59815            disableLinkActivation: true,
59816            onClick: showRedirectionPreventedNotice
59817          })
59818        })
59819      }), toolbarControls, inspectorControls]
59820    });
59821  }
59822  
59823  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table-of-contents/save.js
59824  /**
59825   * WordPress dependencies
59826   */
59827  
59828  
59829  /**
59830   * Internal dependencies
59831   */
59832  
59833  
59834  
59835  function table_of_contents_save_save({
59836    attributes: {
59837      headings = []
59838    }
59839  }) {
59840    if (headings.length === 0) {
59841      return null;
59842    }
59843    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
59844      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59845      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
59846        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
59847          nestedHeadingList: linearToNestedHeadingList(headings)
59848        })
59849      })
59850    });
59851  }
59852  
59853  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table-of-contents/index.js
59854  /**
59855   * WordPress dependencies
59856   */
59857  
59858  
59859  /**
59860   * Internal dependencies
59861   */
59862  
59863  const table_of_contents_metadata = {
59864    $schema: "https://schemas.wp.org/trunk/block.json",
59865    apiVersion: 3,
59866    __experimental: true,
59867    name: "core/table-of-contents",
59868    title: "Table of Contents",
59869    category: "design",
59870    description: "Summarize your post with a list of headings. Add HTML anchors to Heading blocks to link them here.",
59871    keywords: ["document outline", "summary"],
59872    textdomain: "default",
59873    attributes: {
59874      headings: {
59875        type: "array",
59876        items: {
59877          type: "object"
59878        },
59879        "default": []
59880      },
59881      onlyIncludeCurrentPage: {
59882        type: "boolean",
59883        "default": false
59884      }
59885    },
59886    supports: {
59887      html: false,
59888      color: {
59889        text: true,
59890        background: true,
59891        gradients: true,
59892        link: true
59893      },
59894      spacing: {
59895        margin: true,
59896        padding: true
59897      },
59898      typography: {
59899        fontSize: true,
59900        lineHeight: true,
59901        __experimentalFontFamily: true,
59902        __experimentalFontWeight: true,
59903        __experimentalFontStyle: true,
59904        __experimentalTextTransform: true,
59905        __experimentalTextDecoration: true,
59906        __experimentalLetterSpacing: true,
59907        __experimentalDefaultControls: {
59908          fontSize: true
59909        }
59910      },
59911      interactivity: {
59912        clientNavigation: true
59913      },
59914      __experimentalBorder: {
59915        radius: true,
59916        color: true,
59917        width: true,
59918        style: true,
59919        __experimentalDefaultControls: {
59920          radius: true,
59921          color: true,
59922          width: true,
59923          style: true
59924        }
59925      }
59926    },
59927    example: {},
59928    style: "wp-block-table-of-contents"
59929  };
59930  
59931  
59932  const {
59933    name: table_of_contents_name
59934  } = table_of_contents_metadata;
59935  
59936  const table_of_contents_settings = {
59937    icon: table_of_contents,
59938    edit: TableOfContentsEdit,
59939    save: table_of_contents_save_save
59940  };
59941  const table_of_contents_init = () => initBlock({
59942    name: table_of_contents_name,
59943    metadata: table_of_contents_metadata,
59944    settings: table_of_contents_settings
59945  });
59946  
59947  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/transforms.js
59948  /**
59949   * WordPress dependencies
59950   */
59951  
59952  const tag_cloud_transforms_transforms = {
59953    from: [{
59954      type: 'block',
59955      blocks: ['core/categories'],
59956      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/tag-cloud')
59957    }],
59958    to: [{
59959      type: 'block',
59960      blocks: ['core/categories'],
59961      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/categories')
59962    }]
59963  };
59964  /* harmony default export */ const tag_cloud_transforms = (tag_cloud_transforms_transforms);
59965  
59966  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js
59967  /**
59968   * WordPress dependencies
59969   */
59970  
59971  
59972  
59973  
59974  
59975  
59976  
59977  /**
59978   * Minimum number of tags a user can show using this block.
59979   *
59980   * @type {number}
59981   */
59982  
59983  
59984  
59985  const MIN_TAGS = 1;
59986  
59987  /**
59988   * Maximum number of tags a user can show using this block.
59989   *
59990   * @type {number}
59991   */
59992  const MAX_TAGS = 100;
59993  const MIN_FONT_SIZE = 0.1;
59994  const MAX_FONT_SIZE = 100;
59995  function TagCloudEdit({
59996    attributes,
59997    setAttributes
59998  }) {
59999    const {
60000      taxonomy,
60001      showTagCounts,
60002      numberOfTags,
60003      smallestFontSize,
60004      largestFontSize
60005    } = attributes;
60006    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
60007  
60008    // The `pt` unit is used as the default value and is therefore
60009    // always considered an available unit.
60010    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
60011      availableUnits: availableUnits ? [...availableUnits, 'pt'] : ['%', 'px', 'em', 'rem', 'pt']
60012    });
60013    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getTaxonomies({
60014      per_page: -1
60015    }), []);
60016    const getTaxonomyOptions = () => {
60017      const selectOption = {
60018        label: (0,external_wp_i18n_namespaceObject.__)('- Select -'),
60019        value: '',
60020        disabled: true
60021      };
60022      const taxonomyOptions = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(tax => !!tax.show_cloud).map(item => {
60023        return {
60024          value: item.slug,
60025          label: item.name
60026        };
60027      });
60028      return [selectOption, ...taxonomyOptions];
60029    };
60030    const onFontSizeChange = (fontSizeLabel, newValue) => {
60031      // eslint-disable-next-line @wordpress/no-unused-vars-before-return
60032      const [quantity, newUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(newValue);
60033      if (!Number.isFinite(quantity)) {
60034        return;
60035      }
60036      const updateObj = {
60037        [fontSizeLabel]: newValue
60038      };
60039      // We need to keep in sync the `unit` changes to both `smallestFontSize`
60040      // and `largestFontSize` attributes.
60041      Object.entries({
60042        smallestFontSize,
60043        largestFontSize
60044      }).forEach(([attribute, currentValue]) => {
60045        const [currentQuantity, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue);
60046        // Only add an update if the other font size attribute has a different unit.
60047        if (attribute !== fontSizeLabel && currentUnit !== newUnit) {
60048          updateObj[attribute] = `$currentQuantity}$newUnit}`;
60049        }
60050      });
60051      setAttributes(updateObj);
60052    };
60053  
60054    // Remove border styles from the server-side attributes to prevent duplicate border.
60055    const serverSideAttributes = {
60056      ...attributes,
60057      style: {
60058        ...attributes?.style,
60059        border: undefined
60060      }
60061    };
60062    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
60063      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
60064        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
60065        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
60066          spacing: 4,
60067          className: "wp-block-tag-cloud__inspector-settings",
60068          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
60069            __nextHasNoMarginBottom: true,
60070            __next40pxDefaultSize: true,
60071            label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
60072            options: getTaxonomyOptions(),
60073            value: taxonomy,
60074            onChange: selectedTaxonomy => setAttributes({
60075              taxonomy: selectedTaxonomy
60076            })
60077          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
60078            gap: 4,
60079            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
60080              isBlock: true,
60081              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
60082                label: (0,external_wp_i18n_namespaceObject.__)('Smallest size'),
60083                value: smallestFontSize,
60084                onChange: value => {
60085                  onFontSizeChange('smallestFontSize', value);
60086                },
60087                units: units,
60088                min: MIN_FONT_SIZE,
60089                max: MAX_FONT_SIZE,
60090                size: "__unstable-large"
60091              })
60092            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
60093              isBlock: true,
60094              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
60095                label: (0,external_wp_i18n_namespaceObject.__)('Largest size'),
60096                value: largestFontSize,
60097                onChange: value => {
60098                  onFontSizeChange('largestFontSize', value);
60099                },
60100                units: units,
60101                min: MIN_FONT_SIZE,
60102                max: MAX_FONT_SIZE,
60103                size: "__unstable-large"
60104              })
60105            })]
60106          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
60107            __nextHasNoMarginBottom: true,
60108            __next40pxDefaultSize: true,
60109            label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
60110            value: numberOfTags,
60111            onChange: value => setAttributes({
60112              numberOfTags: value
60113            }),
60114            min: MIN_TAGS,
60115            max: MAX_TAGS,
60116            required: true
60117          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60118            __nextHasNoMarginBottom: true,
60119            label: (0,external_wp_i18n_namespaceObject.__)('Show tag counts'),
60120            checked: showTagCounts,
60121            onChange: () => setAttributes({
60122              showTagCounts: !showTagCounts
60123            })
60124          })]
60125        })
60126      })
60127    });
60128    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
60129      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
60130        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
60131        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
60132          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
60133            skipBlockSupportAttributes: true,
60134            block: "core/tag-cloud",
60135            attributes: serverSideAttributes
60136          })
60137        })
60138      })]
60139    });
60140  }
60141  /* harmony default export */ const tag_cloud_edit = (TagCloudEdit);
60142  
60143  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
60144  /**
60145   * WordPress dependencies
60146   */
60147  
60148  
60149  /**
60150   * Internal dependencies
60151   */
60152  
60153  
60154  const tag_cloud_metadata = {
60155    $schema: "https://schemas.wp.org/trunk/block.json",
60156    apiVersion: 3,
60157    name: "core/tag-cloud",
60158    title: "Tag Cloud",
60159    category: "widgets",
60160    description: "A cloud of popular keywords, each sized by how often it appears.",
60161    textdomain: "default",
60162    attributes: {
60163      numberOfTags: {
60164        type: "number",
60165        "default": 45,
60166        minimum: 1,
60167        maximum: 100
60168      },
60169      taxonomy: {
60170        type: "string",
60171        "default": "post_tag"
60172      },
60173      showTagCounts: {
60174        type: "boolean",
60175        "default": false
60176      },
60177      smallestFontSize: {
60178        type: "string",
60179        "default": "8pt"
60180      },
60181      largestFontSize: {
60182        type: "string",
60183        "default": "22pt"
60184      }
60185    },
60186    styles: [{
60187      name: "default",
60188      label: "Default",
60189      isDefault: true
60190    }, {
60191      name: "outline",
60192      label: "Outline"
60193    }],
60194    supports: {
60195      html: false,
60196      align: true,
60197      spacing: {
60198        margin: true,
60199        padding: true
60200      },
60201      typography: {
60202        lineHeight: true,
60203        __experimentalFontFamily: true,
60204        __experimentalFontWeight: true,
60205        __experimentalFontStyle: true,
60206        __experimentalTextTransform: true,
60207        __experimentalLetterSpacing: true
60208      },
60209      interactivity: {
60210        clientNavigation: true
60211      },
60212      __experimentalBorder: {
60213        radius: true,
60214        color: true,
60215        width: true,
60216        style: true,
60217        __experimentalDefaultControls: {
60218          radius: true,
60219          color: true,
60220          width: true,
60221          style: true
60222        }
60223      }
60224    },
60225    editorStyle: "wp-block-tag-cloud-editor"
60226  };
60227  
60228  const {
60229    name: tag_cloud_name
60230  } = tag_cloud_metadata;
60231  
60232  const tag_cloud_settings = {
60233    icon: library_tag,
60234    example: {},
60235    edit: tag_cloud_edit,
60236    transforms: tag_cloud_transforms
60237  };
60238  const tag_cloud_init = () => initBlock({
60239    name: tag_cloud_name,
60240    metadata: tag_cloud_metadata,
60241    settings: tag_cloud_settings
60242  });
60243  
60244  ;// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.mjs
60245  /******************************************************************************
60246  Copyright (c) Microsoft Corporation.
60247  
60248  Permission to use, copy, modify, and/or distribute this software for any
60249  purpose with or without fee is hereby granted.
60250  
60251  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
60252  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
60253  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
60254  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
60255  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
60256  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
60257  PERFORMANCE OF THIS SOFTWARE.
60258  ***************************************************************************** */
60259  /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
60260  
60261  var extendStatics = function(d, b) {
60262    extendStatics = Object.setPrototypeOf ||
60263        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
60264        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
60265    return extendStatics(d, b);
60266  };
60267  
60268  function __extends(d, b) {
60269    if (typeof b !== "function" && b !== null)
60270        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
60271    extendStatics(d, b);
60272    function __() { this.constructor = d; }
60273    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
60274  }
60275  
60276  var __assign = function() {
60277    __assign = Object.assign || function __assign(t) {
60278        for (var s, i = 1, n = arguments.length; i < n; i++) {
60279            s = arguments[i];
60280            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
60281        }
60282        return t;
60283    }
60284    return __assign.apply(this, arguments);
60285  }
60286  
60287  function __rest(s, e) {
60288    var t = {};
60289    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
60290        t[p] = s[p];
60291    if (s != null && typeof Object.getOwnPropertySymbols === "function")
60292        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
60293            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
60294                t[p[i]] = s[p[i]];
60295        }
60296    return t;
60297  }
60298  
60299  function __decorate(decorators, target, key, desc) {
60300    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
60301    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
60302    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
60303    return c > 3 && r && Object.defineProperty(target, key, r), r;
60304  }
60305  
60306  function __param(paramIndex, decorator) {
60307    return function (target, key) { decorator(target, key, paramIndex); }
60308  }
60309  
60310  function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
60311    function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
60312    var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
60313    var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
60314    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
60315    var _, done = false;
60316    for (var i = decorators.length - 1; i >= 0; i--) {
60317        var context = {};
60318        for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
60319        for (var p in contextIn.access) context.access[p] = contextIn.access[p];
60320        context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
60321        var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
60322        if (kind === "accessor") {
60323            if (result === void 0) continue;
60324            if (result === null || typeof result !== "object") throw new TypeError("Object expected");
60325            if (_ = accept(result.get)) descriptor.get = _;
60326            if (_ = accept(result.set)) descriptor.set = _;
60327            if (_ = accept(result.init)) initializers.unshift(_);
60328        }
60329        else if (_ = accept(result)) {
60330            if (kind === "field") initializers.unshift(_);
60331            else descriptor[key] = _;
60332        }
60333    }
60334    if (target) Object.defineProperty(target, contextIn.name, descriptor);
60335    done = true;
60336  };
60337  
60338  function __runInitializers(thisArg, initializers, value) {
60339    var useValue = arguments.length > 2;
60340    for (var i = 0; i < initializers.length; i++) {
60341        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
60342    }
60343    return useValue ? value : void 0;
60344  };
60345  
60346  function __propKey(x) {
60347    return typeof x === "symbol" ? x : "".concat(x);
60348  };
60349  
60350  function __setFunctionName(f, name, prefix) {
60351    if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
60352    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
60353  };
60354  
60355  function __metadata(metadataKey, metadataValue) {
60356    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
60357  }
60358  
60359  function __awaiter(thisArg, _arguments, P, generator) {
60360    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
60361    return new (P || (P = Promise))(function (resolve, reject) {
60362        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
60363        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
60364        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
60365        step((generator = generator.apply(thisArg, _arguments || [])).next());
60366    });
60367  }
60368  
60369  function __generator(thisArg, body) {
60370    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
60371    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
60372    function verb(n) { return function (v) { return step([n, v]); }; }
60373    function step(op) {
60374        if (f) throw new TypeError("Generator is already executing.");
60375        while (g && (g = 0, op[0] && (_ = 0)), _) try {
60376            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
60377            if (y = 0, t) op = [op[0] & 2, t.value];
60378            switch (op[0]) {
60379                case 0: case 1: t = op; break;
60380                case 4: _.label++; return { value: op[1], done: false };
60381                case 5: _.label++; y = op[1]; op = [0]; continue;
60382                case 7: op = _.ops.pop(); _.trys.pop(); continue;
60383                default:
60384                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60385                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
60386                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
60387                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
60388                    if (t[2]) _.ops.pop();
60389                    _.trys.pop(); continue;
60390            }
60391            op = body.call(thisArg, _);
60392        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
60393        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
60394    }
60395  }
60396  
60397  var __createBinding = Object.create ? (function(o, m, k, k2) {
60398    if (k2 === undefined) k2 = k;
60399    var desc = Object.getOwnPropertyDescriptor(m, k);
60400    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
60401        desc = { enumerable: true, get: function() { return m[k]; } };
60402    }
60403    Object.defineProperty(o, k2, desc);
60404  }) : (function(o, m, k, k2) {
60405    if (k2 === undefined) k2 = k;
60406    o[k2] = m[k];
60407  });
60408  
60409  function __exportStar(m, o) {
60410    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
60411  }
60412  
60413  function __values(o) {
60414    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
60415    if (m) return m.call(o);
60416    if (o && typeof o.length === "number") return {
60417        next: function () {
60418            if (o && i >= o.length) o = void 0;
60419            return { value: o && o[i++], done: !o };
60420        }
60421    };
60422    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
60423  }
60424  
60425  function __read(o, n) {
60426    var m = typeof Symbol === "function" && o[Symbol.iterator];
60427    if (!m) return o;
60428    var i = m.call(o), r, ar = [], e;
60429    try {
60430        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
60431    }
60432    catch (error) { e = { error: error }; }
60433    finally {
60434        try {
60435            if (r && !r.done && (m = i["return"])) m.call(i);
60436        }
60437        finally { if (e) throw e.error; }
60438    }
60439    return ar;
60440  }
60441  
60442  /** @deprecated */
60443  function __spread() {
60444    for (var ar = [], i = 0; i < arguments.length; i++)
60445        ar = ar.concat(__read(arguments[i]));
60446    return ar;
60447  }
60448  
60449  /** @deprecated */
60450  function __spreadArrays() {
60451    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
60452    for (var r = Array(s), k = 0, i = 0; i < il; i++)
60453        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
60454            r[k] = a[j];
60455    return r;
60456  }
60457  
60458  function __spreadArray(to, from, pack) {
60459    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
60460        if (ar || !(i in from)) {
60461            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
60462            ar[i] = from[i];
60463        }
60464    }
60465    return to.concat(ar || Array.prototype.slice.call(from));
60466  }
60467  
60468  function __await(v) {
60469    return this instanceof __await ? (this.v = v, this) : new __await(v);
60470  }
60471  
60472  function __asyncGenerator(thisArg, _arguments, generator) {
60473    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
60474    var g = generator.apply(thisArg, _arguments || []), i, q = [];
60475    return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
60476    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
60477    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
60478    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
60479    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
60480    function fulfill(value) { resume("next", value); }
60481    function reject(value) { resume("throw", value); }
60482    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
60483  }
60484  
60485  function __asyncDelegator(o) {
60486    var i, p;
60487    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
60488    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
60489  }
60490  
60491  function __asyncValues(o) {
60492    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
60493    var m = o[Symbol.asyncIterator], i;
60494    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
60495    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
60496    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
60497  }
60498  
60499  function __makeTemplateObject(cooked, raw) {
60500    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
60501    return cooked;
60502  };
60503  
60504  var __setModuleDefault = Object.create ? (function(o, v) {
60505    Object.defineProperty(o, "default", { enumerable: true, value: v });
60506  }) : function(o, v) {
60507    o["default"] = v;
60508  };
60509  
60510  function __importStar(mod) {
60511    if (mod && mod.__esModule) return mod;
60512    var result = {};
60513    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
60514    __setModuleDefault(result, mod);
60515    return result;
60516  }
60517  
60518  function __importDefault(mod) {
60519    return (mod && mod.__esModule) ? mod : { default: mod };
60520  }
60521  
60522  function __classPrivateFieldGet(receiver, state, kind, f) {
60523    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
60524    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
60525    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
60526  }
60527  
60528  function __classPrivateFieldSet(receiver, state, value, kind, f) {
60529    if (kind === "m") throw new TypeError("Private method is not writable");
60530    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
60531    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
60532    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
60533  }
60534  
60535  function __classPrivateFieldIn(state, receiver) {
60536    if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
60537    return typeof state === "function" ? receiver === state : state.has(receiver);
60538  }
60539  
60540  function __addDisposableResource(env, value, async) {
60541    if (value !== null && value !== void 0) {
60542      if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
60543      var dispose, inner;
60544      if (async) {
60545        if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
60546        dispose = value[Symbol.asyncDispose];
60547      }
60548      if (dispose === void 0) {
60549        if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
60550        dispose = value[Symbol.dispose];
60551        if (async) inner = dispose;
60552      }
60553      if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
60554      if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
60555      env.stack.push({ value: value, dispose: dispose, async: async });
60556    }
60557    else if (async) {
60558      env.stack.push({ async: true });
60559    }
60560    return value;
60561  }
60562  
60563  var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
60564    var e = new Error(message);
60565    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
60566  };
60567  
60568  function __disposeResources(env) {
60569    function fail(e) {
60570      env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
60571      env.hasError = true;
60572    }
60573    var r, s = 0;
60574    function next() {
60575      while (r = env.stack.pop()) {
60576        try {
60577          if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
60578          if (r.dispose) {
60579            var result = r.dispose.call(r.value);
60580            if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
60581          }
60582          else s |= 1;
60583        }
60584        catch (e) {
60585          fail(e);
60586        }
60587      }
60588      if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
60589      if (env.hasError) throw env.error;
60590    }
60591    return next();
60592  }
60593  
60594  /* harmony default export */ const tslib_es6 = ({
60595    __extends,
60596    __assign,
60597    __rest,
60598    __decorate,
60599    __param,
60600    __metadata,
60601    __awaiter,
60602    __generator,
60603    __createBinding,
60604    __exportStar,
60605    __values,
60606    __read,
60607    __spread,
60608    __spreadArrays,
60609    __spreadArray,
60610    __await,
60611    __asyncGenerator,
60612    __asyncDelegator,
60613    __asyncValues,
60614    __makeTemplateObject,
60615    __importStar,
60616    __importDefault,
60617    __classPrivateFieldGet,
60618    __classPrivateFieldSet,
60619    __classPrivateFieldIn,
60620    __addDisposableResource,
60621    __disposeResources,
60622  });
60623  
60624  ;// CONCATENATED MODULE: ./node_modules/lower-case/dist.es2015/index.js
60625  /**
60626   * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
60627   */
60628  var SUPPORTED_LOCALE = {
60629      tr: {
60630          regexp: /\u0130|\u0049|\u0049\u0307/g,
60631          map: {
60632              İ: "\u0069",
60633              I: "\u0131",
60634              İ: "\u0069",
60635          },
60636      },
60637      az: {
60638          regexp: /\u0130/g,
60639          map: {
60640              İ: "\u0069",
60641              I: "\u0131",
60642              İ: "\u0069",
60643          },
60644      },
60645      lt: {
60646          regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g,
60647          map: {
60648              I: "\u0069\u0307",
60649              J: "\u006A\u0307",
60650              Į: "\u012F\u0307",
60651              Ì: "\u0069\u0307\u0300",
60652              Í: "\u0069\u0307\u0301",
60653              Ĩ: "\u0069\u0307\u0303",
60654          },
60655      },
60656  };
60657  /**
60658   * Localized lower case.
60659   */
60660  function localeLowerCase(str, locale) {
60661      var lang = SUPPORTED_LOCALE[locale.toLowerCase()];
60662      if (lang)
60663          return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));
60664      return lowerCase(str);
60665  }
60666  /**
60667   * Lower case as a function.
60668   */
60669  function lowerCase(str) {
60670      return str.toLowerCase();
60671  }
60672  
60673  ;// CONCATENATED MODULE: ./node_modules/no-case/dist.es2015/index.js
60674  
60675  // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
60676  var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
60677  // Remove all non-word characters.
60678  var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
60679  /**
60680   * Normalize the string into something other libraries can manipulate easier.
60681   */
60682  function noCase(input, options) {
60683      if (options === void 0) { options = {}; }
60684      var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d;
60685      var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
60686      var start = 0;
60687      var end = result.length;
60688      // Trim the delimiter from around the output string.
60689      while (result.charAt(start) === "\0")
60690          start++;
60691      while (result.charAt(end - 1) === "\0")
60692          end--;
60693      // Transform each token independently.
60694      return result.slice(start, end).split("\0").map(transform).join(delimiter);
60695  }
60696  /**
60697   * Replace `re` in the input string with the replacement value.
60698   */
60699  function replace(input, re, value) {
60700      if (re instanceof RegExp)
60701          return input.replace(re, value);
60702      return re.reduce(function (input, re) { return input.replace(re, value); }, input);
60703  }
60704  
60705  ;// CONCATENATED MODULE: ./node_modules/upper-case-first/dist.es2015/index.js
60706  /**
60707   * Upper case the first character of an input string.
60708   */
60709  function upperCaseFirst(input) {
60710      return input.charAt(0).toUpperCase() + input.substr(1);
60711  }
60712  
60713  ;// CONCATENATED MODULE: ./node_modules/capital-case/dist.es2015/index.js
60714  
60715  
60716  
60717  function capitalCaseTransform(input) {
60718      return upperCaseFirst(input.toLowerCase());
60719  }
60720  function capitalCase(input, options) {
60721      if (options === void 0) { options = {}; }
60722      return noCase(input, __assign({ delimiter: " ", transform: capitalCaseTransform }, options));
60723  }
60724  
60725  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js
60726  /**
60727   * WordPress dependencies
60728   */
60729  
60730  
60731  const symbolFilled = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60732    xmlns: "http://www.w3.org/2000/svg",
60733    viewBox: "0 0 24 24",
60734    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60735      d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
60736    })
60737  });
60738  /* harmony default export */ const symbol_filled = (symbolFilled);
60739  
60740  ;// CONCATENATED MODULE: ./node_modules/dot-case/dist.es2015/index.js
60741  
60742  
60743  function dotCase(input, options) {
60744      if (options === void 0) { options = {}; }
60745      return noCase(input, __assign({ delimiter: "." }, options));
60746  }
60747  
60748  ;// CONCATENATED MODULE: ./node_modules/param-case/dist.es2015/index.js
60749  
60750  
60751  function paramCase(input, options) {
60752      if (options === void 0) { options = {}; }
60753      return dotCase(input, __assign({ delimiter: "-" }, options));
60754  }
60755  
60756  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/hooks.js
60757  /**
60758   * External dependencies
60759   */
60760  
60761  
60762  /**
60763   * WordPress dependencies
60764   */
60765  
60766  
60767  
60768  
60769  
60770  
60771  
60772  /**
60773   * Internal dependencies
60774   */
60775  
60776  
60777  /**
60778   * Retrieves the available template parts for the given area.
60779   *
60780   * @param {string} area       Template part area.
60781   * @param {string} excludedId Template part ID to exclude.
60782   *
60783   * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.
60784   */
60785  function useAlternativeTemplateParts(area, excludedId) {
60786    const {
60787      templateParts,
60788      isResolving
60789    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
60790      const {
60791        getEntityRecords,
60792        isResolving: _isResolving
60793      } = select(external_wp_coreData_namespaceObject.store);
60794      const query = {
60795        per_page: -1
60796      };
60797      return {
60798        templateParts: getEntityRecords('postType', 'wp_template_part', query),
60799        isResolving: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
60800      };
60801    }, []);
60802    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
60803      if (!templateParts) {
60804        return [];
60805      }
60806      return templateParts.filter(templatePart => createTemplatePartId(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || [];
60807    }, [templateParts, area, excludedId]);
60808    return {
60809      templateParts: filteredTemplateParts,
60810      isResolving
60811    };
60812  }
60813  
60814  /**
60815   * Retrieves the available block patterns for the given area.
60816   *
60817   * @param {string} area     Template part area.
60818   * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).
60819   *
60820   * @return {Array} array of block patterns.
60821   */
60822  function useAlternativeBlockPatterns(area, clientId) {
60823    return (0,external_wp_data_namespaceObject.useSelect)(select => {
60824      const blockNameWithArea = area ? `core/template-part/$area}` : 'core/template-part';
60825      const {
60826        getBlockRootClientId,
60827        getPatternsByBlockTypes
60828      } = select(external_wp_blockEditor_namespaceObject.store);
60829      const rootClientId = getBlockRootClientId(clientId);
60830      return getPatternsByBlockTypes(blockNameWithArea, rootClientId);
60831    }, [area, clientId]);
60832  }
60833  function useCreateTemplatePartFromBlocks(area, setAttributes) {
60834    const {
60835      saveEntityRecord
60836    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
60837    return async (blocks = [], title = (0,external_wp_i18n_namespaceObject.__)('Untitled Template Part')) => {
60838      // Currently template parts only allow latin chars.
60839      // Fallback slug will receive suffix by default.
60840      const cleanSlug = paramCase(title).replace(/[^\w-]+/g, '') || 'wp-custom-part';
60841  
60842      // If we have `area` set from block attributes, means an exposed
60843      // block variation was inserted. So add this prop to the template
60844      // part entity on creation. Afterwards remove `area` value from
60845      // block attributes.
60846      const record = {
60847        title,
60848        slug: cleanSlug,
60849        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
60850        // `area` is filterable on the server and defaults to `UNCATEGORIZED`
60851        // if provided value is not allowed.
60852        area
60853      };
60854      const templatePart = await saveEntityRecord('postType', 'wp_template_part', record);
60855      setAttributes({
60856        slug: templatePart.slug,
60857        theme: templatePart.theme,
60858        area: undefined
60859      });
60860    };
60861  }
60862  
60863  /**
60864   * Retrieves the template part area object.
60865   *
60866   * @param {string} area Template part area identifier.
60867   *
60868   * @return {{icon: Object, label: string, tagName: string}} Template Part area.
60869   */
60870  function useTemplatePartArea(area) {
60871    return (0,external_wp_data_namespaceObject.useSelect)(select => {
60872      var _selectedArea$area_ta;
60873      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
60874      // Blocks can be loaded into a *non-post* block editor.
60875      /* eslint-disable @wordpress/data-no-store-string-literals */
60876      const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas();
60877      /* eslint-enable @wordpress/data-no-store-string-literals */
60878  
60879      const selectedArea = definedAreas.find(definedArea => definedArea.area === area);
60880      const defaultArea = definedAreas.find(definedArea => definedArea.area === 'uncategorized');
60881      return {
60882        icon: selectedArea?.icon || defaultArea?.icon,
60883        label: selectedArea?.label || (0,external_wp_i18n_namespaceObject.__)('Template Part'),
60884        tagName: (_selectedArea$area_ta = selectedArea?.area_tag) !== null && _selectedArea$area_ta !== void 0 ? _selectedArea$area_ta : 'div'
60885      };
60886    }, [area]);
60887  }
60888  
60889  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/title-modal.js
60890  /**
60891   * WordPress dependencies
60892   */
60893  
60894  
60895  
60896  
60897  
60898  function TitleModal({
60899    areaLabel,
60900    onClose,
60901    onSubmit
60902  }) {
60903    // Restructure onCreate to set the blocks on local state.
60904    // Add modal to confirm title and trigger onCreate.
60905    const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)('');
60906    const submitForCreation = event => {
60907      event.preventDefault();
60908      onSubmit(title);
60909    };
60910    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
60911      title: (0,external_wp_i18n_namespaceObject.sprintf)(
60912      // Translators: %s as template part area title ("Header", "Footer", etc.).
60913      (0,external_wp_i18n_namespaceObject.__)('Create new %s'), areaLabel.toLowerCase()),
60914      onRequestClose: onClose,
60915      focusOnMount: "firstContentElement",
60916      size: "small",
60917      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
60918        onSubmit: submitForCreation,
60919        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
60920          spacing: "5",
60921          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
60922            label: (0,external_wp_i18n_namespaceObject.__)('Name'),
60923            value: title,
60924            onChange: setTitle,
60925            placeholder: (0,external_wp_i18n_namespaceObject.__)('Custom Template Part'),
60926            __nextHasNoMarginBottom: true,
60927            __next40pxDefaultSize: true
60928          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
60929            justify: "right",
60930            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
60931              __next40pxDefaultSize: true,
60932              variant: "tertiary",
60933              onClick: () => {
60934                onClose();
60935                setTitle('');
60936              },
60937              children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
60938            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
60939              variant: "primary",
60940              type: "submit",
60941              accessibleWhenDisabled: true,
60942              disabled: !title.length,
60943              __next40pxDefaultSize: true,
60944              children: (0,external_wp_i18n_namespaceObject.__)('Create')
60945            })]
60946          })]
60947        })
60948      })
60949    });
60950  }
60951  
60952  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/placeholder.js
60953  /**
60954   * WordPress dependencies
60955   */
60956  
60957  
60958  
60959  
60960  
60961  
60962  /**
60963   * Internal dependencies
60964   */
60965  
60966  
60967  
60968  
60969  function TemplatePartPlaceholder({
60970    area,
60971    clientId,
60972    templatePartId,
60973    onOpenSelectionModal,
60974    setAttributes
60975  }) {
60976    const {
60977      templateParts,
60978      isResolving
60979    } = useAlternativeTemplateParts(area, templatePartId);
60980    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
60981    const {
60982      isBlockBasedTheme,
60983      canCreateTemplatePart
60984    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
60985      const {
60986        getCurrentTheme,
60987        canUser
60988      } = select(external_wp_coreData_namespaceObject.store);
60989      return {
60990        isBlockBasedTheme: getCurrentTheme()?.is_block_theme,
60991        canCreateTemplatePart: canUser('create', {
60992          kind: 'postType',
60993          name: 'wp_template_part'
60994        })
60995      };
60996    }, []);
60997    const [showTitleModal, setShowTitleModal] = (0,external_wp_element_namespaceObject.useState)(false);
60998    const areaObject = useTemplatePartArea(area);
60999    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
61000    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
61001      icon: areaObject.icon,
61002      label: areaObject.label,
61003      instructions: isBlockBasedTheme ? (0,external_wp_i18n_namespaceObject.sprintf)(
61004      // Translators: %s as template part area title ("Header", "Footer", etc.).
61005      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase()) : (0,external_wp_i18n_namespaceObject.sprintf)(
61006      // Translators: %s as template part area title ("Header", "Footer", etc.).
61007      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s.'), areaObject.label.toLowerCase()),
61008      children: [isResolving && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), !isResolving && !!(templateParts.length || blockPatterns.length) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
61009        __next40pxDefaultSize: true,
61010        variant: "primary",
61011        onClick: onOpenSelectionModal,
61012        children: (0,external_wp_i18n_namespaceObject.__)('Choose')
61013      }), !isResolving && isBlockBasedTheme && canCreateTemplatePart && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
61014        __next40pxDefaultSize: true,
61015        variant: "secondary",
61016        onClick: () => {
61017          setShowTitleModal(true);
61018        },
61019        children: (0,external_wp_i18n_namespaceObject.__)('Start blank')
61020      }), showTitleModal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TitleModal, {
61021        areaLabel: areaObject.label,
61022        onClose: () => setShowTitleModal(false),
61023        onSubmit: title => {
61024          createFromBlocks([], title);
61025        }
61026      })]
61027    });
61028  }
61029  
61030  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js
61031  /**
61032   * WordPress dependencies
61033   */
61034  
61035  
61036  /**
61037   * Internal dependencies
61038   */
61039  
61040  
61041  /**
61042   * This maps the properties of a template part to those of a block pattern.
61043   * @param {Object} templatePart
61044   * @return {Object} The template part in the shape of block pattern.
61045   */
61046  function mapTemplatePartToBlockPattern(templatePart) {
61047    return {
61048      name: createTemplatePartId(templatePart.theme, templatePart.slug),
61049      title: templatePart.title.rendered,
61050      blocks: (0,external_wp_blocks_namespaceObject.parse)(templatePart.content.raw),
61051      templatePart
61052    };
61053  }
61054  
61055  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/selection-modal.js
61056  /**
61057   * WordPress dependencies
61058   */
61059  
61060  
61061  
61062  
61063  
61064  
61065  
61066  
61067  /**
61068   * Internal dependencies
61069   */
61070  
61071  
61072  
61073  
61074  
61075  function TemplatePartSelectionModal({
61076    setAttributes,
61077    onClose,
61078    templatePartId = null,
61079    area,
61080    clientId
61081  }) {
61082    const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)('');
61083    const {
61084      templateParts
61085    } = useAlternativeTemplateParts(area, templatePartId);
61086  
61087    // We can map template parts to block patters to reuse the BlockPatternsList UI
61088    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
61089      const partsAsPatterns = templateParts.map(templatePart => mapTemplatePartToBlockPattern(templatePart));
61090      return searchPatterns(partsAsPatterns, searchValue);
61091    }, [templateParts, searchValue]);
61092    const shownTemplateParts = (0,external_wp_compose_namespaceObject.useAsyncList)(filteredTemplateParts);
61093    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
61094    const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
61095      return searchPatterns(blockPatterns, searchValue);
61096    }, [blockPatterns, searchValue]);
61097    const {
61098      createSuccessNotice
61099    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
61100    const onTemplatePartSelect = templatePart => {
61101      setAttributes({
61102        slug: templatePart.slug,
61103        theme: templatePart.theme,
61104        area: undefined
61105      });
61106      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template part title. */
61107      (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" inserted.'), templatePart.title?.rendered || templatePart.slug), {
61108        type: 'snackbar'
61109      });
61110      onClose();
61111    };
61112    const hasTemplateParts = !!filteredTemplateParts.length;
61113    const hasBlockPatterns = !!filteredBlockPatterns.length;
61114    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
61115      className: "block-library-template-part__selection-content",
61116      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
61117        className: "block-library-template-part__selection-search",
61118        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
61119          __nextHasNoMarginBottom: true,
61120          onChange: setSearchValue,
61121          value: searchValue,
61122          label: (0,external_wp_i18n_namespaceObject.__)('Search for replacements'),
61123          placeholder: (0,external_wp_i18n_namespaceObject.__)('Search')
61124        })
61125      }), hasTemplateParts && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
61126        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
61127          children: (0,external_wp_i18n_namespaceObject.__)('Existing template parts')
61128        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
61129          blockPatterns: filteredTemplateParts,
61130          shownPatterns: shownTemplateParts,
61131          onClickPattern: pattern => {
61132            onTemplatePartSelect(pattern.templatePart);
61133          }
61134        })]
61135      }), !hasTemplateParts && !hasBlockPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHStack, {
61136        alignment: "center",
61137        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
61138          children: (0,external_wp_i18n_namespaceObject.__)('No results found.')
61139        })
61140      })]
61141    });
61142  }
61143  
61144  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/transformers.js
61145  /**
61146   * WordPress dependencies
61147   */
61148  
61149  
61150  /**
61151   * Converts a widget entity record into a block.
61152   *
61153   * @param {Object} widget The widget entity record.
61154   * @return {Object} a block (converted from the entity record).
61155   */
61156  function transformWidgetToBlock(widget) {
61157    if (widget.id_base !== 'block') {
61158      let attributes;
61159      if (widget._embedded.about[0].is_multi) {
61160        attributes = {
61161          idBase: widget.id_base,
61162          instance: widget.instance
61163        };
61164      } else {
61165        attributes = {
61166          id: widget.id
61167        };
61168      }
61169      return switchLegacyWidgetType((0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', attributes));
61170    }
61171    const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)(widget.instance.raw.content, {
61172      __unstableSkipAutop: true
61173    });
61174    if (!parsedBlocks.length) {
61175      return undefined;
61176    }
61177    const block = parsedBlocks[0];
61178    if (block.name === 'core/widget-group') {
61179      return (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getGroupingBlockName)(), undefined, transformInnerBlocks(block.innerBlocks));
61180    }
61181    if (block.innerBlocks.length > 0) {
61182      return (0,external_wp_blocks_namespaceObject.cloneBlock)(block, undefined, transformInnerBlocks(block.innerBlocks));
61183    }
61184    return block;
61185  }
61186  
61187  /**
61188   * Switch Legacy Widget to the first matching transformation block.
61189   *
61190   * @param {Object} block Legacy Widget block object
61191   * @return {Object|undefined} a block
61192   */
61193  function switchLegacyWidgetType(block) {
61194    const transforms = (0,external_wp_blocks_namespaceObject.getPossibleBlockTransformations)([block]).filter(item => {
61195      // The block without any transformations can't be a wildcard.
61196      if (!item.transforms) {
61197        return true;
61198      }
61199      const hasWildCardFrom = item.transforms?.from?.find(from => from.blocks && from.blocks.includes('*'));
61200      const hasWildCardTo = item.transforms?.to?.find(to => to.blocks && to.blocks.includes('*'));
61201  
61202      // Skip wildcard transformations.
61203      return !hasWildCardFrom && !hasWildCardTo;
61204    });
61205    if (!transforms.length) {
61206      return undefined;
61207    }
61208    return (0,external_wp_blocks_namespaceObject.switchToBlockType)(block, transforms[0].name);
61209  }
61210  function transformInnerBlocks(innerBlocks = []) {
61211    return innerBlocks.flatMap(block => {
61212      if (block.name === 'core/legacy-widget') {
61213        return switchLegacyWidgetType(block);
61214      }
61215      return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, transformInnerBlocks(block.innerBlocks));
61216    }).filter(block => !!block);
61217  }
61218  
61219  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/import-controls.js
61220  /**
61221   * WordPress dependencies
61222   */
61223  
61224  
61225  
61226  
61227  
61228  
61229  
61230  /**
61231   * Internal dependencies
61232   */
61233  
61234  
61235  
61236  
61237  const SIDEBARS_QUERY = {
61238    per_page: -1,
61239    _fields: 'id,name,description,status,widgets'
61240  };
61241  function TemplatePartImportControls({
61242    area,
61243    setAttributes
61244  }) {
61245    const [selectedSidebar, setSelectedSidebar] = (0,external_wp_element_namespaceObject.useState)('');
61246    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
61247    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
61248    const {
61249      sidebars,
61250      hasResolved
61251    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
61252      const {
61253        getSidebars,
61254        hasFinishedResolution
61255      } = select(external_wp_coreData_namespaceObject.store);
61256      return {
61257        sidebars: getSidebars(SIDEBARS_QUERY),
61258        hasResolved: hasFinishedResolution('getSidebars', [SIDEBARS_QUERY])
61259      };
61260    }, []);
61261    const {
61262      createErrorNotice
61263    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
61264    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
61265    const options = (0,external_wp_element_namespaceObject.useMemo)(() => {
61266      const sidebarOptions = (sidebars !== null && sidebars !== void 0 ? sidebars : []).filter(widgetArea => widgetArea.id !== 'wp_inactive_widgets' && widgetArea.widgets.length > 0).map(widgetArea => {
61267        return {
61268          value: widgetArea.id,
61269          label: widgetArea.name
61270        };
61271      });
61272      if (!sidebarOptions.length) {
61273        return [];
61274      }
61275      return [{
61276        value: '',
61277        label: (0,external_wp_i18n_namespaceObject.__)('Select widget area')
61278      }, ...sidebarOptions];
61279    }, [sidebars]);
61280  
61281    // Render an empty node while data is loading to avoid SlotFill re-positioning bug.
61282    // See: https://github.com/WordPress/gutenberg/issues/15641.
61283    if (!hasResolved) {
61284      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {
61285        marginBottom: "0"
61286      });
61287    }
61288    if (hasResolved && !options.length) {
61289      return null;
61290    }
61291    async function createFromWidgets(event) {
61292      event.preventDefault();
61293      if (isBusy || !selectedSidebar) {
61294        return;
61295      }
61296      setIsBusy(true);
61297      const sidebar = options.find(({
61298        value
61299      }) => value === selectedSidebar);
61300      const {
61301        getWidgets
61302      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
61303  
61304      // The widgets API always returns a successful response.
61305      const widgets = await getWidgets({
61306        sidebar: sidebar.value,
61307        _embed: 'about'
61308      });
61309      const skippedWidgets = new Set();
61310      const blocks = widgets.flatMap(widget => {
61311        const block = transformWidgetToBlock(widget);
61312  
61313        // Skip the block if we have no matching transformations.
61314        if (!block) {
61315          skippedWidgets.add(widget.id_base);
61316          return [];
61317        }
61318        return block;
61319      });
61320      await createFromBlocks(blocks, /* translators: %s: name of the widget area */
61321      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Widget area: %s'), sidebar.label));
61322      if (skippedWidgets.size) {
61323        createErrorNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: the list of widgets */
61324        (0,external_wp_i18n_namespaceObject.__)('Unable to import the following widgets: %s.'), Array.from(skippedWidgets).join(', ')), {
61325          type: 'snackbar'
61326        });
61327      }
61328      setIsBusy(false);
61329    }
61330    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {
61331      marginBottom: "4",
61332      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
61333        as: "form",
61334        onSubmit: createFromWidgets,
61335        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexBlock, {
61336          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
61337            label: (0,external_wp_i18n_namespaceObject.__)('Import widget area'),
61338            value: selectedSidebar,
61339            options: options,
61340            onChange: value => setSelectedSidebar(value),
61341            disabled: !options.length,
61342            __next40pxDefaultSize: true,
61343            __nextHasNoMarginBottom: true
61344          })
61345        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
61346          style: {
61347            marginBottom: '8px',
61348            marginTop: 'auto'
61349          },
61350          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
61351            __next40pxDefaultSize: true,
61352            variant: "primary",
61353            type: "submit",
61354            isBusy: isBusy,
61355            "aria-disabled": isBusy || !selectedSidebar,
61356            children: (0,external_wp_i18n_namespaceObject._x)('Import', 'button label')
61357          })
61358        })]
61359      })
61360    });
61361  }
61362  
61363  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/advanced-controls.js
61364  /**
61365   * WordPress dependencies
61366   */
61367  
61368  
61369  
61370  
61371  
61372  /**
61373   * Internal dependencies
61374   */
61375  
61376  
61377  
61378  
61379  const htmlElementMessages = {
61380    header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
61381    main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only.'),
61382    section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
61383    article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self-contained, syndicatable portion of the document.'),
61384    aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
61385    footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
61386  };
61387  function TemplatePartAdvancedControls({
61388    tagName,
61389    setAttributes,
61390    isEntityAvailable,
61391    templatePartId,
61392    defaultWrapper,
61393    hasInnerBlocks
61394  }) {
61395    const [area, setArea] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'area', templatePartId);
61396    const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'title', templatePartId);
61397    const definedAreas = (0,external_wp_data_namespaceObject.useSelect)(select => {
61398      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
61399      // Blocks can be loaded into a *non-post* block editor.
61400      /* eslint-disable-next-line @wordpress/data-no-store-string-literals */
61401      return select('core/editor').__experimentalGetDefaultTemplatePartAreas();
61402    }, []);
61403    const areaOptions = definedAreas.map(({
61404      label,
61405      area: _area
61406    }) => ({
61407      label,
61408      value: _area
61409    }));
61410    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61411      children: [isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61412        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
61413          __next40pxDefaultSize: true,
61414          __nextHasNoMarginBottom: true,
61415          label: (0,external_wp_i18n_namespaceObject.__)('Title'),
61416          value: title,
61417          onChange: value => {
61418            setTitle(value);
61419          },
61420          onFocus: event => event.target.select()
61421        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
61422          __next40pxDefaultSize: true,
61423          __nextHasNoMarginBottom: true,
61424          label: (0,external_wp_i18n_namespaceObject.__)('Area'),
61425          labelPosition: "top",
61426          options: areaOptions,
61427          value: area,
61428          onChange: setArea
61429        })]
61430      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
61431        __nextHasNoMarginBottom: true,
61432        __next40pxDefaultSize: true,
61433        label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
61434        options: [{
61435          label: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: HTML tag based on area. */
61436          (0,external_wp_i18n_namespaceObject.__)('Default based on area (%s)'), `<$defaultWrapper}>`),
61437          value: ''
61438        }, {
61439          label: '<header>',
61440          value: 'header'
61441        }, {
61442          label: '<main>',
61443          value: 'main'
61444        }, {
61445          label: '<section>',
61446          value: 'section'
61447        }, {
61448          label: '<article>',
61449          value: 'article'
61450        }, {
61451          label: '<aside>',
61452          value: 'aside'
61453        }, {
61454          label: '<footer>',
61455          value: 'footer'
61456        }, {
61457          label: '<div>',
61458          value: 'div'
61459        }],
61460        value: tagName || '',
61461        onChange: value => setAttributes({
61462          tagName: value
61463        }),
61464        help: htmlElementMessages[tagName]
61465      }), !hasInnerBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartImportControls, {
61466        area: area,
61467        setAttributes: setAttributes
61468      })]
61469    });
61470  }
61471  
61472  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/inner-blocks.js
61473  /**
61474   * WordPress dependencies
61475   */
61476  
61477  
61478  
61479  
61480  
61481  
61482  function useRenderAppender(hasInnerBlocks) {
61483    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
61484    // Disable appending when the editing mode is 'contentOnly'. This is so that the user can't
61485    // append into a template part when editing a page in the site editor. See
61486    // DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a
61487    // block editor API for achieving this.
61488    if (blockEditingMode === 'contentOnly') {
61489      return false;
61490    }
61491    if (!hasInnerBlocks) {
61492      return external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender;
61493    }
61494  }
61495  function useLayout(layout) {
61496    const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
61497      const {
61498        getSettings
61499      } = select(external_wp_blockEditor_namespaceObject.store);
61500      return getSettings()?.supportsLayout;
61501    }, []);
61502    const [defaultLayout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('layout');
61503    if (themeSupportsLayout) {
61504      return layout?.inherit ? defaultLayout || {} : layout;
61505    }
61506  }
61507  function NonEditableTemplatePartPreview({
61508    postId: id,
61509    layout,
61510    tagName: TagName,
61511    blockProps
61512  }) {
61513    (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)('disabled');
61514    const {
61515      content,
61516      editedBlocks
61517    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
61518      if (!id) {
61519        return {};
61520      }
61521      const {
61522        getEditedEntityRecord
61523      } = select(external_wp_coreData_namespaceObject.store);
61524      const editedRecord = getEditedEntityRecord('postType', 'wp_template_part', id, {
61525        context: 'view'
61526      });
61527      return {
61528        editedBlocks: editedRecord.blocks,
61529        content: editedRecord.content
61530      };
61531    }, [id]);
61532    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
61533      if (!id) {
61534        return undefined;
61535      }
61536      if (editedBlocks) {
61537        return editedBlocks;
61538      }
61539      if (!content || typeof content !== 'string') {
61540        return [];
61541      }
61542      return (0,external_wp_blocks_namespaceObject.parse)(content);
61543    }, [id, editedBlocks, content]);
61544    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
61545      value: blocks,
61546      onInput: () => {},
61547      onChange: () => {},
61548      renderAppender: false,
61549      layout: useLayout(layout)
61550    });
61551    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
61552      ...innerBlocksProps
61553    });
61554  }
61555  function EditableTemplatePartInnerBlocks({
61556    postId: id,
61557    hasInnerBlocks,
61558    layout,
61559    tagName: TagName,
61560    blockProps
61561  }) {
61562    const onNavigateToEntityRecord = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().onNavigateToEntityRecord, []);
61563    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_template_part', {
61564      id
61565    });
61566    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
61567      value: blocks,
61568      onInput,
61569      onChange,
61570      renderAppender: useRenderAppender(hasInnerBlocks),
61571      layout: useLayout(layout)
61572    });
61573    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
61574    const customProps = blockEditingMode === 'contentOnly' && onNavigateToEntityRecord ? {
61575      onDoubleClick: () => onNavigateToEntityRecord({
61576        postId: id,
61577        postType: 'wp_template_part'
61578      })
61579    } : {};
61580    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
61581      ...innerBlocksProps,
61582      ...customProps
61583    });
61584  }
61585  function TemplatePartInnerBlocks({
61586    postId: id,
61587    hasInnerBlocks,
61588    layout,
61589    tagName: TagName,
61590    blockProps
61591  }) {
61592    const {
61593      canViewTemplatePart,
61594      canEditTemplatePart
61595    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
61596      return {
61597        canViewTemplatePart: !!select(external_wp_coreData_namespaceObject.store).canUser('read', {
61598          kind: 'postType',
61599          name: 'wp_template_part',
61600          id
61601        }),
61602        canEditTemplatePart: !!select(external_wp_coreData_namespaceObject.store).canUser('update', {
61603          kind: 'postType',
61604          name: 'wp_template_part',
61605          id
61606        })
61607      };
61608    }, [id]);
61609    if (!canViewTemplatePart) {
61610      return null;
61611    }
61612    const TemplatePartInnerBlocksComponent = canEditTemplatePart ? EditableTemplatePartInnerBlocks : NonEditableTemplatePartPreview;
61613    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartInnerBlocksComponent, {
61614      postId: id,
61615      hasInnerBlocks: hasInnerBlocks,
61616      layout: layout,
61617      tagName: TagName,
61618      blockProps: blockProps
61619    });
61620  }
61621  
61622  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/index.js
61623  /**
61624   * WordPress dependencies
61625   */
61626  
61627  
61628  
61629  
61630  
61631  
61632  
61633  
61634  
61635  
61636  /**
61637   * Internal dependencies
61638   */
61639  
61640  
61641  
61642  
61643  
61644  
61645  
61646  
61647  
61648  function ReplaceButton({
61649    isEntityAvailable,
61650    area,
61651    templatePartId,
61652    isTemplatePartSelectionOpen,
61653    setIsTemplatePartSelectionOpen
61654  }) {
61655    // This hook fetches patterns, so don't run it unconditionally in the main
61656    // edit function!
61657    const {
61658      templateParts
61659    } = useAlternativeTemplateParts(area, templatePartId);
61660    const hasReplacements = !!templateParts.length;
61661    const canReplace = isEntityAvailable && hasReplacements && (area === 'header' || area === 'footer');
61662    if (!canReplace) {
61663      return null;
61664    }
61665    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
61666      onClick: () => {
61667        setIsTemplatePartSelectionOpen(true);
61668      },
61669      "aria-expanded": isTemplatePartSelectionOpen,
61670      "aria-haspopup": "dialog",
61671      children: (0,external_wp_i18n_namespaceObject.__)('Replace')
61672    });
61673  }
61674  function TemplatesList({
61675    area,
61676    clientId,
61677    isEntityAvailable,
61678    onSelect
61679  }) {
61680    // This hook fetches patterns, so don't run it unconditionally in the main
61681    // edit function!
61682    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
61683    const canReplace = isEntityAvailable && !!blockPatterns.length && (area === 'header' || area === 'footer');
61684    const shownTemplates = (0,external_wp_compose_namespaceObject.useAsyncList)(blockPatterns);
61685    if (!canReplace) {
61686      return null;
61687    }
61688    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
61689      title: (0,external_wp_i18n_namespaceObject.__)('Design'),
61690      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
61691        label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
61692        blockPatterns: blockPatterns,
61693        shownPatterns: shownTemplates,
61694        onClickPattern: onSelect,
61695        showTitle: false
61696      })
61697    });
61698  }
61699  function TemplatePartEdit({
61700    attributes,
61701    setAttributes,
61702    clientId
61703  }) {
61704    const {
61705      createSuccessNotice
61706    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
61707    const {
61708      editEntityRecord
61709    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
61710    const currentTheme = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet, []);
61711    const {
61712      slug,
61713      theme = currentTheme,
61714      tagName,
61715      layout = {}
61716    } = attributes;
61717    const templatePartId = createTemplatePartId(theme, slug);
61718    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(templatePartId);
61719    const [isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen] = (0,external_wp_element_namespaceObject.useState)(false);
61720    const {
61721      isResolved,
61722      hasInnerBlocks,
61723      isMissing,
61724      area,
61725      onNavigateToEntityRecord,
61726      title,
61727      canUserEdit
61728    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
61729      const {
61730        getEditedEntityRecord,
61731        hasFinishedResolution
61732      } = select(external_wp_coreData_namespaceObject.store);
61733      const {
61734        getBlockCount,
61735        getSettings
61736      } = select(external_wp_blockEditor_namespaceObject.store);
61737      const getEntityArgs = ['postType', 'wp_template_part', templatePartId];
61738      const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null;
61739      const _area = entityRecord?.area || attributes.area;
61740      const hasResolvedEntity = templatePartId ? hasFinishedResolution('getEditedEntityRecord', getEntityArgs) : false;
61741      const _canUserEdit = hasResolvedEntity ? select(external_wp_coreData_namespaceObject.store).canUser('update', {
61742        kind: 'postType',
61743        name: 'wp_template_part',
61744        id: templatePartId
61745      }) : false;
61746      return {
61747        hasInnerBlocks: getBlockCount(clientId) > 0,
61748        isResolved: hasResolvedEntity,
61749        isMissing: hasResolvedEntity && (!entityRecord || Object.keys(entityRecord).length === 0),
61750        area: _area,
61751        onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
61752        title: entityRecord?.title,
61753        canUserEdit: !!_canUserEdit
61754      };
61755    }, [templatePartId, attributes.area, clientId]);
61756    const areaObject = useTemplatePartArea(area);
61757    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
61758    const isPlaceholder = !slug;
61759    const isEntityAvailable = !isPlaceholder && !isMissing && isResolved;
61760    const TagName = tagName || areaObject.tagName;
61761    const onPatternSelect = async pattern => {
61762      await editEntityRecord('postType', 'wp_template_part', templatePartId, {
61763        blocks: pattern.blocks,
61764        content: (0,external_wp_blocks_namespaceObject.serialize)(pattern.blocks)
61765      });
61766      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template part title. */
61767      (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" updated.'), title || slug), {
61768        type: 'snackbar'
61769      });
61770    };
61771  
61772    // We don't want to render a missing state if we have any inner blocks.
61773    // A new template part is automatically created if we have any inner blocks but no entity.
61774    if (!hasInnerBlocks && (slug && !theme || slug && isMissing)) {
61775      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
61776        ...blockProps,
61777        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
61778          children: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Template part slug. */
61779          (0,external_wp_i18n_namespaceObject.__)('Template part has been deleted or is unavailable: %s'), slug)
61780        })
61781      });
61782    }
61783    if (isEntityAvailable && hasAlreadyRendered) {
61784      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
61785        ...blockProps,
61786        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
61787          children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
61788        })
61789      });
61790    }
61791    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61792      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
61793        uniqueId: templatePartId,
61794        children: [isEntityAvailable && onNavigateToEntityRecord && canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
61795          group: "other",
61796          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
61797            onClick: () => onNavigateToEntityRecord({
61798              postId: templatePartId,
61799              postType: 'wp_template_part'
61800            }),
61801            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
61802          })
61803        }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
61804          group: "advanced",
61805          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartAdvancedControls, {
61806            tagName: tagName,
61807            setAttributes: setAttributes,
61808            isEntityAvailable: isEntityAvailable,
61809            templatePartId: templatePartId,
61810            defaultWrapper: areaObject.tagName,
61811            hasInnerBlocks: hasInnerBlocks
61812          })
61813        }), isPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
61814          ...blockProps,
61815          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartPlaceholder, {
61816            area: attributes.area,
61817            templatePartId: templatePartId,
61818            clientId: clientId,
61819            setAttributes: setAttributes,
61820            onOpenSelectionModal: () => setIsTemplatePartSelectionOpen(true)
61821          })
61822        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
61823          children: ({
61824            selectedClientIds
61825          }) => {
61826            // Only enable for single selection that matches the current block.
61827            // Ensures menu item doesn't render multiple times.
61828            if (!(selectedClientIds.length === 1 && clientId === selectedClientIds[0])) {
61829              return null;
61830            }
61831            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReplaceButton, {
61832              isEntityAvailable,
61833              area,
61834              clientId,
61835              templatePartId,
61836              isTemplatePartSelectionOpen,
61837              setIsTemplatePartSelectionOpen
61838            });
61839          }
61840        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
61841          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatesList, {
61842            area: area,
61843            clientId: clientId,
61844            isEntityAvailable: isEntityAvailable,
61845            onSelect: pattern => onPatternSelect(pattern)
61846          })
61847        }), isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartInnerBlocks, {
61848          tagName: TagName,
61849          blockProps: blockProps,
61850          postId: templatePartId,
61851          hasInnerBlocks: hasInnerBlocks,
61852          layout: layout
61853        }), !isPlaceholder && !isResolved && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
61854          ...blockProps,
61855          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
61856        })]
61857      }), isTemplatePartSelectionOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
61858        overlayClassName: "block-editor-template-part__selection-modal",
61859        title: (0,external_wp_i18n_namespaceObject.sprintf)(
61860        // Translators: %s as template part area title ("Header", "Footer", etc.).
61861        (0,external_wp_i18n_namespaceObject.__)('Choose a %s'), areaObject.label.toLowerCase()),
61862        onRequestClose: () => setIsTemplatePartSelectionOpen(false),
61863        isFullScreen: true,
61864        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartSelectionModal, {
61865          templatePartId: templatePartId,
61866          clientId: clientId,
61867          area: area,
61868          setAttributes: setAttributes,
61869          onClose: () => setIsTemplatePartSelectionOpen(false)
61870        })
61871      })]
61872    });
61873  }
61874  
61875  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/header.js
61876  /**
61877   * WordPress dependencies
61878   */
61879  
61880  
61881  const header = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
61882    xmlns: "http://www.w3.org/2000/svg",
61883    viewBox: "0 0 24 24",
61884    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61885      d: "M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
61886    })
61887  });
61888  /* harmony default export */ const library_header = (header);
61889  
61890  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/footer.js
61891  /**
61892   * WordPress dependencies
61893   */
61894  
61895  
61896  const footer = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
61897    xmlns: "http://www.w3.org/2000/svg",
61898    viewBox: "0 0 24 24",
61899    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61900      fillRule: "evenodd",
61901      d: "M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
61902    })
61903  });
61904  /* harmony default export */ const library_footer = (footer);
61905  
61906  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sidebar.js
61907  /**
61908   * WordPress dependencies
61909   */
61910  
61911  
61912  const sidebar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
61913    xmlns: "http://www.w3.org/2000/svg",
61914    viewBox: "0 0 24 24",
61915    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61916      d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
61917    })
61918  });
61919  /* harmony default export */ const library_sidebar = (sidebar);
61920  
61921  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/variations.js
61922  /**
61923   * WordPress dependencies
61924   */
61925  
61926  
61927  
61928  function getTemplatePartIcon(iconName) {
61929    if ('header' === iconName) {
61930      return library_header;
61931    } else if ('footer' === iconName) {
61932      return library_footer;
61933    } else if ('sidebar' === iconName) {
61934      return library_sidebar;
61935    }
61936    return symbol_filled;
61937  }
61938  function enhanceTemplatePartVariations(settings, name) {
61939    if (name !== 'core/template-part') {
61940      return settings;
61941    }
61942    if (settings.variations) {
61943      const isActive = (blockAttributes, variationAttributes) => {
61944        const {
61945          area,
61946          theme,
61947          slug
61948        } = blockAttributes;
61949        // We first check the `area` block attribute which is set during insertion.
61950        // This property is removed on the creation of a template part.
61951        if (area) {
61952          return area === variationAttributes.area;
61953        }
61954        // Find a matching variation from the created template part
61955        // by checking the entity's `area` property.
61956        if (!slug) {
61957          return false;
61958        }
61959        const {
61960          getCurrentTheme,
61961          getEntityRecord
61962        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
61963        const entity = getEntityRecord('postType', 'wp_template_part', `$theme || getCurrentTheme()?.stylesheet}//${slug}`);
61964        if (entity?.slug) {
61965          return entity.slug === variationAttributes.slug;
61966        }
61967        return entity?.area === variationAttributes.area;
61968      };
61969      const variations = settings.variations.map(variation => {
61970        return {
61971          ...variation,
61972          ...(!variation.isActive && {
61973            isActive
61974          }),
61975          ...(typeof variation.icon === 'string' && {
61976            icon: getTemplatePartIcon(variation.icon)
61977          })
61978        };
61979      });
61980      return {
61981        ...settings,
61982        variations
61983      };
61984    }
61985    return settings;
61986  }
61987  
61988  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
61989  /**
61990   * External dependencies
61991   */
61992  
61993  
61994  /**
61995   * WordPress dependencies
61996   */
61997  
61998  
61999  
62000  
62001  
62002  
62003  /**
62004   * Internal dependencies
62005   */
62006  
62007  const template_part_metadata = {
62008    $schema: "https://schemas.wp.org/trunk/block.json",
62009    apiVersion: 3,
62010    name: "core/template-part",
62011    title: "Template Part",
62012    category: "theme",
62013    description: "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.",
62014    textdomain: "default",
62015    attributes: {
62016      slug: {
62017        type: "string"
62018      },
62019      theme: {
62020        type: "string"
62021      },
62022      tagName: {
62023        type: "string"
62024      },
62025      area: {
62026        type: "string"
62027      }
62028    },
62029    supports: {
62030      align: true,
62031      html: false,
62032      reusable: false,
62033      renaming: false,
62034      interactivity: {
62035        clientNavigation: true
62036      }
62037    },
62038    editorStyle: "wp-block-template-part-editor"
62039  };
62040  
62041  
62042  const {
62043    name: template_part_name
62044  } = template_part_metadata;
62045  
62046  const template_part_settings = {
62047    icon: symbol_filled,
62048    __experimentalLabel: ({
62049      slug,
62050      theme
62051    }) => {
62052      // Attempt to find entity title if block is a template part.
62053      // Require slug to request, otherwise entity is uncreated and will throw 404.
62054      if (!slug) {
62055        return;
62056      }
62057      const {
62058        getCurrentTheme,
62059        getEditedEntityRecord
62060      } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
62061      const entity = getEditedEntityRecord('postType', 'wp_template_part', (theme || getCurrentTheme()?.stylesheet) + '//' + slug);
62062      if (!entity) {
62063        return;
62064      }
62065      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entity.title) || capitalCase(entity.slug || '');
62066    },
62067    edit: TemplatePartEdit
62068  };
62069  const template_part_init = () => {
62070    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations);
62071  
62072    // Prevent adding template parts inside post templates.
62073    const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content'];
62074    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'core/block-library/removeTemplatePartsFromPostTemplates', (canInsert, blockType, rootClientId, {
62075      getBlock,
62076      getBlockParentsByBlockName
62077    }) => {
62078      if (blockType.name !== 'core/template-part') {
62079        return canInsert;
62080      }
62081      for (const disallowedParentType of DISALLOWED_PARENTS) {
62082        const hasDisallowedParent = getBlock(rootClientId)?.name === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
62083        if (hasDisallowedParent) {
62084          return false;
62085        }
62086      }
62087      return true;
62088    });
62089    return initBlock({
62090      name: template_part_name,
62091      metadata: template_part_metadata,
62092      settings: template_part_settings
62093    });
62094  };
62095  
62096  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/term-description.js
62097  /**
62098   * WordPress dependencies
62099   */
62100  
62101  
62102  const term_description_tag = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
62103    xmlns: "http://www.w3.org/2000/svg",
62104    viewBox: "0 0 24 24",
62105    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
62106      d: "M6.08 10.103h2.914L9.657 12h1.417L8.23 4H6.846L4 12h1.417l.663-1.897Zm1.463-4.137.994 2.857h-2l1.006-2.857ZM11 16H4v-1.5h7V16Zm1 0h8v-1.5h-8V16Zm-4 4H4v-1.5h4V20Zm7-1.5V20H9v-1.5h6Z"
62107    })
62108  });
62109  /* harmony default export */ const term_description = (term_description_tag);
62110  
62111  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/edit.js
62112  /**
62113   * External dependencies
62114   */
62115  
62116  
62117  /**
62118   * WordPress dependencies
62119   */
62120  
62121  
62122  
62123  
62124  
62125  function TermDescriptionEdit({
62126    attributes,
62127    setAttributes,
62128    mergedStyle
62129  }) {
62130    const {
62131      textAlign
62132    } = attributes;
62133    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
62134      className: dist_clsx({
62135        [`has-text-align-$textAlign}`]: textAlign
62136      }),
62137      style: mergedStyle
62138    });
62139    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
62140      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
62141        group: "block",
62142        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
62143          value: textAlign,
62144          onChange: nextAlign => {
62145            setAttributes({
62146              textAlign: nextAlign
62147            });
62148          }
62149        })
62150      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62151        ...blockProps,
62152        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62153          className: "wp-block-term-description__placeholder",
62154          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
62155            children: (0,external_wp_i18n_namespaceObject.__)('Term Description')
62156          })
62157        })
62158      })]
62159    });
62160  }
62161  
62162  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
62163  /**
62164   * WordPress dependencies
62165   */
62166  
62167  
62168  /**
62169   * Internal dependencies
62170   */
62171  
62172  const term_description_metadata = {
62173    $schema: "https://schemas.wp.org/trunk/block.json",
62174    apiVersion: 3,
62175    name: "core/term-description",
62176    title: "Term Description",
62177    category: "theme",
62178    description: "Display the description of categories, tags and custom taxonomies when viewing an archive.",
62179    textdomain: "default",
62180    attributes: {
62181      textAlign: {
62182        type: "string"
62183      }
62184    },
62185    supports: {
62186      align: ["wide", "full"],
62187      html: false,
62188      color: {
62189        link: true,
62190        __experimentalDefaultControls: {
62191          background: true,
62192          text: true
62193        }
62194      },
62195      spacing: {
62196        padding: true,
62197        margin: true
62198      },
62199      typography: {
62200        fontSize: true,
62201        lineHeight: true,
62202        __experimentalFontFamily: true,
62203        __experimentalFontWeight: true,
62204        __experimentalFontStyle: true,
62205        __experimentalTextTransform: true,
62206        __experimentalTextDecoration: true,
62207        __experimentalLetterSpacing: true,
62208        __experimentalDefaultControls: {
62209          fontSize: true
62210        }
62211      },
62212      interactivity: {
62213        clientNavigation: true
62214      },
62215      __experimentalBorder: {
62216        radius: true,
62217        color: true,
62218        width: true,
62219        style: true,
62220        __experimentalDefaultControls: {
62221          radius: true,
62222          color: true,
62223          width: true,
62224          style: true
62225        }
62226      }
62227    }
62228  };
62229  
62230  const {
62231    name: term_description_name
62232  } = term_description_metadata;
62233  
62234  const term_description_settings = {
62235    icon: term_description,
62236    edit: TermDescriptionEdit
62237  };
62238  const term_description_init = () => initBlock({
62239    name: term_description_name,
62240    metadata: term_description_metadata,
62241    settings: term_description_settings
62242  });
62243  
62244  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js
62245  /**
62246   * WordPress dependencies
62247   */
62248  
62249  
62250  
62251  
62252  
62253  
62254  
62255  function TextColumnsEdit({
62256    attributes,
62257    setAttributes
62258  }) {
62259    const {
62260      width,
62261      content,
62262      columns
62263    } = attributes;
62264    external_wp_deprecated_default()('The Text Columns block', {
62265      since: '5.3',
62266      alternative: 'the Columns block'
62267    });
62268    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
62269      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
62270        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, {
62271          value: width,
62272          onChange: nextWidth => setAttributes({
62273            width: nextWidth
62274          }),
62275          controls: ['center', 'wide', 'full']
62276        })
62277      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
62278        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
62279          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
62280            __nextHasNoMarginBottom: true,
62281            __next40pxDefaultSize: true,
62282            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
62283            value: columns,
62284            onChange: value => setAttributes({
62285              columns: value
62286            }),
62287            min: 2,
62288            max: 4,
62289            required: true
62290          })
62291        })
62292      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62293        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
62294          className: `align$width} columns-$columns}`
62295        }),
62296        children: Array.from({
62297          length: columns
62298        }).map((_, index) => {
62299          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62300            className: "wp-block-column",
62301            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
62302              tagName: "p",
62303              value: content?.[index]?.children,
62304              onChange: nextContent => {
62305                setAttributes({
62306                  content: [...content.slice(0, index), {
62307                    children: nextContent
62308                  }, ...content.slice(index + 1)]
62309                });
62310              },
62311              "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
62312              // translators: %d: column index (starting with 1)
62313              (0,external_wp_i18n_namespaceObject.__)('Column %d text'), index + 1),
62314              placeholder: (0,external_wp_i18n_namespaceObject.__)('New Column')
62315            })
62316          }, `column-$index}`);
62317        })
62318      })]
62319    });
62320  }
62321  
62322  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/save.js
62323  /**
62324   * WordPress dependencies
62325   */
62326  
62327  
62328  function text_columns_save_save({
62329    attributes
62330  }) {
62331    const {
62332      width,
62333      content,
62334      columns
62335    } = attributes;
62336    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62337      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
62338        className: `align$width} columns-$columns}`
62339      }),
62340      children: Array.from({
62341        length: columns
62342      }).map((_, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62343        className: "wp-block-column",
62344        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
62345          tagName: "p",
62346          value: content?.[index]?.children
62347        })
62348      }, `column-$index}`))
62349    });
62350  }
62351  
62352  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js
62353  /**
62354   * WordPress dependencies
62355   */
62356  
62357  const text_columns_transforms_transforms = {
62358    to: [{
62359      type: 'block',
62360      blocks: ['core/columns'],
62361      transform: ({
62362        className,
62363        columns,
62364        content,
62365        width
62366      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
62367        align: 'wide' === width || 'full' === width ? width : undefined,
62368        className,
62369        columns
62370      }, content.map(({
62371        children
62372      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
62373        content: children
62374      })])))
62375    }]
62376  };
62377  /* harmony default export */ const text_columns_transforms = (text_columns_transforms_transforms);
62378  
62379  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
62380  /**
62381   * Internal dependencies
62382   */
62383  
62384  
62385  const text_columns_metadata = {
62386    $schema: "https://schemas.wp.org/trunk/block.json",
62387    apiVersion: 3,
62388    name: "core/text-columns",
62389    title: "Text Columns (deprecated)",
62390    icon: "columns",
62391    category: "design",
62392    description: "This block is deprecated. Please use the Columns block instead.",
62393    textdomain: "default",
62394    attributes: {
62395      content: {
62396        type: "array",
62397        source: "query",
62398        selector: "p",
62399        query: {
62400          children: {
62401            type: "string",
62402            source: "html"
62403          }
62404        },
62405        "default": [{}, {}]
62406      },
62407      columns: {
62408        type: "number",
62409        "default": 2
62410      },
62411      width: {
62412        type: "string"
62413      }
62414    },
62415    supports: {
62416      inserter: false,
62417      interactivity: {
62418        clientNavigation: true
62419      }
62420    },
62421    editorStyle: "wp-block-text-columns-editor",
62422    style: "wp-block-text-columns"
62423  };
62424  
62425  
62426  const {
62427    name: text_columns_name
62428  } = text_columns_metadata;
62429  
62430  const text_columns_settings = {
62431    transforms: text_columns_transforms,
62432    getEditWrapperProps(attributes) {
62433      const {
62434        width
62435      } = attributes;
62436      if ('wide' === width || 'full' === width) {
62437        return {
62438          'data-align': width
62439        };
62440      }
62441    },
62442    edit: TextColumnsEdit,
62443    save: text_columns_save_save
62444  };
62445  const text_columns_init = () => initBlock({
62446    name: text_columns_name,
62447    metadata: text_columns_metadata,
62448    settings: text_columns_settings
62449  });
62450  
62451  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js
62452  /**
62453   * External dependencies
62454   */
62455  
62456  
62457  /**
62458   * WordPress dependencies
62459   */
62460  
62461  
62462  /**
62463   * Internal dependencies
62464   */
62465  
62466  
62467  const verse_deprecated_v1 = {
62468    attributes: {
62469      content: {
62470        type: 'string',
62471        source: 'html',
62472        selector: 'pre',
62473        default: ''
62474      },
62475      textAlign: {
62476        type: 'string'
62477      }
62478    },
62479    save({
62480      attributes
62481    }) {
62482      const {
62483        textAlign,
62484        content
62485      } = attributes;
62486      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
62487        tagName: "pre",
62488        style: {
62489          textAlign
62490        },
62491        value: content
62492      });
62493    }
62494  };
62495  const verse_deprecated_v2 = {
62496    attributes: {
62497      content: {
62498        type: 'string',
62499        source: 'html',
62500        selector: 'pre',
62501        default: '',
62502        __unstablePreserveWhiteSpace: true,
62503        role: 'content'
62504      },
62505      textAlign: {
62506        type: 'string'
62507      }
62508    },
62509    supports: {
62510      anchor: true,
62511      color: {
62512        gradients: true,
62513        link: true
62514      },
62515      typography: {
62516        fontSize: true,
62517        __experimentalFontFamily: true
62518      },
62519      spacing: {
62520        padding: true
62521      }
62522    },
62523    save({
62524      attributes
62525    }) {
62526      const {
62527        textAlign,
62528        content
62529      } = attributes;
62530      const className = dist_clsx({
62531        [`has-text-align-$textAlign}`]: textAlign
62532      });
62533      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
62534        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
62535          className
62536        }),
62537        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
62538          value: content
62539        })
62540      });
62541    },
62542    migrate: migrate_font_family,
62543    isEligible({
62544      style
62545    }) {
62546      return style?.typography?.fontFamily;
62547    }
62548  };
62549  
62550  /**
62551   * New deprecations need to be placed first
62552   * for them to have higher priority.
62553   *
62554   * Old deprecations may need to be updated as well.
62555   *
62556   * See block-deprecation.md
62557   */
62558  /* harmony default export */ const verse_deprecated = ([verse_deprecated_v2, verse_deprecated_v1]);
62559  
62560  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/edit.js
62561  /**
62562   * External dependencies
62563   */
62564  
62565  
62566  /**
62567   * WordPress dependencies
62568   */
62569  
62570  
62571  
62572  
62573  
62574  
62575  function VerseEdit({
62576    attributes,
62577    setAttributes,
62578    mergeBlocks,
62579    onRemove,
62580    insertBlocksAfter,
62581    style
62582  }) {
62583    const {
62584      textAlign,
62585      content
62586    } = attributes;
62587    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
62588      className: dist_clsx({
62589        [`has-text-align-$textAlign}`]: textAlign
62590      }),
62591      style
62592    });
62593    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
62594      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
62595        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
62596          value: textAlign,
62597          onChange: nextAlign => {
62598            setAttributes({
62599              textAlign: nextAlign
62600            });
62601          }
62602        })
62603      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
62604        tagName: "pre",
62605        identifier: "content",
62606        preserveWhiteSpace: true,
62607        value: content,
62608        onChange: nextContent => {
62609          setAttributes({
62610            content: nextContent
62611          });
62612        },
62613        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Verse text'),
62614        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write verse…'),
62615        onRemove: onRemove,
62616        onMerge: mergeBlocks,
62617        textAlign: textAlign,
62618        ...blockProps,
62619        __unstablePastePlainText: true,
62620        __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
62621      })]
62622    });
62623  }
62624  
62625  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/save.js
62626  /**
62627   * External dependencies
62628   */
62629  
62630  
62631  /**
62632   * WordPress dependencies
62633   */
62634  
62635  
62636  function verse_save_save({
62637    attributes
62638  }) {
62639    const {
62640      textAlign,
62641      content
62642    } = attributes;
62643    const className = dist_clsx({
62644      [`has-text-align-$textAlign}`]: textAlign
62645    });
62646    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
62647      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
62648        className
62649      }),
62650      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
62651        value: content
62652      })
62653    });
62654  }
62655  
62656  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/transforms.js
62657  /**
62658   * WordPress dependencies
62659   */
62660  
62661  const verse_transforms_transforms = {
62662    from: [{
62663      type: 'block',
62664      blocks: ['core/paragraph'],
62665      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/verse', attributes)
62666    }],
62667    to: [{
62668      type: 'block',
62669      blocks: ['core/paragraph'],
62670      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
62671    }]
62672  };
62673  /* harmony default export */ const verse_transforms = (verse_transforms_transforms);
62674  
62675  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/index.js
62676  /**
62677   * WordPress dependencies
62678   */
62679  
62680  
62681  
62682  /**
62683   * Internal dependencies
62684   */
62685  
62686  
62687  
62688  const verse_metadata = {
62689    $schema: "https://schemas.wp.org/trunk/block.json",
62690    apiVersion: 3,
62691    name: "core/verse",
62692    title: "Verse",
62693    category: "text",
62694    description: "Insert poetry. Use special spacing formats. Or quote song lyrics.",
62695    keywords: ["poetry", "poem"],
62696    textdomain: "default",
62697    attributes: {
62698      content: {
62699        type: "rich-text",
62700        source: "rich-text",
62701        selector: "pre",
62702        __unstablePreserveWhiteSpace: true,
62703        role: "content"
62704      },
62705      textAlign: {
62706        type: "string"
62707      }
62708    },
62709    supports: {
62710      anchor: true,
62711      background: {
62712        backgroundImage: true,
62713        backgroundSize: true,
62714        __experimentalDefaultControls: {
62715          backgroundImage: true
62716        }
62717      },
62718      color: {
62719        gradients: true,
62720        link: true,
62721        __experimentalDefaultControls: {
62722          background: true,
62723          text: true
62724        }
62725      },
62726      dimensions: {
62727        minHeight: true,
62728        __experimentalDefaultControls: {
62729          minHeight: false
62730        }
62731      },
62732      typography: {
62733        fontSize: true,
62734        __experimentalFontFamily: true,
62735        lineHeight: true,
62736        __experimentalFontStyle: true,
62737        __experimentalFontWeight: true,
62738        __experimentalLetterSpacing: true,
62739        __experimentalTextTransform: true,
62740        __experimentalTextDecoration: true,
62741        __experimentalWritingMode: true,
62742        __experimentalDefaultControls: {
62743          fontSize: true
62744        }
62745      },
62746      spacing: {
62747        margin: true,
62748        padding: true,
62749        __experimentalDefaultControls: {
62750          margin: false,
62751          padding: false
62752        }
62753      },
62754      __experimentalBorder: {
62755        radius: true,
62756        width: true,
62757        color: true,
62758        style: true
62759      },
62760      interactivity: {
62761        clientNavigation: true
62762      }
62763    },
62764    style: "wp-block-verse",
62765    editorStyle: "wp-block-verse-editor"
62766  };
62767  
62768  
62769  const {
62770    name: verse_name
62771  } = verse_metadata;
62772  
62773  const verse_settings = {
62774    icon: library_verse,
62775    example: {
62776      attributes: {
62777        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
62778        // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.
62779        content: (0,external_wp_i18n_namespaceObject.__)('WHAT was he doing, the great god Pan,\n    Down in the reeds by the river?\nSpreading ruin and scattering ban,\nSplashing and paddling with hoofs of a goat,\nAnd breaking the golden lilies afloat\n    With the dragon-fly on the river.')
62780        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
62781      }
62782    },
62783    transforms: verse_transforms,
62784    deprecated: verse_deprecated,
62785    merge(attributes, attributesToMerge) {
62786      return {
62787        content: attributes.content + '\n\n' + attributesToMerge.content
62788      };
62789    },
62790    edit: VerseEdit,
62791    save: verse_save_save
62792  };
62793  const verse_init = () => initBlock({
62794    name: verse_name,
62795    metadata: verse_metadata,
62796    settings: verse_settings
62797  });
62798  
62799  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/video.js
62800  /**
62801   * WordPress dependencies
62802   */
62803  
62804  
62805  const video = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
62806    viewBox: "0 0 24 24",
62807    xmlns: "http://www.w3.org/2000/svg",
62808    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
62809      d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"
62810    })
62811  });
62812  /* harmony default export */ const library_video = (video);
62813  
62814  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks.js
62815  
62816  function Tracks({
62817    tracks = []
62818  }) {
62819    return tracks.map(track => {
62820      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("track", {
62821        ...track
62822      }, track.src);
62823    });
62824  }
62825  
62826  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/deprecated.js
62827  /**
62828   * WordPress dependencies
62829   */
62830  
62831  
62832  /**
62833   * Internal dependencies
62834   */
62835  const video_deprecated_metadata = {
62836    $schema: "https://schemas.wp.org/trunk/block.json",
62837    apiVersion: 3,
62838    name: "core/video",
62839    title: "Video",
62840    category: "media",
62841    description: "Embed a video from your media library or upload a new one.",
62842    keywords: ["movie"],
62843    textdomain: "default",
62844    attributes: {
62845      autoplay: {
62846        type: "boolean",
62847        source: "attribute",
62848        selector: "video",
62849        attribute: "autoplay"
62850      },
62851      caption: {
62852        type: "rich-text",
62853        source: "rich-text",
62854        selector: "figcaption",
62855        role: "content"
62856      },
62857      controls: {
62858        type: "boolean",
62859        source: "attribute",
62860        selector: "video",
62861        attribute: "controls",
62862        "default": true
62863      },
62864      id: {
62865        type: "number",
62866        role: "content"
62867      },
62868      loop: {
62869        type: "boolean",
62870        source: "attribute",
62871        selector: "video",
62872        attribute: "loop"
62873      },
62874      muted: {
62875        type: "boolean",
62876        source: "attribute",
62877        selector: "video",
62878        attribute: "muted"
62879      },
62880      poster: {
62881        type: "string",
62882        source: "attribute",
62883        selector: "video",
62884        attribute: "poster"
62885      },
62886      preload: {
62887        type: "string",
62888        source: "attribute",
62889        selector: "video",
62890        attribute: "preload",
62891        "default": "metadata"
62892      },
62893      blob: {
62894        type: "string",
62895        role: "local"
62896      },
62897      src: {
62898        type: "string",
62899        source: "attribute",
62900        selector: "video",
62901        attribute: "src",
62902        role: "content"
62903      },
62904      playsInline: {
62905        type: "boolean",
62906        source: "attribute",
62907        selector: "video",
62908        attribute: "playsinline"
62909      },
62910      tracks: {
62911        role: "content",
62912        type: "array",
62913        items: {
62914          type: "object"
62915        },
62916        "default": []
62917      }
62918    },
62919    supports: {
62920      anchor: true,
62921      align: true,
62922      spacing: {
62923        margin: true,
62924        padding: true,
62925        __experimentalDefaultControls: {
62926          margin: false,
62927          padding: false
62928        }
62929      },
62930      interactivity: {
62931        clientNavigation: true
62932      }
62933    },
62934    editorStyle: "wp-block-video-editor",
62935    style: "wp-block-video"
62936  };
62937  
62938  
62939  
62940  const {
62941    attributes: video_deprecated_blockAttributes
62942  } = video_deprecated_metadata;
62943  
62944  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
62945  // to the video figcaption element.
62946  const video_deprecated_v1 = {
62947    attributes: video_deprecated_blockAttributes,
62948    save({
62949      attributes
62950    }) {
62951      const {
62952        autoplay,
62953        caption,
62954        controls,
62955        loop,
62956        muted,
62957        poster,
62958        preload,
62959        src,
62960        playsInline,
62961        tracks
62962      } = attributes;
62963      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
62964        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
62965        children: [src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
62966          autoPlay: autoplay,
62967          controls: controls,
62968          loop: loop,
62969          muted: muted,
62970          poster: poster,
62971          preload: preload !== 'metadata' ? preload : undefined,
62972          src: src,
62973          playsInline: playsInline,
62974          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
62975            tracks: tracks
62976          })
62977        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
62978          tagName: "figcaption",
62979          value: caption
62980        })]
62981      });
62982    }
62983  };
62984  const video_deprecated_deprecated = [video_deprecated_v1];
62985  /* harmony default export */ const video_deprecated = (video_deprecated_deprecated);
62986  
62987  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js
62988  /**
62989   * WordPress dependencies
62990   */
62991  
62992  
62993  
62994  
62995  
62996  
62997  const options = [{
62998    value: 'auto',
62999    label: (0,external_wp_i18n_namespaceObject.__)('Auto')
63000  }, {
63001    value: 'metadata',
63002    label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
63003  }, {
63004    value: 'none',
63005    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
63006  }];
63007  const VideoSettings = ({
63008    setAttributes,
63009    attributes
63010  }) => {
63011    const {
63012      autoplay,
63013      controls,
63014      loop,
63015      muted,
63016      playsInline,
63017      preload
63018    } = attributes;
63019    const autoPlayHelpText = (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.');
63020    const getAutoplayHelp = external_wp_element_namespaceObject.Platform.select({
63021      web: (0,external_wp_element_namespaceObject.useCallback)(checked => {
63022        return checked ? autoPlayHelpText : null;
63023      }, []),
63024      native: autoPlayHelpText
63025    });
63026    const toggleFactory = (0,external_wp_element_namespaceObject.useMemo)(() => {
63027      const toggleAttribute = attribute => {
63028        return newValue => {
63029          setAttributes({
63030            [attribute]: newValue
63031          });
63032        };
63033      };
63034      return {
63035        autoplay: toggleAttribute('autoplay'),
63036        loop: toggleAttribute('loop'),
63037        muted: toggleAttribute('muted'),
63038        controls: toggleAttribute('controls'),
63039        playsInline: toggleAttribute('playsInline')
63040      };
63041    }, []);
63042    const onChangePreload = (0,external_wp_element_namespaceObject.useCallback)(value => {
63043      setAttributes({
63044        preload: value
63045      });
63046    }, []);
63047    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63048      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
63049        __nextHasNoMarginBottom: true,
63050        label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
63051        onChange: toggleFactory.autoplay,
63052        checked: !!autoplay,
63053        help: getAutoplayHelp
63054      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
63055        __nextHasNoMarginBottom: true,
63056        label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
63057        onChange: toggleFactory.loop,
63058        checked: !!loop
63059      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
63060        __nextHasNoMarginBottom: true,
63061        label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
63062        onChange: toggleFactory.muted,
63063        checked: !!muted
63064      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
63065        __nextHasNoMarginBottom: true,
63066        label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
63067        onChange: toggleFactory.controls,
63068        checked: !!controls
63069      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
63070        __nextHasNoMarginBottom: true
63071        /* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */,
63072        label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
63073        onChange: toggleFactory.playsInline,
63074        checked: !!playsInline,
63075        help: (0,external_wp_i18n_namespaceObject.__)('When enabled, videos will play directly within the webpage on mobile browsers, instead of opening in a fullscreen player.')
63076      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63077        __next40pxDefaultSize: true,
63078        __nextHasNoMarginBottom: true,
63079        label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
63080        value: preload,
63081        onChange: onChangePreload,
63082        options: options,
63083        hideCancelButton: true
63084      })]
63085    });
63086  };
63087  /* harmony default export */ const edit_common_settings = (VideoSettings);
63088  
63089  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks-editor.js
63090  /**
63091   * WordPress dependencies
63092   */
63093  
63094  
63095  
63096  
63097  
63098  
63099  
63100  
63101  
63102  
63103  const ALLOWED_TYPES = ['text/vtt'];
63104  const DEFAULT_KIND = 'subtitles';
63105  const KIND_OPTIONS = [{
63106    label: (0,external_wp_i18n_namespaceObject.__)('Subtitles'),
63107    value: 'subtitles'
63108  }, {
63109    label: (0,external_wp_i18n_namespaceObject.__)('Captions'),
63110    value: 'captions'
63111  }, {
63112    label: (0,external_wp_i18n_namespaceObject.__)('Descriptions'),
63113    value: 'descriptions'
63114  }, {
63115    label: (0,external_wp_i18n_namespaceObject.__)('Chapters'),
63116    value: 'chapters'
63117  }, {
63118    label: (0,external_wp_i18n_namespaceObject.__)('Metadata'),
63119    value: 'metadata'
63120  }];
63121  function TrackList({
63122    tracks,
63123    onEditPress
63124  }) {
63125    let content;
63126    if (tracks.length === 0) {
63127      content = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
63128        className: "block-library-video-tracks-editor__tracks-informative-message",
63129        children: (0,external_wp_i18n_namespaceObject.__)('Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.')
63130      });
63131    } else {
63132      content = tracks.map((track, index) => {
63133        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
63134          className: "block-library-video-tracks-editor__track-list-track",
63135          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
63136            children: [track.label, " "]
63137          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63138            __next40pxDefaultSize: true,
63139            variant: "tertiary",
63140            onClick: () => onEditPress(index),
63141            "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Label of the video text track e.g: "French subtitles" */
63142            (0,external_wp_i18n_namespaceObject._x)('Edit %s', 'text tracks'), track.label),
63143            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
63144          })]
63145        }, index);
63146      });
63147    }
63148    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
63149      label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
63150      className: "block-library-video-tracks-editor__track-list",
63151      children: content
63152    });
63153  }
63154  function SingleTrackEditor({
63155    track,
63156    onChange,
63157    onClose,
63158    onRemove
63159  }) {
63160    const {
63161      src = '',
63162      label = '',
63163      srcLang = '',
63164      kind = DEFAULT_KIND
63165    } = track;
63166    const fileName = src.startsWith('blob:') ? '' : (0,external_wp_url_namespaceObject.getFilename)(src) || '';
63167    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.NavigableMenu, {
63168      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
63169        className: "block-library-video-tracks-editor__single-track-editor",
63170        spacing: "4",
63171        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
63172          className: "block-library-video-tracks-editor__single-track-editor-edit-track-label",
63173          children: (0,external_wp_i18n_namespaceObject.__)('Edit track')
63174        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
63175          children: [(0,external_wp_i18n_namespaceObject.__)('File'), ": ", /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("b", {
63176            children: fileName
63177          })]
63178        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalGrid, {
63179          columns: 2,
63180          gap: 4,
63181          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
63182            __next40pxDefaultSize: true,
63183            __nextHasNoMarginBottom: true
63184            /* eslint-disable jsx-a11y/no-autofocus */,
63185            autoFocus: true
63186            /* eslint-enable jsx-a11y/no-autofocus */,
63187            onChange: newLabel => onChange({
63188              ...track,
63189              label: newLabel
63190            }),
63191            label: (0,external_wp_i18n_namespaceObject.__)('Label'),
63192            value: label,
63193            help: (0,external_wp_i18n_namespaceObject.__)('Title of track')
63194          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
63195            __next40pxDefaultSize: true,
63196            __nextHasNoMarginBottom: true,
63197            onChange: newSrcLang => onChange({
63198              ...track,
63199              srcLang: newSrcLang
63200            }),
63201            label: (0,external_wp_i18n_namespaceObject.__)('Source language'),
63202            value: srcLang,
63203            help: (0,external_wp_i18n_namespaceObject.__)('Language tag (en, fr, etc.)')
63204          })]
63205        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
63206          spacing: "8",
63207          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63208            __next40pxDefaultSize: true,
63209            __nextHasNoMarginBottom: true,
63210            className: "block-library-video-tracks-editor__single-track-editor-kind-select",
63211            options: KIND_OPTIONS,
63212            value: kind,
63213            label: (0,external_wp_i18n_namespaceObject.__)('Kind'),
63214            onChange: newKind => {
63215              onChange({
63216                ...track,
63217                kind: newKind
63218              });
63219            }
63220          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
63221            className: "block-library-video-tracks-editor__single-track-editor-buttons-container",
63222            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63223              __next40pxDefaultSize: true,
63224              variant: "secondary",
63225              onClick: () => {
63226                const changes = {};
63227                let hasChanges = false;
63228                if (label === '') {
63229                  changes.label = (0,external_wp_i18n_namespaceObject.__)('English');
63230                  hasChanges = true;
63231                }
63232                if (srcLang === '') {
63233                  changes.srcLang = 'en';
63234                  hasChanges = true;
63235                }
63236                if (track.kind === undefined) {
63237                  changes.kind = DEFAULT_KIND;
63238                  hasChanges = true;
63239                }
63240                if (hasChanges) {
63241                  onChange({
63242                    ...track,
63243                    ...changes
63244                  });
63245                }
63246                onClose();
63247              },
63248              children: (0,external_wp_i18n_namespaceObject.__)('Close')
63249            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63250              __next40pxDefaultSize: true,
63251              isDestructive: true,
63252              variant: "link",
63253              onClick: onRemove,
63254              children: (0,external_wp_i18n_namespaceObject.__)('Remove track')
63255            })]
63256          })]
63257        })]
63258      })
63259    });
63260  }
63261  function TracksEditor({
63262    tracks = [],
63263    onChange
63264  }) {
63265    const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
63266      return select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload;
63267    }, []);
63268    const [trackBeingEdited, setTrackBeingEdited] = (0,external_wp_element_namespaceObject.useState)(null);
63269    if (!mediaUpload) {
63270      return null;
63271    }
63272    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
63273      contentClassName: "block-library-video-tracks-editor",
63274      renderToggle: ({
63275        isOpen,
63276        onToggle
63277      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
63278        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
63279          label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
63280          showTooltip: true,
63281          "aria-expanded": isOpen,
63282          "aria-haspopup": "true",
63283          onClick: onToggle,
63284          children: (0,external_wp_i18n_namespaceObject.__)('Text tracks')
63285        })
63286      }),
63287      renderContent: () => {
63288        if (trackBeingEdited !== null) {
63289          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SingleTrackEditor, {
63290            track: tracks[trackBeingEdited],
63291            onChange: newTrack => {
63292              const newTracks = [...tracks];
63293              newTracks[trackBeingEdited] = newTrack;
63294              onChange(newTracks);
63295            },
63296            onClose: () => setTrackBeingEdited(null),
63297            onRemove: () => {
63298              onChange(tracks.filter((_track, index) => index !== trackBeingEdited));
63299              setTrackBeingEdited(null);
63300            }
63301          });
63302        }
63303        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63304          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.NavigableMenu, {
63305            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TrackList, {
63306              tracks: tracks,
63307              onEditPress: setTrackBeingEdited
63308            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
63309              className: "block-library-video-tracks-editor__add-tracks-container",
63310              label: (0,external_wp_i18n_namespaceObject.__)('Add tracks'),
63311              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
63312                onSelect: ({
63313                  url
63314                }) => {
63315                  const trackIndex = tracks.length;
63316                  onChange([...tracks, {
63317                    src: url
63318                  }]);
63319                  setTrackBeingEdited(trackIndex);
63320                },
63321                allowedTypes: ALLOWED_TYPES,
63322                render: ({
63323                  open
63324                }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
63325                  icon: library_media,
63326                  onClick: open,
63327                  children: (0,external_wp_i18n_namespaceObject.__)('Open Media Library')
63328                })
63329              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
63330                children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormFileUpload, {
63331                  onChange: event => {
63332                    const files = event.target.files;
63333                    const trackIndex = tracks.length;
63334                    mediaUpload({
63335                      allowedTypes: ALLOWED_TYPES,
63336                      filesList: files,
63337                      onFileChange: ([{
63338                        url
63339                      }]) => {
63340                        const newTracks = [...tracks];
63341                        if (!newTracks[trackIndex]) {
63342                          newTracks[trackIndex] = {};
63343                        }
63344                        newTracks[trackIndex] = {
63345                          ...tracks[trackIndex],
63346                          src: url
63347                        };
63348                        onChange(newTracks);
63349                        setTrackBeingEdited(trackIndex);
63350                      }
63351                    });
63352                  },
63353                  accept: ".vtt,text/vtt",
63354                  render: ({
63355                    openFileDialog
63356                  }) => {
63357                    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
63358                      icon: library_upload,
63359                      onClick: () => {
63360                        openFileDialog();
63361                      },
63362                      children: (0,external_wp_i18n_namespaceObject.__)('Upload')
63363                    });
63364                  }
63365                })
63366              })]
63367            })]
63368          })
63369        });
63370      }
63371    });
63372  }
63373  
63374  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit.js
63375  /**
63376   * External dependencies
63377   */
63378  
63379  
63380  /**
63381   * WordPress dependencies
63382   */
63383  
63384  
63385  
63386  
63387  
63388  
63389  
63390  
63391  
63392  
63393  /**
63394   * Internal dependencies
63395   */
63396  
63397  
63398  
63399  
63400  
63401  
63402  
63403  
63404  
63405  const video_edit_ALLOWED_MEDIA_TYPES = ['video'];
63406  const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
63407  function VideoEdit({
63408    isSelected: isSingleSelected,
63409    attributes,
63410    className,
63411    setAttributes,
63412    insertBlocksAfter,
63413    onReplace
63414  }) {
63415    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(VideoEdit);
63416    const videoPlayer = (0,external_wp_element_namespaceObject.useRef)();
63417    const posterImageButton = (0,external_wp_element_namespaceObject.useRef)();
63418    const {
63419      id,
63420      controls,
63421      poster,
63422      src,
63423      tracks
63424    } = attributes;
63425    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
63426    useUploadMediaFromBlobURL({
63427      url: temporaryURL,
63428      allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
63429      onChange: onSelectVideo,
63430      onError: onUploadError
63431    });
63432    (0,external_wp_element_namespaceObject.useEffect)(() => {
63433      // Placeholder may be rendered.
63434      if (videoPlayer.current) {
63435        videoPlayer.current.load();
63436      }
63437    }, [poster]);
63438    function onSelectVideo(media) {
63439      if (!media || !media.url) {
63440        // In this case there was an error
63441        // previous attributes should be removed
63442        // because they may be temporary blob urls.
63443        setAttributes({
63444          src: undefined,
63445          id: undefined,
63446          poster: undefined,
63447          caption: undefined,
63448          blob: undefined
63449        });
63450        setTemporaryURL();
63451        return;
63452      }
63453      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
63454        setTemporaryURL(media.url);
63455        return;
63456      }
63457  
63458      // Sets the block's attribute and updates the edit component from the
63459      // selected media.
63460      setAttributes({
63461        blob: undefined,
63462        src: media.url,
63463        id: media.id,
63464        poster: media.image?.src !== media.icon ? media.image?.src : undefined,
63465        caption: media.caption
63466      });
63467      setTemporaryURL();
63468    }
63469    function onSelectURL(newSrc) {
63470      if (newSrc !== src) {
63471        // Check if there's an embed block that handles this URL.
63472        const embedBlock = createUpgradedEmbedBlock({
63473          attributes: {
63474            url: newSrc
63475          }
63476        });
63477        if (undefined !== embedBlock && onReplace) {
63478          onReplace(embedBlock);
63479          return;
63480        }
63481        setAttributes({
63482          blob: undefined,
63483          src: newSrc,
63484          id: undefined,
63485          poster: undefined
63486        });
63487        setTemporaryURL();
63488      }
63489    }
63490    const {
63491      createErrorNotice
63492    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63493    function onUploadError(message) {
63494      createErrorNotice(message, {
63495        type: 'snackbar'
63496      });
63497    }
63498  
63499    // Much of this description is duplicated from MediaPlaceholder.
63500    const placeholder = content => {
63501      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
63502        className: "block-editor-media-placeholder",
63503        withIllustration: !isSingleSelected,
63504        icon: library_video,
63505        label: (0,external_wp_i18n_namespaceObject.__)('Video'),
63506        instructions: (0,external_wp_i18n_namespaceObject.__)('Upload a video file, pick one from your media library, or add one with a URL.'),
63507        children: content
63508      });
63509    };
63510    const classes = dist_clsx(className, {
63511      'is-transient': !!temporaryURL
63512    });
63513    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
63514      className: classes
63515    });
63516    if (!src && !temporaryURL) {
63517      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
63518        ...blockProps,
63519        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
63520          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
63521            icon: library_video
63522          }),
63523          onSelect: onSelectVideo,
63524          onSelectURL: onSelectURL,
63525          accept: "video/*",
63526          allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
63527          value: attributes,
63528          onError: onUploadError,
63529          placeholder: placeholder
63530        })
63531      });
63532    }
63533    function onSelectPoster(image) {
63534      setAttributes({
63535        poster: image.url
63536      });
63537    }
63538    function onRemovePoster() {
63539      setAttributes({
63540        poster: undefined
63541      });
63542  
63543      // Move focus back to the Media Upload button.
63544      posterImageButton.current.focus();
63545    }
63546    const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
63547    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63548      children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63549        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
63550          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TracksEditor, {
63551            tracks: tracks,
63552            onChange: newTracks => {
63553              setAttributes({
63554                tracks: newTracks
63555              });
63556            }
63557          })
63558        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
63559          group: "other",
63560          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
63561            mediaId: id,
63562            mediaURL: src,
63563            allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
63564            accept: "video/*",
63565            onSelect: onSelectVideo,
63566            onSelectURL: onSelectURL,
63567            onError: onUploadError,
63568            onReset: () => onSelectVideo(undefined)
63569          })
63570        })]
63571      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
63572        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
63573          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
63574          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_common_settings, {
63575            setAttributes: setAttributes,
63576            attributes: attributes
63577          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
63578            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
63579              className: "editor-video-poster-control",
63580              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
63581                children: (0,external_wp_i18n_namespaceObject.__)('Poster image')
63582              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
63583                title: (0,external_wp_i18n_namespaceObject.__)('Select poster image'),
63584                onSelect: onSelectPoster,
63585                allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
63586                render: ({
63587                  open
63588                }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63589                  __next40pxDefaultSize: true,
63590                  variant: "primary",
63591                  onClick: open,
63592                  ref: posterImageButton,
63593                  "aria-describedby": videoPosterDescription,
63594                  children: !poster ? (0,external_wp_i18n_namespaceObject.__)('Select') : (0,external_wp_i18n_namespaceObject.__)('Replace')
63595                })
63596              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
63597                id: videoPosterDescription,
63598                hidden: true,
63599                children: poster ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: poster image URL. */
63600                (0,external_wp_i18n_namespaceObject.__)('The current poster image url is %s'), poster) : (0,external_wp_i18n_namespaceObject.__)('There is no poster image currently selected')
63601              }), !!poster && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63602                __next40pxDefaultSize: true,
63603                onClick: onRemovePoster,
63604                variant: "tertiary",
63605                children: (0,external_wp_i18n_namespaceObject.__)('Remove')
63606              })]
63607            })
63608          })]
63609        })
63610      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
63611        ...blockProps,
63612        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
63613          isDisabled: !isSingleSelected,
63614          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
63615            controls: controls,
63616            poster: poster,
63617            src: src || temporaryURL,
63618            ref: videoPlayer,
63619            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
63620              tracks: tracks
63621            })
63622          })
63623        }), !!temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
63624          attributes: attributes,
63625          setAttributes: setAttributes,
63626          isSelected: isSingleSelected,
63627          insertBlocksAfter: insertBlocksAfter,
63628          label: (0,external_wp_i18n_namespaceObject.__)('Video caption text'),
63629          showToolbarButton: isSingleSelected
63630        })]
63631      })]
63632    });
63633  }
63634  /* harmony default export */ const video_edit = (VideoEdit);
63635  
63636  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/save.js
63637  /**
63638   * WordPress dependencies
63639   */
63640  
63641  
63642  /**
63643   * Internal dependencies
63644   */
63645  
63646  
63647  
63648  function video_save_save({
63649    attributes
63650  }) {
63651    const {
63652      autoplay,
63653      caption,
63654      controls,
63655      loop,
63656      muted,
63657      poster,
63658      preload,
63659      src,
63660      playsInline,
63661      tracks
63662    } = attributes;
63663    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
63664      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
63665      children: [src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
63666        autoPlay: autoplay,
63667        controls: controls,
63668        loop: loop,
63669        muted: muted,
63670        poster: poster,
63671        preload: preload !== 'metadata' ? preload : undefined,
63672        src: src,
63673        playsInline: playsInline,
63674        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
63675          tracks: tracks
63676        })
63677      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
63678        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
63679        tagName: "figcaption",
63680        value: caption
63681      })]
63682    });
63683  }
63684  
63685  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/transforms.js
63686  /**
63687   * WordPress dependencies
63688   */
63689  
63690  
63691  const video_transforms_transforms = {
63692    from: [{
63693      type: 'files',
63694      isMatch(files) {
63695        return files.length === 1 && files[0].type.indexOf('video/') === 0;
63696      },
63697      transform(files) {
63698        const file = files[0];
63699        // We don't need to upload the media directly here
63700        // It's already done as part of the `componentDidMount`
63701        // in the video block
63702        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
63703          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
63704        });
63705        return block;
63706      }
63707    }, {
63708      type: 'shortcode',
63709      tag: 'video',
63710      attributes: {
63711        src: {
63712          type: 'string',
63713          shortcode: ({
63714            named: {
63715              src,
63716              mp4,
63717              m4v,
63718              webm,
63719              ogv,
63720              flv
63721            }
63722          }) => {
63723            return src || mp4 || m4v || webm || ogv || flv;
63724          }
63725        },
63726        poster: {
63727          type: 'string',
63728          shortcode: ({
63729            named: {
63730              poster
63731            }
63732          }) => {
63733            return poster;
63734          }
63735        },
63736        loop: {
63737          type: 'string',
63738          shortcode: ({
63739            named: {
63740              loop
63741            }
63742          }) => {
63743            return loop;
63744          }
63745        },
63746        autoplay: {
63747          type: 'string',
63748          shortcode: ({
63749            named: {
63750              autoplay
63751            }
63752          }) => {
63753            return autoplay;
63754          }
63755        },
63756        preload: {
63757          type: 'string',
63758          shortcode: ({
63759            named: {
63760              preload
63761            }
63762          }) => {
63763            return preload;
63764          }
63765        }
63766      }
63767    }, {
63768      type: 'raw',
63769      isMatch: node => node.nodeName === 'P' && node.children.length === 1 && node.firstChild.nodeName === 'VIDEO',
63770      transform: node => {
63771        const videoElement = node.firstChild;
63772        const attributes = {
63773          autoplay: videoElement.hasAttribute('autoplay') ? true : undefined,
63774          controls: videoElement.hasAttribute('controls') ? undefined : false,
63775          loop: videoElement.hasAttribute('loop') ? true : undefined,
63776          muted: videoElement.hasAttribute('muted') ? true : undefined,
63777          preload: videoElement.getAttribute('preload') || undefined,
63778          playsInline: videoElement.hasAttribute('playsinline') ? true : undefined,
63779          poster: videoElement.getAttribute('poster') || undefined,
63780          src: videoElement.getAttribute('src') || undefined
63781        };
63782        if ((0,external_wp_blob_namespaceObject.isBlobURL)(attributes.src)) {
63783          attributes.blob = attributes.src;
63784          delete attributes.src;
63785        }
63786        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', attributes);
63787      }
63788    }]
63789  };
63790  /* harmony default export */ const video_transforms = (video_transforms_transforms);
63791  
63792  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/index.js
63793  /**
63794   * WordPress dependencies
63795   */
63796  
63797  
63798  
63799  /**
63800   * Internal dependencies
63801   */
63802  
63803  
63804  
63805  const video_metadata = {
63806    $schema: "https://schemas.wp.org/trunk/block.json",
63807    apiVersion: 3,
63808    name: "core/video",
63809    title: "Video",
63810    category: "media",
63811    description: "Embed a video from your media library or upload a new one.",
63812    keywords: ["movie"],
63813    textdomain: "default",
63814    attributes: {
63815      autoplay: {
63816        type: "boolean",
63817        source: "attribute",
63818        selector: "video",
63819        attribute: "autoplay"
63820      },
63821      caption: {
63822        type: "rich-text",
63823        source: "rich-text",
63824        selector: "figcaption",
63825        role: "content"
63826      },
63827      controls: {
63828        type: "boolean",
63829        source: "attribute",
63830        selector: "video",
63831        attribute: "controls",
63832        "default": true
63833      },
63834      id: {
63835        type: "number",
63836        role: "content"
63837      },
63838      loop: {
63839        type: "boolean",
63840        source: "attribute",
63841        selector: "video",
63842        attribute: "loop"
63843      },
63844      muted: {
63845        type: "boolean",
63846        source: "attribute",
63847        selector: "video",
63848        attribute: "muted"
63849      },
63850      poster: {
63851        type: "string",
63852        source: "attribute",
63853        selector: "video",
63854        attribute: "poster"
63855      },
63856      preload: {
63857        type: "string",
63858        source: "attribute",
63859        selector: "video",
63860        attribute: "preload",
63861        "default": "metadata"
63862      },
63863      blob: {
63864        type: "string",
63865        role: "local"
63866      },
63867      src: {
63868        type: "string",
63869        source: "attribute",
63870        selector: "video",
63871        attribute: "src",
63872        role: "content"
63873      },
63874      playsInline: {
63875        type: "boolean",
63876        source: "attribute",
63877        selector: "video",
63878        attribute: "playsinline"
63879      },
63880      tracks: {
63881        role: "content",
63882        type: "array",
63883        items: {
63884          type: "object"
63885        },
63886        "default": []
63887      }
63888    },
63889    supports: {
63890      anchor: true,
63891      align: true,
63892      spacing: {
63893        margin: true,
63894        padding: true,
63895        __experimentalDefaultControls: {
63896          margin: false,
63897          padding: false
63898        }
63899      },
63900      interactivity: {
63901        clientNavigation: true
63902      }
63903    },
63904    editorStyle: "wp-block-video-editor",
63905    style: "wp-block-video"
63906  };
63907  
63908  
63909  const {
63910    name: video_name
63911  } = video_metadata;
63912  
63913  const video_settings = {
63914    icon: library_video,
63915    example: {
63916      attributes: {
63917        src: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',
63918        // translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.
63919        caption: (0,external_wp_i18n_namespaceObject.__)('Wood thrush singing in Central Park, NYC.')
63920      }
63921    },
63922    transforms: video_transforms,
63923    deprecated: video_deprecated,
63924    edit: video_edit,
63925    save: video_save_save
63926  };
63927  const video_init = () => initBlock({
63928    name: video_name,
63929    metadata: video_metadata,
63930    settings: video_settings
63931  });
63932  
63933  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/footnotes/edit.js
63934  /**
63935   * WordPress dependencies
63936   */
63937  
63938  
63939  
63940  
63941  
63942  
63943  
63944  function FootnotesEdit({
63945    context: {
63946      postType,
63947      postId
63948    }
63949  }) {
63950    const [meta, updateMeta] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'meta', postId);
63951    const footnotesSupported = 'string' === typeof meta?.footnotes;
63952    const footnotes = meta?.footnotes ? JSON.parse(meta.footnotes) : [];
63953    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
63954    if (!footnotesSupported) {
63955      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
63956        ...blockProps,
63957        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
63958          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
63959            icon: format_list_numbered
63960          }),
63961          label: (0,external_wp_i18n_namespaceObject.__)('Footnotes'),
63962          instructions: (0,external_wp_i18n_namespaceObject.__)('Footnotes are not supported here. Add this block to post or page content.')
63963        })
63964      });
63965    }
63966    if (!footnotes.length) {
63967      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
63968        ...blockProps,
63969        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
63970          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
63971            icon: format_list_numbered
63972          }),
63973          label: (0,external_wp_i18n_namespaceObject.__)('Footnotes'),
63974          instructions: (0,external_wp_i18n_namespaceObject.__)('Footnotes found in blocks within this document will be displayed here.')
63975        })
63976      });
63977    }
63978    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
63979      ...blockProps,
63980      children: footnotes.map(({
63981        id,
63982        content
63983      }) =>
63984      /*#__PURE__*/
63985      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
63986      (0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
63987        onMouseDown: event => {
63988          // When clicking on the list item (not on descendants),
63989          // focus the rich text element since it's only 1px wide when
63990          // empty.
63991          if (event.target === event.currentTarget) {
63992            event.target.firstElementChild.focus();
63993            event.preventDefault();
63994          }
63995        },
63996        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
63997          id: id,
63998          tagName: "span",
63999          value: content,
64000          identifier: id
64001          // To do: figure out why the browser is not scrolling
64002          // into view when it receives focus.
64003          ,
64004          onFocus: event => {
64005            if (!event.target.textContent.trim()) {
64006              event.target.scrollIntoView();
64007            }
64008          },
64009          onChange: nextFootnote => {
64010            updateMeta({
64011              ...meta,
64012              footnotes: JSON.stringify(footnotes.map(footnote => {
64013                return footnote.id === id ? {
64014                  content: nextFootnote,
64015                  id
64016                } : footnote;
64017              }))
64018            });
64019          }
64020        }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
64021          href: `#$id}-link`,
64022          children: "\u21A9\uFE0E"
64023        })]
64024      }, id))
64025    });
64026  }
64027  
64028  ;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/native.js
64029  const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
64030  /* harmony default export */ const esm_browser_native = ({
64031    randomUUID
64032  });
64033  ;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
64034  // Unique ID creation requires a high quality random # generator. In the browser we therefore
64035  // require the crypto API and do not support built-in fallback to lower quality random number
64036  // generators (like Math.random()).
64037  let getRandomValues;
64038  const rnds8 = new Uint8Array(16);
64039  function rng() {
64040    // lazy load so that environments that need to polyfill have a chance to do so
64041    if (!getRandomValues) {
64042      // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
64043      getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
64044  
64045      if (!getRandomValues) {
64046        throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
64047      }
64048    }
64049  
64050    return getRandomValues(rnds8);
64051  }
64052  ;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js
64053  
64054  /**
64055   * Convert array of 16 byte values to UUID string format of the form:
64056   * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
64057   */
64058  
64059  const byteToHex = [];
64060  
64061  for (let i = 0; i < 256; ++i) {
64062    byteToHex.push((i + 0x100).toString(16).slice(1));
64063  }
64064  
64065  function unsafeStringify(arr, offset = 0) {
64066    // Note: Be careful editing this code!  It's been tuned for performance
64067    // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
64068    return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
64069  }
64070  
64071  function stringify(arr, offset = 0) {
64072    const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID.  If this throws, it's likely due to one
64073    // of the following:
64074    // - One or more input array values don't map to a hex octet (leading to
64075    // "undefined" in the uuid)
64076    // - Invalid input values for the RFC `version` or `variant` fields
64077  
64078    if (!validate(uuid)) {
64079      throw TypeError('Stringified UUID is invalid');
64080    }
64081  
64082    return uuid;
64083  }
64084  
64085  /* harmony default export */ const esm_browser_stringify = ((/* unused pure expression or super */ null && (stringify)));
64086  ;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js
64087  
64088  
64089  
64090  
64091  function v4_v4(options, buf, offset) {
64092    if (esm_browser_native.randomUUID && !buf && !options) {
64093      return esm_browser_native.randomUUID();
64094    }
64095  
64096    options = options || {};
64097    const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
64098  
64099    rnds[6] = rnds[6] & 0x0f | 0x40;
64100    rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
64101  
64102    if (buf) {
64103      offset = offset || 0;
64104  
64105      for (let i = 0; i < 16; ++i) {
64106        buf[offset + i] = rnds[i];
64107      }
64108  
64109      return buf;
64110    }
64111  
64112    return unsafeStringify(rnds);
64113  }
64114  
64115  /* harmony default export */ const esm_browser_v4 = (v4_v4);
64116  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/footnotes/format.js
64117  /**
64118   * External dependencies
64119   */
64120  
64121  
64122  /**
64123   * WordPress dependencies
64124   */
64125  
64126  
64127  
64128  
64129  
64130  
64131  
64132  
64133  /**
64134   * Internal dependencies
64135   */
64136  
64137  
64138  const {
64139    usesContextKey
64140  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
64141  const formatName = 'core/footnote';
64142  const POST_CONTENT_BLOCK_NAME = 'core/post-content';
64143  const SYNCED_PATTERN_BLOCK_NAME = 'core/block';
64144  const format = {
64145    title: (0,external_wp_i18n_namespaceObject.__)('Footnote'),
64146    tagName: 'sup',
64147    className: 'fn',
64148    attributes: {
64149      'data-fn': 'data-fn'
64150    },
64151    interactive: true,
64152    contentEditable: false,
64153    [usesContextKey]: ['postType', 'postId'],
64154    edit: function Edit({
64155      value,
64156      onChange,
64157      isObjectActive,
64158      context: {
64159        postType,
64160        postId
64161      }
64162    }) {
64163      const registry = (0,external_wp_data_namespaceObject.useRegistry)();
64164      const {
64165        getSelectedBlockClientId,
64166        getBlocks,
64167        getBlockRootClientId,
64168        getBlockName,
64169        getBlockParentsByBlockName
64170      } = registry.select(external_wp_blockEditor_namespaceObject.store);
64171      const isFootnotesSupported = (0,external_wp_data_namespaceObject.useSelect)(select => {
64172        if (!select(external_wp_blocks_namespaceObject.store).getBlockType('core/footnotes')) {
64173          return false;
64174        }
64175        const allowedBlocks = select(external_wp_blockEditor_namespaceObject.store).getSettings().allowedBlockTypes;
64176        if (allowedBlocks === false || Array.isArray(allowedBlocks) && !allowedBlocks.includes('core/footnotes')) {
64177          return false;
64178        }
64179        const entityRecord = select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, postId);
64180        if ('string' !== typeof entityRecord?.meta?.footnotes) {
64181          return false;
64182        }
64183  
64184        // Checks if the selected block lives within a pattern.
64185        const {
64186          getBlockParentsByBlockName: _getBlockParentsByBlockName,
64187          getSelectedBlockClientId: _getSelectedBlockClientId
64188        } = select(external_wp_blockEditor_namespaceObject.store);
64189        const parentCoreBlocks = _getBlockParentsByBlockName(_getSelectedBlockClientId(), SYNCED_PATTERN_BLOCK_NAME);
64190        return !parentCoreBlocks || parentCoreBlocks.length === 0;
64191      }, [postType, postId]);
64192      const {
64193        selectionChange,
64194        insertBlock
64195      } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
64196      if (!isFootnotesSupported) {
64197        return null;
64198      }
64199      function onClick() {
64200        registry.batch(() => {
64201          let id;
64202          if (isObjectActive) {
64203            const object = value.replacements[value.start];
64204            id = object?.attributes?.['data-fn'];
64205          } else {
64206            id = esm_browser_v4();
64207            const newValue = (0,external_wp_richText_namespaceObject.insertObject)(value, {
64208              type: formatName,
64209              attributes: {
64210                'data-fn': id
64211              },
64212              innerHTML: `<a href="#$id}" id="$id}-link">*</a>`
64213            }, value.end, value.end);
64214            newValue.start = newValue.end - 1;
64215            onChange(newValue);
64216          }
64217          const selectedClientId = getSelectedBlockClientId();
64218  
64219          /*
64220           * Attempts to find a common parent post content block.
64221           * This allows for locating blocks within a page edited in the site editor.
64222           */
64223          const parentPostContent = getBlockParentsByBlockName(selectedClientId, POST_CONTENT_BLOCK_NAME);
64224  
64225          // When called with a post content block, getBlocks will return
64226          // the block with controlled inner blocks included.
64227          const blocks = parentPostContent.length ? getBlocks(parentPostContent[0]) : getBlocks();
64228  
64229          // BFS search to find the first footnote block.
64230          let fnBlock = null;
64231          {
64232            const queue = [...blocks];
64233            while (queue.length) {
64234              const block = queue.shift();
64235              if (block.name === 'core/footnotes') {
64236                fnBlock = block;
64237                break;
64238              }
64239              queue.push(...block.innerBlocks);
64240            }
64241          }
64242  
64243          // Maybe this should all also be moved to the entity provider.
64244          // When there is no footnotes block in the post, create one and
64245          // insert it at the bottom.
64246          if (!fnBlock) {
64247            let rootClientId = getBlockRootClientId(selectedClientId);
64248            while (rootClientId && getBlockName(rootClientId) !== POST_CONTENT_BLOCK_NAME) {
64249              rootClientId = getBlockRootClientId(rootClientId);
64250            }
64251            fnBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/footnotes');
64252            insertBlock(fnBlock, undefined, rootClientId);
64253          }
64254          selectionChange(fnBlock.clientId, id, 0, 0);
64255        });
64256      }
64257      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
64258        icon: format_list_numbered,
64259        title: (0,external_wp_i18n_namespaceObject.__)('Footnote'),
64260        onClick: onClick,
64261        isActive: isObjectActive
64262      });
64263    }
64264  };
64265  
64266  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/footnotes/index.js
64267  /**
64268   * WordPress dependencies
64269   */
64270  
64271  
64272  
64273  /**
64274   * Internal dependencies
64275   */
64276  
64277  
64278  const footnotes_metadata = {
64279    $schema: "https://schemas.wp.org/trunk/block.json",
64280    apiVersion: 3,
64281    name: "core/footnotes",
64282    title: "Footnotes",
64283    category: "text",
64284    description: "Display footnotes added to the page.",
64285    keywords: ["references"],
64286    textdomain: "default",
64287    usesContext: ["postId", "postType"],
64288    supports: {
64289      __experimentalBorder: {
64290        radius: true,
64291        color: true,
64292        width: true,
64293        style: true,
64294        __experimentalDefaultControls: {
64295          radius: false,
64296          color: false,
64297          width: false,
64298          style: false
64299        }
64300      },
64301      color: {
64302        background: true,
64303        link: true,
64304        text: true,
64305        __experimentalDefaultControls: {
64306          link: true,
64307          text: true
64308        }
64309      },
64310      html: false,
64311      multiple: false,
64312      reusable: false,
64313      inserter: false,
64314      spacing: {
64315        margin: true,
64316        padding: true,
64317        __experimentalDefaultControls: {
64318          margin: false,
64319          padding: false
64320        }
64321      },
64322      typography: {
64323        fontSize: true,
64324        lineHeight: true,
64325        __experimentalFontFamily: true,
64326        __experimentalTextDecoration: true,
64327        __experimentalFontStyle: true,
64328        __experimentalFontWeight: true,
64329        __experimentalLetterSpacing: true,
64330        __experimentalTextTransform: true,
64331        __experimentalWritingMode: true,
64332        __experimentalDefaultControls: {
64333          fontSize: true
64334        }
64335      },
64336      interactivity: {
64337        clientNavigation: true
64338      }
64339    },
64340    style: "wp-block-footnotes"
64341  };
64342  
64343  const {
64344    name: footnotes_name
64345  } = footnotes_metadata;
64346  
64347  const footnotes_settings = {
64348    icon: format_list_numbered,
64349    edit: FootnotesEdit
64350  };
64351  const footnotes_init = () => {
64352    (0,external_wp_richText_namespaceObject.registerFormatType)(formatName, format);
64353    initBlock({
64354      name: footnotes_name,
64355      metadata: footnotes_metadata,
64356      settings: footnotes_settings
64357    });
64358  };
64359  
64360  // EXTERNAL MODULE: ./node_modules/@wordpress/block-library/build-module/utils/is-block-metadata-experimental.js
64361  var is_block_metadata_experimental = __webpack_require__(2321);
64362  var is_block_metadata_experimental_default = /*#__PURE__*/__webpack_require__.n(is_block_metadata_experimental);
64363  ;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"]
64364  const external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"];
64365  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block-keyboard-shortcuts/index.js
64366  /**
64367   * WordPress dependencies
64368   */
64369  
64370  
64371  
64372  
64373  
64374  
64375  function BlockKeyboardShortcuts() {
64376    const {
64377      registerShortcut
64378    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
64379    const {
64380      replaceBlocks
64381    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
64382    const {
64383      getBlockName,
64384      getSelectedBlockClientId,
64385      getBlockAttributes
64386    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
64387    const handleTransformHeadingAndParagraph = (event, level) => {
64388      event.preventDefault();
64389      const currentClientId = getSelectedBlockClientId();
64390      if (currentClientId === null) {
64391        return;
64392      }
64393      const blockName = getBlockName(currentClientId);
64394      const isParagraph = blockName === 'core/paragraph';
64395      const isHeading = blockName === 'core/heading';
64396      if (!isParagraph && !isHeading) {
64397        return;
64398      }
64399      const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
64400      const attributes = getBlockAttributes(currentClientId);
64401  
64402      // Avoid unnecessary block transform when attempting to transform to
64403      // the same block type and/or same level.
64404      if (isParagraph && level === 0 || isHeading && attributes.level === level) {
64405        return;
64406      }
64407      const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
64408      const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
64409      replaceBlocks(currentClientId, (0,external_wp_blocks_namespaceObject.createBlock)(destinationBlockName, {
64410        level,
64411        content: attributes.content,
64412        ...{
64413          [destinationTextAlign]: attributes[textAlign]
64414        }
64415      }));
64416    };
64417    (0,external_wp_element_namespaceObject.useEffect)(() => {
64418      registerShortcut({
64419        name: 'core/block-editor/transform-heading-to-paragraph',
64420        category: 'block-library',
64421        description: (0,external_wp_i18n_namespaceObject.__)('Transform heading to paragraph.'),
64422        keyCombination: {
64423          modifier: 'access',
64424          character: '0'
64425        },
64426        aliases: [{
64427          modifier: 'access',
64428          character: '7'
64429        }]
64430      });
64431      [1, 2, 3, 4, 5, 6].forEach(level => {
64432        registerShortcut({
64433          name: `core/block-editor/transform-paragraph-to-heading-$level}`,
64434          category: 'block-library',
64435          description: (0,external_wp_i18n_namespaceObject.__)('Transform paragraph to heading.'),
64436          keyCombination: {
64437            modifier: 'access',
64438            character: `$level}`
64439          }
64440        });
64441      });
64442    }, []);
64443    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
64444    [1, 2, 3, 4, 5, 6].forEach(level => {
64445      //the loop is based off on a constant therefore
64446      //the hook will execute the same way every time
64447      //eslint-disable-next-line react-hooks/rules-of-hooks
64448      (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)(`core/block-editor/transform-paragraph-to-heading-$level}`, event => handleTransformHeadingAndParagraph(event, level));
64449    });
64450    return null;
64451  }
64452  /* harmony default export */ const block_keyboard_shortcuts = (BlockKeyboardShortcuts);
64453  
64454  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/private-apis.js
64455  /**
64456   * Internal dependencies
64457   */
64458  
64459  
64460  
64461  /**
64462   * @private
64463   */
64464  const privateApis = {};
64465  lock(privateApis, {
64466    BlockKeyboardShortcuts: block_keyboard_shortcuts
64467  });
64468  
64469  ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/index.js
64470  /* wp:polyfill */
64471  /**
64472   * WordPress dependencies
64473   */
64474  
64475  
64476  /**
64477   * Internal dependencies
64478   */
64479  // When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks
64480  // are transformed by packages/block-library/src/index.js as follows:
64481  //    import * as experimentalBlock from './experimental-block'
64482  // becomes
64483  //    const experimentalBlock = null;
64484  // This enables webpack to eliminate the experimental blocks code from the
64485  // production build to make the final bundle smaller.
64486  //
64487  // See https://github.com/WordPress/gutenberg/pull/40655 for more context.
64488  
64489  
64490  
64491  
64492  
64493  
64494  
64495  
64496  
64497  
64498  
64499  
64500  
64501  
64502  
64503  
64504  
64505  
64506  
64507  
64508  
64509  
64510  
64511  
64512  
64513  
64514  
64515  
64516  
64517  
64518  
64519  
64520  
64521  
64522  
64523  
64524  
64525  
64526  
64527  
64528  
64529  
64530  
64531  
64532  
64533  
64534  
64535  
64536  
64537  
64538  
64539  
64540  
64541  
64542  
64543  
64544  
64545  
64546  
64547  
64548  
64549  
64550  
64551  
64552  
64553  
64554  
64555  
64556  
64557  
64558  
64559  
64560  
64561  
64562  
64563  
64564  
64565  
64566  
64567  
64568  
64569  
64570  
64571  
64572  
64573  
64574  
64575  
64576  
64577  
64578  
64579  
64580  
64581  
64582  
64583  
64584  
64585  
64586  
64587  
64588  
64589  
64590  
64591  /**
64592   * Function to get all the block-library blocks in an array
64593   */
64594  const getAllBlocks = () => {
64595    const blocks = [
64596    // Common blocks are grouped at the top to prioritize their display
64597    // in various contexts — like the inserter and auto-complete components.
64598    build_module_paragraph_namespaceObject, build_module_image_namespaceObject, build_module_heading_namespaceObject, build_module_gallery_namespaceObject, build_module_list_namespaceObject, build_module_list_item_namespaceObject, build_module_quote_namespaceObject,
64599    // Register all remaining core blocks.
64600    archives_namespaceObject, build_module_audio_namespaceObject, build_module_button_namespaceObject, build_module_buttons_namespaceObject, build_module_calendar_namespaceObject, categories_namespaceObject, build_module_code_namespaceObject, build_module_column_namespaceObject, build_module_columns_namespaceObject, build_module_comment_author_avatar_namespaceObject, build_module_cover_namespaceObject, build_module_details_namespaceObject, embed_namespaceObject, build_module_file_namespaceObject, build_module_group_namespaceObject, build_module_html_namespaceObject, latest_comments_namespaceObject, latest_posts_namespaceObject, media_text_namespaceObject, missing_namespaceObject, build_module_more_namespaceObject, nextpage_namespaceObject, page_list_namespaceObject, page_list_item_namespaceObject, pattern_namespaceObject, build_module_preformatted_namespaceObject, build_module_pullquote_namespaceObject, block_namespaceObject, build_module_rss_namespaceObject, build_module_search_namespaceObject, build_module_separator_namespaceObject, build_module_shortcode_namespaceObject, social_link_namespaceObject, social_links_namespaceObject, spacer_namespaceObject, build_module_table_namespaceObject, tag_cloud_namespaceObject, text_columns_namespaceObject, build_module_verse_namespaceObject, build_module_video_namespaceObject, footnotes_namespaceObject,
64601    // theme blocks
64602    build_module_navigation_namespaceObject, navigation_link_namespaceObject, navigation_submenu_namespaceObject, build_module_site_logo_namespaceObject, site_title_namespaceObject, site_tagline_namespaceObject, query_namespaceObject, template_part_namespaceObject, avatar_namespaceObject, post_title_namespaceObject, build_module_post_excerpt_namespaceObject, build_module_post_featured_image_namespaceObject, build_module_post_content_namespaceObject, build_module_post_author_namespaceObject, post_author_name_namespaceObject, post_comment_namespaceObject, build_module_post_comments_count_namespaceObject, post_comments_link_namespaceObject, build_module_post_date_namespaceObject, build_module_post_terms_namespaceObject, post_navigation_link_namespaceObject, post_template_namespaceObject, post_time_to_read_namespaceObject, build_module_query_pagination_namespaceObject, build_module_query_pagination_next_namespaceObject, build_module_query_pagination_numbers_namespaceObject, build_module_query_pagination_previous_namespaceObject, query_no_results_namespaceObject, read_more_namespaceObject, comments_namespaceObject, build_module_comment_author_name_namespaceObject, build_module_comment_content_namespaceObject, comment_date_namespaceObject, build_module_comment_edit_link_namespaceObject, build_module_comment_reply_link_namespaceObject, comment_template_namespaceObject, comments_title_namespaceObject, comments_pagination_namespaceObject, comments_pagination_next_namespaceObject, comments_pagination_numbers_namespaceObject, comments_pagination_previous_namespaceObject, build_module_post_comments_form_namespaceObject, build_module_table_of_contents_namespaceObject, home_link_namespaceObject, loginout_namespaceObject, build_module_term_description_namespaceObject, query_title_namespaceObject, post_author_biography_namespaceObject];
64603    if (window?.__experimentalEnableFormBlocks) {
64604      blocks.push(build_module_form_namespaceObject);
64605      blocks.push(form_input_namespaceObject);
64606      blocks.push(form_submit_button_namespaceObject);
64607      blocks.push(form_submission_notification_namespaceObject);
64608    }
64609  
64610    // When in a WordPress context, conditionally
64611    // add the classic block and TinyMCE editor
64612    // under any of the following conditions:
64613    //   - the current post contains a classic block
64614    //   - the experiment to disable TinyMCE isn't active.
64615    //   - a query argument specifies that TinyMCE should be loaded
64616    if (window?.wp?.oldEditor && (window?.wp?.needsClassicBlock || !window?.__experimentalDisableTinymce || !!new URLSearchParams(window?.location?.search).get('requiresTinymce'))) {
64617      blocks.push(freeform_namespaceObject);
64618    }
64619    return blocks.filter(Boolean);
64620  };
64621  
64622  /**
64623   * Function to get all the core blocks in an array.
64624   *
64625   * @example
64626   * ```js
64627   * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
64628   *
64629   * const coreBlocks = __experimentalGetCoreBlocks();
64630   * ```
64631   */
64632  const __experimentalGetCoreBlocks = () => getAllBlocks().filter(({
64633    metadata
64634  }) => !is_block_metadata_experimental_default()(metadata));
64635  
64636  /**
64637   * Function to register core blocks provided by the block editor.
64638   *
64639   * @param {Array} blocks An optional array of the core blocks being registered.
64640   *
64641   * @example
64642   * ```js
64643   * import { registerCoreBlocks } from '@wordpress/block-library';
64644   *
64645   * registerCoreBlocks();
64646   * ```
64647   */
64648  const registerCoreBlocks = (blocks = __experimentalGetCoreBlocks()) => {
64649    blocks.forEach(({
64650      init
64651    }) => init());
64652    (0,external_wp_blocks_namespaceObject.setDefaultBlockName)(paragraph_name);
64653    if (window.wp && window.wp.oldEditor && blocks.some(({
64654      name
64655    }) => name === freeform_name)) {
64656      (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)(freeform_name);
64657    }
64658    (0,external_wp_blocks_namespaceObject.setUnregisteredTypeHandlerName)(missing_name);
64659    (0,external_wp_blocks_namespaceObject.setGroupingBlockName)(group_name);
64660  };
64661  
64662  /**
64663   * Function to register experimental core blocks depending on editor settings.
64664   *
64665   * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.
64666   * @example
64667   * ```js
64668   * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
64669   *
64670   * __experimentalRegisterExperimentalCoreBlocks( settings );
64671   * ```
64672   */
64673  const __experimentalRegisterExperimentalCoreBlocks =  false ? 0 : undefined;
64674  
64675  
64676  })();
64677  
64678  (window.wp = window.wp || {}).blockLibrary = __webpack_exports__;
64679  /******/ })()
64680  ;


Generated : Thu Nov 21 08:20:01 2024 Cross-referenced by PHPXref